AutoIt - Ein Programm (.exe) erstellen

  • Andere Sprache

  • FeliX_22
  • 7900 Aufrufe 5 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AutoIt - Ein Programm (.exe) erstellen

    Hallo!

    Ich möchte allen Codern und Nichtcodern, die es noch nicht kennen, ein nettes Programm vorstellen, es ist Freeware und heißt AutoIt, ihr findet es hier: AutoIt v3 - Automate and Script Windows Tasks - For Free! Eine kurze Einführung findet ihr bei AutoIt - Wikipedia.

    Mit AutoIt schreibst du Quelltext. Die Syntax ähnelt der von (Visual)Basic. Doch entweder möchte man sich (meist zu unrecht) an eine Sprache wie VB oder Delphi nicht ran wagen, andererseits bieten Scripts nicht auf Anhieb eine grafische Oberfläche. AutoIt ist jedoch vielseitiger als Scripts.

    Hier mal ein kleines Programm, mit dem du ein Fenster (Dialogbox) erzeugst, wobei dieses Beispiel wirklich minimal ist.

    C-Quellcode

    1. ; Dieses Script erzeugt eine DialogBox
    2. #include <GuiConstants.au3>
    3. ; GUI
    4. $title = "Ein Programm"
    5. GuiCreate($title, 300, 280)
    6. ; PIC
    7. GuiCtrlCreatePic("picture.bmp", 10, 10, 160,160)
    8. ; LABEL
    9. GuiCtrlCreateLabel("Hier steht ein Text," & @CRLF & _
    10. "auf Wunsch mit" & @CRLF & "Zeilenumbrüchen.", 190, 50)
    11. ; GROUP WITH RADIO BUTTONS
    12. GuiCtrlCreateGroup("Auswahl", 190, 110, 90, 70)
    13. $option1 = GuiCtrlCreateRadio("Option 1", 210, 130, 80)
    14. GuiCtrlSetState(-1, $GUI_CHECKED)
    15. $option2 = GuiCtrlCreateRadio("Option 2", 210, 155, 80)
    16. GUICtrlCreateGroup ("",-99,-99,1,1) ;close group
    17. ; BUTTON
    18. $button_1 = GuiCtrlCreateButton("OK", 50, 200, 100)
    19. $button_2 = GuiCtrlCreateButton("Abbrechen", 150, 200, 100)
    20. ; (c)
    21. GuiCtrlCreateLabel("© FeliX_22", 120, 250)
    22. ; GUI MESSAGE LOOP
    23. GuiSetState()
    24. While 1
    25. $msg = GUIGetMsg()
    26. Select
    27. Case $msg = $button_1
    28. If BitAND(GUICtrlRead($option1),$GUI_CHECKED)=$GUI_CHECKED Then
    29. MsgBox(8256, $title, "Option 1")
    30. Elseif BitAND(GUICtrlRead($option2),$GUI_CHECKED)=$GUI_CHECKED Then
    31. MsgBox(8256, $title, "Option 2")
    32. EndIf
    33. Case $msg = $button_2
    34. MsgBox(8256, $title, "Du hast auf Abbrechen geklickt.")
    35. Exit
    36. Case $msg = $GUI_EVENT_CLOSE
    37. Exit
    38. EndSelect
    39. WEnd
    Alles anzeigen
    So sieht das dann aus:



    In AutoIt hast du alle möglichen Control-Elemente, wie du sie von Windows kennst: Listenfelder, Slider, Progressbar, Kalender, TreeView, Kontextmenüs, u.v.m... Mit AutoIt kannst du z.B. Maus und Tastaturverhalten simulieren, um so Windows und Programme zu automatisieren. Die Script-Dateien (.au3) werden vom AutoIT Script to EXE Converter in eine .exe Datei umgewandelt. Dies geschieht je nach Wunsch in Unicode, für alte Windows 9x-Systeme in ANSI, oder aber für x64-Systeme.

    Ich hoffe ich konnte euch AutoIt näher bringen. Es sind viele Beispiel-Dateien vorhanden, also einfach installieren und die Möglichkeiten ansehen. Dies hier ist nur ein kleiner Abriss dessen, was AutoIt bietet.

    Gruß

    FeliX_22

    Diese Info entstand aus der Inspiration nach der einfachen Frage "Wie erstelle ich ein Programm (eine .exe)?"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von FeliX_22 ()

  • frage und wie kann ich dan den einzelnen optionen etwas zuweisen??


    also ich will einen bot machen und will halt bei option1 soll der " das und das" machen und bei option 2 "das und das"


    wie mache ich das??
  • Ich habe den Code angepasst. Um die Optionen abzufragen, musst du die Werte in Variablen schreiben:

    Quellcode

    1. $option1 = GuiCtrlCreateRadio("Option 1", 210, 130, 80)
    2. GuiCtrlSetState(-1, $GUI_CHECKED)
    3. $option2 = GuiCtrlCreateRadio("Option 2", 210, 155, 80)


    Nach dem Klick auf OK fragst du mit If ab, ob die Option gesetzt ist:

    Quellcode

    1. If GUICtrlRead($option1) = $GUI_CHECKED Then


    Es ist aber besser den Wert bitweise mit UND zu verknüpfen, damit ein Bool-Wert rauskommt:

    Quellcode

    1. If BitAND(GUICtrlRead($option1),$GUI_CHECKED) = $GUI_CHECKED Then
    2. ; Anweisungen
    3. ... und für die andere Option ebenso: ...
    4. Elseif BitAND(GUICtrlRead($option2),$GUI_CHECKED) = $GUI_CHECKED Then
    5. ; Anweisungen
    6. ...


    Jetzt fehlen nur noch die Anweisungen, die du ausführen willst.

    Gruß

    FeliX_22
  • FeliX_22 schrieb:

    Es ist aber besser den Wert bitweise mit UND zu verknüpfen, damit ein Bool-Wert rauskommt


    Ok also wenn ich das richtig verstanden habe, dann werden bei

    Quellcode

    1. BitAND(GUICtrlRead($option1),$GUI_CHECKED)

    GUICtrlRead($option1) und $GUI_CHECKED bitweise verundet.
    Und wenn Option 1 gewaehlt wurde, kommt da $GUI_CHECKED raus, weil x & x = x.
    Und danach pruefst du nun, ob es $GUI_CHECKED ist:

    Quellcode

    1. BitAND(GUICtrlRead($option1),$GUI_CHECKED) = $GUI_CHECKED


    Aber ist das nicht exakt das Selbe wie das vorher Beschriebene:

    Quellcode

    1. GUICtrlRead($option1) = $GUI_CHECKED

    nur laenger und umstaendlicher?

    Also ich sehe nicht, welchen Vorteil das Verunden bringen soll, denn das Verunden ergibt ja nur dann $GUI_CHECKED, wenn beide Werte $GUI_CHECKED sind und dann kann man doch gleich mit nem "=" pruefen ob sie gleich sind?
    Und wenn ich z.B. zwei Integer bitweise verunde, dann kommt ja auch wieder ein Integer raus und kein Bool.

    Edit: Ok, ich glaub ich weiss, was du meinst.
    Wo ist der Discord Server

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Skyte ()

  • Ich weiß genau was du meinst, das hab ich erst auch so gedacht. Aber wenn du dich mal auf bestimmen AutoIt-Seiten umschaust, merkst du, dass die Abfrage mit $GUI_CHECKED immer mit BitAnd verknüpft wird. Scheint eine Eigenart der Sprache zu sein.

    Aber wie schon gesagt, die einfache Abfrage auf Gleichheit sollte auch funktionieren. Mit der BitAnd-Alternative ist man auf der sicheren Seite, weil je nach deinem Code eine $variable Integerwerte haben kann, die du mit BitAnd in einen Bool-Wert umrechnest.

    Und ich erinnere daran, dass dieser Thread nur für den Einstieg in AutoIt gedacht war (wie der Threadtitel hoffentlich nahelegt). Ich selbst code lieber vbs :D

    Gruß

    FeliX_22

    EDIT: Und hier gibts noch paar Eigentümlichkeiten von js: wtfjs.com/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von FeliX_22 ()