Registry (schreiben)



  • Hi wollte mal fragen wie ich folgendes realisiere:

    Habe ein Programm, wenn man es startet soll es sich in c:Programme kopieren, und sich unter run in die Registry eintragen...

    Tja...nun habe ich es versucht mit

    RegCreateKeyEx();

    und danach:

    RegSetValueEx();

    bloß ich kapiere nicht wie ich einen neuen Wert in den schlüssel Run setzen soll der die Zeichenfolge(C:\Programme\cleaner.exe) enthält...
    so das er beim Systemstart von alleine Startet.
    Ich weiß das ich auch einfach nen Reg file machen und das vom Prog. ausführen lassen könnte, aber das ist plöd...

    hier mal ein kleiner Vortschritt:

    HKEY hKey;
        LPCTSTR lpSubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
        DWORD dwOptions = REG_OPTION_NON_VOLATILE;
        DWORD dwDisp;
        REGSAM samDesired = KEY_ALL_ACCESS;
    
        RegCreateKeyEx(
                            HKEY_LOCAL_MACHINE,
                            lpSubKey,
                            NULL,
                            NULL,
                            dwOptions,
                            samDesired,
                            NULL,
                            &hKey,
                            &dwDisp);
    
    //HIER FOLGT DANN RegSetValueEx();....mhhhh hilfe
    

    achja so kommt noch ne Warnung vom Compiler(DEV-CPP):

    29 D:\Programme\Dev-Cpp\TESTER\tester.cpp [Warning] passing NULL used for non-pointer converting 3 of 
    `LONG RegCreateKeyExA(HKEY__*, const CHAR*, DWORD, CHAR*, DWORD, REGSAM, _SECURITY_ATTRIBUTES*, HKEY__**, DWORD*)'
    

    bestimmt weil ich _SECURITY_ATTRIBUTES NULL gesetzt habe oder?
    was anderes weiß ich nicht...in der MSDN stand man könne das machen

    MfG
    Black Hell

    P.S. ich habe mindestens 1 Stunde MSDN angeguckt...die Seite hat sich in Firefox schon eingefressen 😡



  • nur so beim drüberschuen,
    probier mal schlenn 0 als dritten paremeter.



  • also da meldet er mir nur schlenn undeclared...



  • Black Hell schrieb:

    also da meldet er mir nur schlenn undeclared...

    war ein tappfehler.
    probier mal schnell 0 statt NULL als dreuizteb parameter meinte ich,



  • ahhhh gut...damit wäre das kleene Problem weg...habe überseh ndas inner MSDN 0 statt NULL stand^^...danke

    mhh und was fehlt mir jetzt noch damit ich den Autostart realisieren kann ?
    Ich habe grade echt keine Idee



  • im winapi forum vorbeizugucken
    das hier ist das standard cpp forum



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ 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.



  • Mit RegSetValueEx sollte es aber schon funktionieren.



  • Du hast wahrscheinlich nicht BYTE benutzt:

    BYTE str[] = "cleaner.exe";
    RegSetValueEx(hKey,"Cleaner",0,REG_SZ,str,sizeof(str));
    


  • Bow wiwe geil, genau das wars...ich habe mich schon gewundert wo ich den Wert eintragen muss....danke für den Tipp....funzt einwandfrei...danke vielmals^^


Log in to reply