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"


Anmelden zum Antworten