使用者名/組織名のエディットボックスへの表示方法
Win XP PRO SP2、VC++6.0にてレジストリから使用者名/組織名を取得して、フォーム上の「表示」ボタンをクリックするとエディットボックスに表示するソフトを作成しています。
コンパイルもリンクも正常に出来ますが、フォームが表示されて「表示」ボタンをクリックすると、「問題が発生したため、registry_change.exe を終了します。 ご不便をおかけして申し訳ありません。」というウィンドウが表示されます。
どなたか教えて下さい。
よろしくお願いします。
下記が「表示」ボタンのコードです。
void CRegistory_changeView::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
CString ss;
HKEY hRootKey;
char EntryName1[256],EntryName2[256],KeyName[256],szBuff[256];
DWORD cbBuff;
CEdit* myED1=(CEdit*)GetDlgItem(IDC_EDIT1);
CEdit* myED2=(CEdit*)GetDlgItem(IDC_EDIT2);
/* レジストリキーを開きます */
strcpy(KeyName, "Software\\Microsoft\\Windows NT\\CurrentVersion");
strcpy(EntryName1, "RegisteredOwner"); // 使用者名
strcpy(EntryName2, "RegisteredOrganization"); // 組織名
RegOpenKeyEx(HKEY_LOCAL_MACHINE, KeyName, 0, KEY_READ, &hRootKey);
/* 実際にアクセスし文字列を取得します */
cbBuff = sizeof(szBuff);
//(標準)
RegQueryValueEx(hRootKey, EntryName1, NULL, NULL, (LPBYTE)szBuff, &cbBuff);
myED1->SetWindowText((class CString &)cbBuff);
RegQueryValueEx(hRootKey, EntryName2, NULL, NULL, (LPBYTE)szBuff, &cbBuff);
myED2->SetWindowText((class CString &)cbBuff);
RegCloseKey(hRootKey);
}
お礼
ありがとうございました。 無事に表示できました。 ちなみに同じ事でお悩みの方の参考として、 @DbLookup("Notes";"サーバー名":"names.nsf";"$Users";@UserName;"Level1") で可能となりました。