1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. ivan_delerdivan

Beiträge von ivan_delerdivan

  • Eingabefelder per Mausklick aktivieren

    • ivan_delerdivan
    • 31. Dezember 2014 um 02:57

    Hallo Leute,
    vielen Dank an euch Alle.
    Ich wünsche alle einen guten Rutsch ins neue Jahr.

  • Eingabefelder per Mausklick aktivieren

    • ivan_delerdivan
    • 29. Dezember 2014 um 22:23

    Hallo,
    ich habe eine GUI erstellt und möchte per Mausklick die Eingabefelder aktivieren und nach der Eingabe mit der Entertaste in das nächste Feld kommen. Meine GUI ist eigentlich etwas umfangreicher als hier unten angegeben, dort macht es schon Sinn mit der Maus zu navigieren. Ich weiß, dass man man mit der Tab-taste auch navigieren kann, aber bei mehreren Feldern ist es besser mit der Maus zu navigieren.
    Für eure Vorschläge wäre ich euch dankbar.

    Spoiler anzeigen


    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>

    Global $Auslesen
    Global $Beenden
    Global $VORNAME
    Global $NACHNAME
    Global $STADT
    Global $CUST_SN
    Global $NAME1
    Global $NAME2
    Global $CITY
    Global $iFocus

    ; MAIN PROGRAM
    HotKeySet ( "{ESC}", Terminate )
    Create_GUI()
    CUSTOMER()

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Auslesen
    $NAME1 = GUICtrlRead($VORNAME)
    $NAME2 = GUICtrlRead($NACHNAME)
    $CITY = GUICtrlRead($STADT)
    MsgBox(0, "IHRE EINGABEN", "Vorname: " & $NAME1 & @CRLF & "Nachname: " & $NAME2 & @CRLF & "Stadt: " & $CITY)
    Case $Beenden
    Terminate()
    EndSwitch
    WEnd

    Func Create_GUI()
    $handle1 = GUICreate("GUI",580,290,-1,-1) ; will create a dialog box that when displayed is centered
    GUISetBkColor(0xFFFAFA) ; Snow
    GUISetFont(20, 400, -1)
    GUICtrlSetColor(-1,0x4169E1); RoyalBlue
    GUICtrlCreateLabel("My GUI", 150, 20, 320, 100, 0x01)
    GUICtrlSetColor(-1,0x4169E1); RoyalBlue
    GUISetFont(8, 400, -1)
    GUISetFont(12, 400, -1)
    EndFunc ;=> Create_GUI

    Func CUSTOMER()
    Local $msg
    GUICtrlCreateLabel("Vorname: ", 25, 100, 300, 25)
    $VORNAME = GUICtrlCreateInput("", 185, 100, 300, 25)
    GUICtrlCreateLabel("Nachname: ", 25, 140, 300, 25)
    $NACHNAME =GUICtrlCreateInput("", 185, 140, 300, 25)
    GUICtrlCreateLabel("Stadt: ", 25, 180, 300, 25)
    $STADT =GUICtrlCreateInput("", 185, 180, 300, 25)
    $Auslesen = GUICtrlCreateButton("Daten übernehmen", 180, 240, 150, 30) ;480, 140, 40, 25
    $Beenden = GUICtrlCreateButton("Beenden", 350, 240, 150, 30) ;480, 140, 40, 25
    GUISetState()
    $iFocus = $VORNAME ;Standard
    GUICtrlSetState($iFocus, $GUI_FOCUS) ; setzt den Cursor in das erste Feld.
    $msg = 0
    EndFunc ;==>CUSTOMER

    Func Terminate()
    Exit
    EndFunc ;=> Terminate

  • Problem mit GUICreate

    • ivan_delerdivan
    • 13. Februar 2008 um 10:26

    Vielen Dank an Oscar und Greenhorn,

    mit der Zeile " Return 0" in den beiden Functions ist das Problem gelöst. Da ich die Gui gelöscht hatte, habe ich mich nicht um die Schleife gekümmert. Nun funktioniert alles wunderbar.

    Greenhorn, vielen Dank für die Tipps und die Optimierung des Scripts.

    Viele Grüße
    Ivan
    :)

  • Problem mit GUICreate

    • ivan_delerdivan
    • 12. Februar 2008 um 21:28

    Hallo,
    ich habe ein Script mit einer Gui, wo ich über Buttons zwei Tasks auswählen kann. Bei dem Task "Check logs" habe ich mitunter eine Function "check_all()", wenn ich das Script starte, erscheint die Gui, wenn ich den ersten Task auswähle, der Task wird ausgeführt (hier habe ich selbst 2 grafische Buttons in jeweils einet Function "OK" und "not_ok" ertsellt.), aber die Gui wird nicht anschließend wieder aufgebaut und das Script hat den Status "paused" unten rechts in der Tasksleiste von XP. Aber wenn ich die Zeile "check_all()" auskommentiere, wird die Gui nach Ausführung des Tasks aufgebaut. Irgend etwas stört den Gui-Aufbau in der Function "check_all()". Ich habe anstelle von "GuiDelete" mit den Optionen GuiSetState(@SW_HIDE / @SW_SHOW) und den anderen Optionen von GuiSetState ausprobiert, leider alles ohne Erfolg. Ich würde mich sehr freuen, wenn jemand eine Lösung für mein Problem hätte.

    Vielen Dank im Voraus.

    Dateien

    test8.au3 3,95 kB – 332 Downloads OK.bmp 8,25 kB – 381 Downloads not-ok.bmp 8,25 kB – 307 Downloads
  • Runwait mit GDisk32.exe bricht ab

    • ivan_delerdivan
    • 21. November 2007 um 18:37

    Hallo,

    vielen Dank gtaspider.

    Auch mit dem Befehl Run funktioniert es leider nicht.

    Nun habe ich eine Abhilfe gefunden: Ich überschreibe vorher alle Partitionen mit einem leeren Image (restore leeres-image.gho) und danach kann ich über mein AutoIt-Script die leere Partition löschen und neue Partitionen einrichten.

    Gruß
    Ivan

  • Runwait mit GDisk32.exe bricht ab

    • ivan_delerdivan
    • 20. November 2007 um 18:50

    Hallo,

    ich starte Windows von der Part PE-CD und möchte mit dem tool Gdisk von Symantec alle partitionen löschen und anschließend neue Partitionen erstellen. Da alle Partitionen nich in Benutzung sind, ist das Löschen der Partitionen eigentlich kein Problem.
    Wenn ich den Befehl
    GDisk32.exe /batch:GDISK-BATCH.txt

    in einem Command-Fenster absetze, funktioniert er auch einwandfrei, aber wenn ich den Befehl in Autoit wie folgt einbaue:

    $return = RunWait("X:\Programs\SYMANTEC\GDisk32.exe /batch:GDISK-BATCH.txt")

    bricht der Befehl ab und die Partitionen auf der Platte werden nicht gelöscht. Die Variable $return liefert den Wert 1.

    Die Möglichkeit mit WinWait wie unten habe ich auch versucht, leider ohne Erfolg
    $return = RunWait("X:\Programs\SYMANTEC\GDisk32.exe /batch:GDISK-BATCH.txt")
    WinWait("X:\Programs\SYMANTEC\GDisk32.exe")
    WinWaitClose("X:\Programs\SYMANTEC\GDisk32.exe")

    Die Batchdatei "GDISK-BATCH.TXT" enthält die Stapelbefehle für GDisk (lösche alle Partitionen der HD 1, erstelle eine prim. Partition 30GB, ertstelle eine Ext.-Part. von 60 GB, erstelle eine log. Part. von 20 GB und erstelle eine log. Part. von 40 GB):
    ........................................................
    1 /y /del /all
    1 /y /cre /pri /sz:30000 /for /ntfs /q
    1 /y /cre /ext /sz:60000 /for /ntfs /q
    1 /y /cre /log /sz:20000 /for /ntfs /q
    1 /y /cre /log /sz:40000 /for /ntfs /q
    .........................................................

    Die erste Zeile wird nicht zu Ende prozessiert, da ich alle Partitionen immer noch sehen kann.

    Wenn ich die Partitonen händisch formatiere und danach mein AutoIt-Programm starte, funktioniert es aber. Da alles automatisch ablaufen soll, habe ich gedacht als Abhilfe entweder die einzelnen Partitionen zu formatieren oder alle Dateien auf den Partitionen zu löschen.

    Mein Formatbefehl für die erste Partition in Autoit sieht so aus:

    $retf = RunWait(@ComSpec & " /c " & "format C: /FS:NTFS V:WINDOWS /Q < FORMAT-INPUT.txt")

    liefert leider auch den Returncode 1.
    Die "FORMAT-INPUT.TXT" Datei enhält die für die Eingabe beim Formatbefehl erforderliche Zeilen (Volumename und Bestätigung mit j):

    WINDOWS
    j

    Elegant wäre es natürlich, wenn der GDisk-Befehl in Autoit direkt funktionieren würde. Mit der Möglichkeit die Partitionen vorher zu formatieren oder alle Files auf den Partitionen zu löschen, könnte ich auch leben.

    Danke im Voraus.

  • Das Ergebnis eines Befehls aus UNIX-Tools an einen Variablen übergeben

    • ivan_delerdivan
    • 5. Oktober 2007 um 13:31

    Hallo Ceenen,

    beide Scripte sind genial!
    Das 2. Script ist das was ich genau gesucht hatte.
    Nun kann ich alles mit AUTOIT erledigen, als Krücke brauche ich keine weiteren Tools mehr.

    Besten Dank und einen schönen Tag.
    Gruss
    Ivan

    PS: Wer ändert den Status der Themen von "offen" auf "gelöst"?
    Dieses Thema kann als gelöst markiert werden.

  • Das Ergebnis eines Befehls aus UNIX-Tools an einen Variablen übergeben

    • ivan_delerdivan
    • 5. Oktober 2007 um 10:16

    Hallo,

    danke für die Antworten.
    Eigentlich möchte ich Anhand des Volumenamens die Laufwerksbuchstaben ermitteln, weil diese auf den Maschinen unterschiedlich sind. Danach möchte ich in AUTOIT weitere Operationen auf den Laufwerken durchführen, dabei als Laufwerksbuchstabe eine Variable verwenden. Dann spielt es keine Rolle mehr welcher Lufwerksbuchstabe z.B. für das Volume "DATEN" zugeordnet ist.
    Man könnte genau so mit der Abfrage einer bestimmten Datei die Laufwerksbuchstaben ermitteln. Volumenamen erschienen mir sicherer, wenn z.B. eine Partition gar keine Dateien enthält.
    Mit dem WMIC-Befehl habe ich die Zuordnung Volumename zu Laufwerksbuchstaben in eine Datei geschrieben. Diese Datei war nicht zu verarbeiten, mit dem TYPE-Befehl habe ich die Ausgabe in die Datei "volname.txt" umgeleitet, diese Datei enthält die Volumeinformationen:

    Name VolumeName
    C: WINDOWS
    D: DATEN

    Ich möchte dann herausfinden mit welchem Laufwerksbuchstaben ich weitere Aktionen z.B. auf der Partition "DATEN" durchführen kann.
    Dazu habe ich die Unixtools "grep" und "gawk" eingesetzt. Der u.a. Befehl gibt mir den entsprechenden Laufwerksbuchstaben:

    C:\UNIXTOOLS\grep WINDOWS C:\volume.txt | C:\UNIXTOOLS\gawk "{print $1}"

    Aber in Autoit funktioniert es nicht. Vermutlich die Variable für den "gawk"-Befehl "$1" (bedeutet erste Spalte) macht Probleme in Autoit.

    GtaSpider ,
    Die Anweisung
    Run($Variable)
    gibt den kompletten Befehl als Text aus. Ich möchte aber, dass er wie im Kommandfenster ausgeführt wird.

    msp-holzwurm
    Fall b) trifft zu.
    Da ich mit Autoit nicht so vertraut bin, habe ich mit Windows-Tools versucht mein Problem zu lösen.
    Dein Script scheint mein Problem zu lösen. Es wäre sehr nett, wenn du die Funktion "_poutput" zur Verfügung stellen würdest.

    Vielen Dank.
    Gruss
    Ivan

  • Das Ergebnis eines Befehls aus UNIX-Tools an einen Variablen übergeben

    • ivan_delerdivan
    • 4. Oktober 2007 um 19:41

    Hallo,

    mit Unixtools für Windows (grep und gawk) habe ich den folgenden Befehl zusammengestellt:

    C:\UNIXTOOLS\grep WINDOWS C:\volume.txt | C:\UNIXTOOLS\gawk "{print $1}"

    Die Datei "volume.txt" enthält folgende Zeilen:
    Name VolumeName
    C: WINDOWS
    D: DATEN

    Wenn ich den Befehl in einem Kommandfenster ausführe, wird der Inhalt der Datei "volume.txt" ausgelesen und die für mich wichtige Info "der Laufwerksbuchstabe" als "C:" ausgegeben. Ich möchte diesen Befehl in AUTOIT verwenden und einer Variable zuweisen.

    In der Art wie:
    $VARIABLE = "C:\UNIXTOOLS\grep WINDOWS C:\volname.txt | C:\UNIXTOOLS\gawk "{print $1}""

    So funktioniert es leider nicht. Ich habe unterschiedliche Zeichen zum Maskieren benutzt, aber ohne Erfolg.

    Hat jemand eine Idee, wie ich diesen Befehl einer Variable zuweisen kann?

    Vielen Dank im Voraus.
    Ivan

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™