• 締切済み

レジストリのエクスポートについて教えてください

開発環境 :eMbedded Visual C ++ 4.0 (SP4) 動作環境OS :WindowsCE 5.0 以上の環境でレジストリのエクスポートを行いたいのですが、うまく動作しません。 「RegSaveKey()」を使用しているのですが、「RegSaveKey()」を行った時点でエラー(50)が発生しエクスポートできません。 [例] HKEY hRegKey; // レジストリキー DWORD dwDisposition; // -------------------------------- coredll.dll ロード HMODULE hModule = LoadLibrary( _T("coredll.dll") ); // -------------------------------- RegSaveKeyアドレス取得 PFN_REGSAVEKEY pfnRegSaveKey = (PFN_REGSAVEKEY)GetProcAddress( hModule, _T("RegSaveKey") ); if ( NULL == pfnRegSaveKey ) { // -------------------------------- coredll.dll アンマップ FreeLibrary( hModule ); return ; } // -------------------------------- レジストリキー オープン dwRet = RegCreateKeyEx( HKEY_LOCAL_MACHINE, L"SOFTWARE", 0, NULL, REG_OPTION_BACKUP_RESTORE, KEY_ALL_ACCESS, NULL, &hRegKey, &dwDisposition); if( dwRet == ERROR_SUCCESS ) { dwRet = pfnRegSaveKey( hRegKey, L"\\registry.reg", NULL ); } // -------------------------------- coredll.dll アンマップ FreeLibrary( hModule ); // -------------------------------- レジストリキー クローズ RegCloseKey(hRegKey); Windows CEでのレジストリ関係をいろいろ調べたのですが解決できませんでした。詳しい方、アドバイスをよろしくお願いします。

みんなの回答

  • YoxoY
  • ベストアンサー率42% (43/101)
回答No.1

MicrosoftのKnowledgeBaseにサンプルがあります。http://support.microsoft.com/kb/128731/ja アクセス権や、ツリー構造などを自前でちゃんとしないと動きません。 結構面倒かと思います。

参考URL:
http://support.microsoft.com/kb/128731/ja
yamataka82
質問者

補足

ご回答ありがとうございます。 参考URLの内容を確認しました。 サンプルの内容を試したのですが、アクセス権関係の関数(OpenProcessToken()など)が対応していませんでした。 サンプルは「Windows NT レジストリ」の内容でしたが、「WindowsCE 5.0」のレジストリには対応していないのでしょうか?