Autostart-Registryeintrag
-
Hallo,
ich habe wieder ein Problem mit einem Registry-Eintrag:
#include <Windows.h> int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) { UNREFERENCED_PARAMETER( hPrevInstance ); UNREFERENCED_PARAMETER( lpCmdLine ); HKEY hKey; RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hKey, 0); BYTE bString[] = "ABCDEFG"; RegSetValueEx(hKey,"EintragsName",0,REG_SZ,bString,strlen((const char*)bString)+1); RegCloseKey(hKey); return 0; }
Es git keine Fehlermeldung, doch trotz Ausführung als Administrator wird der Registry-Eintrag nicht erstellt.
Woran liegt das?Danke für eure Hilfe!!
Player894
-
Player894 schrieb:
Es git keine Fehlermeldung, doch trotz Ausführung als Administrator wird der Registry-Eintrag nicht erstellt.
Du scheinst die Rückgabewerte ja gar nicht auszuwerten?
Bei 32bit-Anwendung auf 64bit-Windows wird das ganze vermutlich in Wow6432Node geschrieben, dort auch nachgeschaut?
-
aus einem älteren programm:
so hat es geklappt:int _tmain(int argc, _TCHAR* argv[]) { HKEY hKey; DWORD dwNumber; RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, 0, EG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hKey, 0); RegSetValueEx(hKey, "DisableTaskMgr", 0, REG_DWORD, (BYTE*)&dwNumber, sizeof(DWORD)); RegCloseKey(hKey); printf("Daten geaendert\n"); system("PAUSE"); return 0; }
ich habe doch eigentlich nicht viel anders gemacht.
es war halt eine konsolenanwendung.
-
Wow, gekonnt ignoriert.
-
Stichwort: "Rückgabewerte"
Stichwort: "UAC-requireAdministrator-Manifest"