1

HKEY_LOCAL_MACHINEとは対照的に、HKEY_CURRENT_USER\Software\Classesの下に登録されるように、カスタム登録手順を備えた.NET COM dllがあります。したがって、次のキーがあります (現在のユーザーは Windows 7 PC の管理者です)。

HKEY_CURRENT_USER\Software\Classes\My.ProgId\CLSID
HKEY_CURRENT_USER\Software\Classes\CLSID\{XYZZYZYZYZ-YZYZY-ZYZYZY} etc

単純な C++ クライアントを構築する場合:

hr = CLSIDFromProgID(OLESTR("My.ProgId"), &clsid); 

UAC昇格なしで実行すると(Windows 7) 、コンポーネントが正常に作成されます。一方、標高をオンにして実行すると、 で失敗しInvalid class stringます。

プロセス モニターで検査しました。動作すると、HKCU\Software\Classes\My.ProgIDキーが検索され、正常に開きます。失敗した場合 (昇格時)、HKCR\My.ProgIdとエラーを探しNAME NOT FOUNDます。ただし、レジストリ キーを手動で開くことclasses_rootは成功します。

HKEY key;
RegOpenKey( HKEY_CLASSES_ROOT, _T( "My.ProgId"), &key);

助けてください!ありがとう

4

0 に答える 0