000
23.04.2003, 20:21 Uhr
Uwe
C/C++ Master (Administrator)
|
Hallo, hat jemand von Euch eine Dokumentation zu regedit oder regedt32? In meinen Büchern hab ich nichts brauchbares gefunden. Mir geht es hauptsächlich um die mögliche Parameterübergabe und das Verhalten gegenüber Strings mit WitheSpaces. Beispiel: Folgende Konstruktion funktioniert
C++: |
CString strTempFile = _T("C:\\Back\\Accounts\\Accounts.reg"); #define ADRESSBOOK_KEY _T("Software\\Microsoft\\Wab") //#define ACCOUNT_KEY ("Software\\Microsoft\\Internet Account Manager") CString strTemp; strTemp.Format(_T(" /s /e \"%s\" HKEY_CURRENT_USER\\%s"), strTempFile,/*ACCOUNT_KEY*/ADRESSBOOK_KEY );
// execute SHELLEXECUTEINFO sei={0}; sei.cbSize = sizeof(sei); sei.lpFile = _T("regedit"); sei.lpParameters = strTemp; sei.nShow = SW_SHOWDEFAULT; sei.fMask = SEE_MASK_NOCLOSEPROCESS; ShellExecuteEx( &sei ); // wait for process to finish if (sei.hProcess){ WaitForSingleObject(sei.hProcess, INFINITE); CloseHandle(sei.hProcess); } if (DWORD(sei.hInstApp) < 33){ // Display error MessageBox(_T("Hier folgt die Fehlerbehandlung"), _T("Error"), MB_OK|MB_ICONINFORMATION ); }
|
Ersetze ich die auskommentierten Zeilen, hat sich's. Ich denke mal an ShellExecuteEx() kann es nicht scheitern, da CreateProcess() sich genauso verhält. Man könnte RegSaveKey() nutzen aber diese Funktion hat so ihre Eigenheiten.
W2K Server VC++.Net -- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
Bis dann... Uwe Dieser Post wurde am 23.04.2003 um 20:25 Uhr von Uwe editiert. |