Registry



  • Hallo,

    ich habe versucht nach einem Tutorial einen Registry - Eintrag zu schreiben.
    So:

    // TaskMgrSperre.cpp: Hauptprojektdatei.
    
    #include "stdafx.h"
    #include <Windows.h>
    
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
        Console::WriteLine(L"Hello World");
    	HKEY hKey;
    	RegCreateKeyEx(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);	
    	DWORD dwNumber=1;
    	RegSetValueEx(hKey,L"DisableTaskMgr",0,REG_DWORD,(BYTE*)&dwNumber,sizeof(DWORD));
    
        return 0;
    }
    

    Doch ich bekomme haufenweise Fehlermeldungen, mit denen ich nichts anfangen kann:

    (rausgenommen)
    

    Ich habe schon lange nicht mehr so hilflos vor Fehlermeldungen gestanden 😮

    Kann mir jemand helfen?
    Ich wollte nur für mich den Taskmanager per C++ Code sperren.



  • Erzeuge ein normales Win32-Konsolenprojekt (kein C++/CLI)!

    Die Fehlermeldung besagt, daß dem Linker noch die passende Lib fehlt. Daher immer in der MSDN nachschauen, z.B. für RegSetValueEx (unter "Requirements" / "Library")
    Bei dir also "Advapi32.lib" (diese sollte dann aber schon standardmäßig beim Win32-Projekt eingebunden sein, ansonsten noch bei den Projekteinstellungen unter "Linker" / "Input" / "Additional Dependencies" hinzufügen - auf die Schnelle habe ich folgende Seite mit Screenshots dafür gefunden: Visual Studio .NET C++ Project Settings).

    P.S. Mach mal ein paar Umbrüche in deine geposteten Fehlermeldungen, damit man nicht so scrollen muß...



  • Dankeschön!

    Es gibt jetzt keine Fehlermeldungen mehr.
    Doch wenn ich das Programm ausführe:

    // TaskMgrSperre.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include <Windows.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HKEY hKey;
    	RegCreateKeyEx(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);	
    	DWORD dwNumber=1;
    	RegSetValueEx(hKey,L"DisableTaskMgr",0,REG_DWORD,(BYTE*)&dwNumber,sizeof(DWORD));
    	RegCloseKey(hKey);
    	return 0;
    }
    

    werden trotzdem keine Änderungen durchgeführt.
    Auch wenn ich das Programm als Administrator ausführe.

    Woran liegt das?



  • Wie ich schon schrieb, immer in der MSDN nachschauen. Bei dir jetzt konkret: du solltest den Rückgabewert der Funktionen überprüfen...



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.





  • Player894 schrieb:

    RegSetValueEx(hKey,L"DisableTaskMgr",0,REG_DWORD,

    Haha, so hab ich auch programieren angefangen xD


Anmelden zum Antworten