Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

Iwao

CHS に REGEDIT4 .reg を適用すると…

WinXP CHS に REGEDIT4 の reg ファイルを適用すると,エントリなどが文字化けする(正しく入力できない).
実際は,REGEDIT4.reg ではなく,ANSI.reg  で,エントリなどに日本語などが含まれている場合.

REGEDIT4 の書式でも,UNICODE になってれば OK.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


T54W7U64 CSIDL_SYSTEMX86

CSIDL_PROGRAM_FILES C:\Program Files (x86)
CSIDL_PROGRAM_FILESX86 C:\Program Files (x86)
CSIDL_SYSTEM C:\Windows\system32
CSIDL_SYSTEMX86 C:\Windows\SysWOW64
この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


登録エントリ (.reg) ファイルの構文

kb 310516 登録エントリ (.reg) ファイルを使用してレジストリ サブキーおよび値を追加、変更、または削除する方法
kb 256986 上級ユーザー向けの Windows レジストリ情報

reg export  key file
Win 7 で file が存在する時,”y/n” の確認が入る.XP ではない.
ShellExec クラス経由で呼び出していたので,file は更新されず原因がわかり難かったのでメモ.

{
 CString command = _T(“Reg.exe”) ;
 CString param ;
 {
  CString dateTime= CTime::GetCurrentTime().Format(_T(“%y%m%d%H%M%S”)) ;
  CString tmpFile = ::FolderAddLastSP(::GetTempPath()) + _T(“M___.tmp\\Reg\\”) + dateTime + _T(“.reg”) ;
  ::CreateEmptyFile(tmpFile) ;
   CFile::Remove(tmpFile) ;
  param = _T(“export hkcu\\”) + subKey + _T(” “) + tmpFile ;
  }
 {
  ShellExec se ;
  se.SetFile(command) ;
  se.SetNon2QMark(TRUE) ;
  se.SetParamaters(param) ;
  se.SetShowCmd(SW_HIDE) ;
  se.Execute() ;
  }
 }

//*******************************************************************************
// 関数名 :文字列に変換
// 作成日 :’10/03/05
//*******************************************************************************
CString RegAccessF::ToString (HKEY hKey,LPCTSTR subKey,LPCTSTR entry)
{
 HSecKey = GetSecKey(hKey,subKey,KEY_QUERY_VALUE) ;
 if (HSecKey == NULL) { return _T(“”) ; }
 Entry = entry ;
 Type = REG_NONE ;
 Count = 0 ;
 wchar_t wcEntry[1024] ;
 ::ToStringWC(wcEntry,countof(wcEntry),Entry) ;
 LONG checkStatus = ::RegQueryValueExW(HSecKey,wcEntry,0,&Type,NULL,&Count) ;
 if (checkStatus != ERROR_SUCCESS) { return _T(“”) ; }
 CByteArray dataAry ; dataAry.SetSize(Count+10) ;
 BYTE* dataPtr = dataAry.GetData() ;
 LONG get__Status = ::RegQueryValueExW(HSecKey,wcEntry,0,&Type,dataPtr,&Count) ;
 if (checkStatus != ERROR_SUCCESS) { return _T(“”) ; }
 CString str ;
 str.Format(_T(“\”%s\”=hex(%x):”),entry,Type) ;
 for (int index=0 ; index BYTE b1 = dataAry[index] ;
  CString bStr ; bStr.Format(_T(“%02x,”),b1) ;
  str += bStr ;
  }
 CloseSecKey() ;
 return str ;
 }
 

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


VC 10 Dialog を VC 6 に

VC 10 で作成したダイアログベースのプロジェクトを VC 6 に

  1. プロジェクト作成時の基本クラス CDialogEx → CDialog
  2. 「構成プロパティ」-「全般」の「出力ディレクトリ」と「中間ディレクトリ」を $(Configuration).100\ に
  3. RC ファイルなどが UNICODE だったため,Shift-JIS に
  4. RC ファイル内でエラーになる部分をコメントに
  5. ico ファイル内に2573x1293x16777216 (256x256x32 png) があり,ビルドエラーになったので削除
    C:\…\Project.rc (67): error RC2176 : old DIB in res\Project.ico; pass it through SDKPAINT
  6. StdAfx.h 内の AfxControlBar.h をコメントに
  7. CAboutDlg : CDialogEx となっているので,CDialog に
  8. CShellManager 関係をコメントに
  9. ON_COMMAND(ID_HELP, &CWinApp::OnHelp) をコメントに

ここまででビルド,実行はできたが,なんか変
VC 10 でのダイアログエディタの操作は可能だが,VC 6 では出来ない.
VC 10 で編集したものを,VC 6 でビルド,実行は可能?
ON_BN_CLICKED(IDC_XXX, &CBrwFileDlg::OnClickedXxx) の ‘&’ が邪魔.

* ここの情報は,動作などを保証するものではありません.個人的なメモです.

    この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

      にほんブログ村 IT技術ブログへ


    いつも場所を忘れるので

    この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

      にほんブログ村 IT技術ブログへ

    • Categories:

    LBT-HS121C2 を追加

    取扱説明書には特に記述はないようであるが,…
    Win 7 環境では USB アダプタのドライバをインストールしてはいけない?
    PC とヘッドセットとの接続は可能であったが,PC と X02T との接続がうまくない.

    Web で検索かけると取説の PDF では,Win 7 には必要なしとのこと.
    「プログラムと機能」からドライバ類をアンインストールして再起動.
    PC と X02T との接続が可能になった.

    この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

      にほんブログ村 IT技術ブログへ


    GetLongPathName 存在しないと失敗

    http://msdn.microsoft.com/ja-jp/library/cc429335.aspx

    簡略化するために HelpAPI.hxx に以下を用意.
    inline CString GetLongPathName (LPCTSTR fileName)
    {
     CString longPath ;
     UINT size = _MAX_PATH ;
     DWORD len  = ::GetLongPathName(fileName,longPath.GetBuffer(size),size) ;
     longPath.ReleaseBuffer() ;
     if (len == 0) { return fileName ; }
     return longPath ;
     }

    ファイルが存在しないと関数が失敗する様なので,
     ::CreateEmptyFile(sFile) ;
     CString  lFile = ::GetLongPathName(sFile) ;
     

    この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

      にほんブログ村 IT技術ブログへ


    DImageS の配列で,…

    以下の様な DImageS の配列で,要素の表示が 1 回目しかできなかった.
     CString selFile = DImgAry.GetAt(selIndex).GetFileName() ;
     DImgAry[selIndex].Draw(&m_Image) ;

    配列を直接使用するのではなく,DImageS にファイル名を取得してからでは OK .
     DImageS dImg ;
     dImg.SetFileName(selFile) ;
     dImg.Draw(&m_ImageMBA) ;
     

    この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

      にほんブログ村 IT技術ブログへ



      top

      %d人のブロガーが「いいね」をつけました。