TRegistry werte schreiben, aber wie?



  • hallo zusammen hab mich ma mit dem schreiben von werten in die registry bschäftigt und in de hilfe auch direkt ein Beispiel gefunden aber es will nicht funktzionieren, leider. Hier der code der in der BCB-hilfe steht.

    void __fastcall TForm1::WMEndSession(TWMEndSession &Message)
    {
      TRegistry *Reg = new TRegistry;
      try
      {
        Reg->RootKey = HKEY_CURRENT_USER;
        if (Reg->OpenKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", true)
        {
          Reg->WriteString("MyApp","\"" + ParamStr(0) + "\"");
          Reg->CloseKey();
        }
      }
      __finally
      {
        delete Reg;
        TForm::WMEndSession(Message);
    
      }
    }
    
    In order for this method to be called, it must be declared in your main form class as follows:
    
    class PACKAGE TForm1 : public TForm
    
    {
      ...
    protected:
    
    BEGIN_MESSAGE_MAP
      MESSAGE_HANDLER(WM_ENDSESSION, TWMEndSession, WMEndSession)
    END_MESSAGE_MAP(TForm)
    };
    

    Ich habe die Funktion in den Quellcode meiner Form gepackt und diese Funtkion in der header-file registriert, außerdem hab ich den 2.code in die headerdatei gepackt (protected....) so nun zeigt er mir trotzdem an das er tregistry und alles as dazu gehört nicht kennt. Gibts vielleicht noch einen header den ich vorher einbinden muss? bin dankbar für jede hilfe.
    mfg max

    ps: so sieht mein header-file im moment aus:

    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <IdBaseComponent.hpp>
    #include <IdComponent.hpp>
    #include <IdTCPClient.hpp>
    #include <IdTCPConnection.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
            TIdTCPClient *IdTCPClient1;
            void __fastcall FormCreate(TObject *Sender);
    private:
            void __fastcall TForm1::WMEndSession(TWMEndSession &Message);
    	// User declarations
    public:		// User declarations
            __fastcall TForm1(TComponent* Owner);
    
    protected:
    
    BEGIN_MESSAGE_MAP
      MESSAGE_HANDLER(WM_ENDSESSION, TWMEndSession, WMEndSession)
    END_MESSAGE_MAP(TForm)
    
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    


  • Ich würde erstmal überprüfen, ob du die Nachricht WMEndSession überhaupt bekommst.



  • In der Hilfe zu TRegistry steht

    Unit
    Registry

    Das heisst im Klartext

    #include <registry.hpp>
    

Anmelden zum Antworten