Kann mir jemand helfen autoit einzubinden?!



  • Es kennt vielleicht nicht jeder autoitscript.

    Autoitscript liefert eine .h und eine .lib und eine .dll Datei mit.

    Das Beispiel welches die Hersteller für c++ anbieten sieht wie folgt aus:

    // Empty project additions:
    //		Added "AutoIt3.h" include
    //		Added "AutoItX3.lib" to the input linker libraries
    //
    // AutoItX3.dll needs to be in the run path during execution
    
    #include <Windows.h>
    #include "AutoIt3.h"
    
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
     	// You can now call AutoIt commands, e.g. to send the keystrokes "hello"
    	AU3_Sleep(1000);
    	AU3_Run("notepad.exe", "", 1);
    	AU3_WinWaitActive("Untitled -", "", 0);
    	AU3_Send("Hello{!}", 0);
    
    	// Get the text in the status bar
    	//char szText[1000];
    	//AU3_StatusbarGetText("Untitled -", "", 2, szText, 1000);
    	//MessageBox(NULL, szText, "Text:", MB_OK);
    
    	return 0;
    }
    

    Ich würde jetzt gerne eine Form mit Button machen welcher beim Klicken eine der mitgelieferten Funktionen ausführt, z.B. zum Test erstmal AU3_Run("Notepad.exe", "", 1);

    Ich habe bisher folgendes gemacht:

    - Die .lib Datei habe ich in das Verzeichnis der anderen Library Dateien vom Builder kopiert.
    - Die .dll Datei ist in dem Verzeichnis in dem das Projekt abgespeichert ist.
    - Mein Unit1.h sieht so aus:

    //---------------------------------------------------------------------------
    
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Windows.h>
    #include "AutoIt3.h"
    
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
            TButton *Button1;
            void __fastcall Button1Click(TObject *Sender);
    private:	// User declarations
    public:		// User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    

    - Meine Unit1.cpp sieht so aus:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    	AU3_Run("notepad.exe", "", 1);
    }
    

    Beim linken bekomme ich folgende Meldung:
    Unresolved external "AU3_Run" referenced from UNIT1.obj

    Ich habe leider soetwas noch nie gemacht und schaff es einfach nicht die Autoit-funktionen zum laufen zu bekommen.

    wenn mir jemand etwas helfen könnte wäre ich sehr dankbar.

    Grüße Benny



  • OK, den einen Fehler habe ich nun weg. Habe vergessen die lib in das Projekt einzubinden.

    Habe nun folgenden Fehler:

    [Linker Error] 'AUTOITX3.LIB' contains invalid OMF record, type 0x21 (possibly COFF)



  • Hallo

    Wie du hier lesen kannst, ist die lib nicht kompatibel zum Builder. Wie im Thread beschrieben must du die lib aus der DLL neu erzeugen.

    bis bald
    akari



  • Danke, ich wusste mit der Meldung nichts anzufangen, da es das erste mal ist, dass ich mit dll und libs arbeite.

    Habe die lib neu erzeugt und jetzt funktioniert alles wunderbar.

    Vielen Dank


Anmelden zum Antworten