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. HassanMullah

Beiträge von HassanMullah

  • Anwendung automatisch minimieren ?

    • HassanMullah
    • 30. Oktober 2012 um 13:04

    Hallo zusammen,

    in meiner Anwendung habe ich folgenden Codeschnipsel, welche die Anwendung minimiert

    [autoit]

    Case $GUI_EVENT_MINIMIZE
    AdlibRegister("_KCLMinimieren", 5000); Funktion _KCLMinimieren (Tooltip anzeigen), wird alle 5 Sekunden ausgeführt
    _KCLMinimieren(); Funktion _KlCMinimieren wird einmalig gleich ausgeführt

    [/autoit]

    Was muss ich den machen, damit automatisch einmalig nach 30 Sekunden ein $GUI_EVENT_MINIMIZE ausgeführt wird.

    Ich habe erst ein Sleep mit 30 Sekunden und dann die Funktion _KCLMinimieren() aufgerufen, aber da wird nur die Funktion gestartet und das Hauptfenster bleibt noch offen

    Gruß Hassan

  • Wie kann ich dieses Fenster finden ?

    • HassanMullah
    • 26. Oktober 2012 um 12:11

    Hallo zusammen,

    schaut Euch bitte mal an, was ich hier mit Autoit Info ausgelesen habe:

    Code
    >>>> Window <<<<
    Title:	
    Class:	#32770
    Position:	318, 259
    Size:	369, 255
    Style:	0x940000C4
    ExStyle:	0x00010301
    Handle:	0x00020242
    
    
    >>>> Control <<<<
    Class:	Button
    Instance:	3
    ClassnameNN:	Button3
    Name:	
    Advanced (Class):	[CLASS:Button; INSTANCE:3]
    ID:	1232
    Text:	O K
    Position:	96, 215
    Size:	165, 23
    ControlClick Coords:	91, 5
    Style:	0x50010000
    ExStyle:	0x00000004
    Handle:	0x0002023A
    
    
    >>>> Mouse <<<<
    Position:	510, 484
    Cursor ID:	0
    Color:	0xD4D0C8
    
    
    >>>> StatusBar <<<<
    
    
    >>>> ToolsBar <<<<
    
    
    >>>> Visible Text <<<<
    Das Wort das ich suche ist hier versteckt. Also suche weiter :-)
    
    
    
    
    >>>> Hidden Text <<<<
    Alles anzeigen

    Das Fenster hat keine Titel. Ob "Class: #32770" eine konstante Zahl ist, weiß ich zur Zeit noch nicht. Ich würde gerne z.B. das Fenster identifizieren, indem ich im "Visible Text" z.B. nach dem Wort "versteckt" suche. Also im Hintergrund warten bis ein Anwendungsfenster hoch kommt, welches das Wort "versteckt" im "Visible Text" hat und darauf hin eine Aktion auslösen.

    Wie würdet Ihr hier vorgehen ?

    Gruß und Danke

    Hassan

  • Schaltfläche in Fensterleiste. Wie geht das

    • HassanMullah
    • 24. Oktober 2012 um 15:56

    Hallo autoBert,

    ist das dann mit Autit auch für "Autit-Fremde" Fenster möglich. Also ich will da eigentlich auch so haben, das alle offenen Windowsfenster das bekommen und ich dann halt eine Funktion hinter den Knopf lege.

    Gruß Hassan

  • Schaltfläche in Fensterleiste. Wie geht das

    • HassanMullah
    • 24. Oktober 2012 um 14:27

    Hallo zusammen,

    kann man mit Autoit eine Schaltfläche wie es in Teamvieweroder Hardcopygibt verwirklichen ?

    Wenn ja, nach welchen Stichworten muss ich suchen ?

    Gruß Hassan

  • _FilePrint Fehler 10

    • HassanMullah
    • 19. Oktober 2012 um 12:46

    Und zu Hause auf eine Windows Server 2003 geht es auch nicht ...

  • _FilePrint Fehler 10

    • HassanMullah
    • 19. Oktober 2012 um 12:36

    Ich bekomme den unter Windows 8 (echtes Blech) und unter XP (VMWare Workstation 9)

  • _FilePrint Fehler 10

    • HassanMullah
    • 19. Oktober 2012 um 12:17

    Hallo Chip,

    Danke für die Antwort, aber das fluppt einfach nicht. Habe den Code mal umgestrickt, aber es bleibt bei Fehler 10

    Spoiler anzeigen
    [autoit]

    Func GenerateKeyFile($nKeys, $Password, $Filename); Der zufälige 8-stellige Zahlenstring wird in Datei geschrieben (unverschlüsselt)
    Local $Data = "", $i, $File, $print
    For $i = 1 To $nKeys
    $Data &= "--------" & @CRLF & RandomKey() & @CRLF
    Next
    $File = FileOpen($Filename, 2)
    FileWrite($File, $Data)
    FileClose($File)
    Sleep(2000)
    $print = _FilePrint("C:\Dokumente und Einstellungen\Username\Anwendungsdaten\Anwendungsname\Bonus.txt")
    If $print Then
    MsgBox(0, "Bonusausdruck", "Bonusliste wurde erstellt und ausgedruckt.")
    Else
    MsgBox(0, "Bonusausdruck", "Fehler: " & @error & @CRLF & "Bonusliste wurde nicht ausgedruckt.")
    EndIf
    EndFunc ;==>GenerateKeyFile

    [/autoit]


    Bin jetzt mit meinem Latein etwas am Ende.

    Ich gehe davon aus, das hier immer der Standartdrucker angesprochen ist, egal was sich hinter dem Standartdrucker verbirgt (also USB / LPT1 / Netzwerk usw.)

  • _FilePrint Fehler 10

    • HassanMullah
    • 19. Oktober 2012 um 11:45

    Hallo

    bei folgendem Code

    Spoiler anzeigen
    [autoit]

    Func GenerateKeyFile($nKeys, $Password, $Filename); Der zufälige 8-stellige Zahlenstring wird in Datei geschrieben (unverschlüsselt)
    Local $Data = "", $i, $File
    For $i = 1 To $nKeys
    $Data &= RandomKey() & @CRLF & @CRLF & @CRLF
    Next
    ;~ $Data = _StringEncrypt(1, $Data, $Password)
    $File = FileOpen($Filename, 2)
    FileWrite($File, $Data)
    Local $print = _FilePrint($File)
    If $print Then
    MsgBox(0, "Bonusausdruck", "Bonusliste wurde erstellt und ausgedruckt.")
    Else
    MsgBox(0, "Bonusausdruck", "Fehler: " & @error & @CRLF & "Bonusliste wurde nicht ausgedruckt.")
    EndIf
    FileClose($File)
    EndFunc ;==>GenerateKeyFile

    [/autoit]


    bekomme ich laufend den Fehler 10

    Läuft auf Windows XP. Drucker an LPT1 (HP Laserjet) als Standard.

    Die Datei wird auf das Filesystem geschrieben, aber eben nicht ausgedruckt. Es ist eine ordinäre TXT Datein.

    Gruß Hassan

  • Unterfunktion springt nicht sauber raus

    • HassanMullah
    • 19. Oktober 2012 um 08:51

    Guten Morgen,

    die Überschrift ist vermutlich alles andere als glücklich gewählt, aber ich kenne nicht die Fachbegriffe und versuche mein Problem mal zu umschreiben
    Ich habe ja vor längerer Zeit begonnen ein kleine Überwachungssoftware für unser Kind zu schreiben. Das läuft soweit auch alles OK.
    Dann wollte ich mal eine "Abbruchfunktion" haben, welche wir hier gelöst haben.

    Ach zur Erklärung. Das kleine Progi macht nur folgendes. In der Schulzeit / Ferienzeit darf unser Kind in einem von uns Eltern vorgegebenen Zeitraum selbstständig an den Computer. Je nachdem ob zur Zeit Schule oder Ferien sind, kann es dann z.B. 30 oder 60 Minuten an den PC. Nach Ablauf dieser Zeit fährt der PC selbstständig runter.

    Die obige Lösung wollte ich als "Abbruchfunktion" für mich, d.h. wenn die Anwendung vor Ablauf der Zeit beendet wird, fährt der PC auch runter. Diese Abbruchfunktion geht super, jedoch wird danach ja auch die Hauptanwendung beendet.

    In der Hauptanwendung habe ich im Menü ein "Ende" und einen "Administration" Menü. Beim Aufruf der Funktion (_KCLAdmin) "Administration" kann man entscheiden ob gerade Schule oder Ferien sind, bzw. kann die tägliche Minutenanzahl von uns Eltern individuell bestimmt werden. Auch das geht alles wunderbar.

    Jetzt zu meinem Problem.

    Auf Basis der obigen Lösung, wollte ich das auch mit der "F9" Taste so einbauen, das wenn die Zeit eigentlich abgelaufen ist, man mit "F9" nochmals in Administrationsmenü kommt, um dem Kind vielleicht doch nochmal ein paar Minuten zu geben. Das "hatte" ich auch hinbekommen, aber nachdem dann die "neue" Zeit sichtbar war, scheint das Programm nicht mehr - ich nenne es mal Hauptschleife - zu sein. Die Uhrzeit zählt zwar runter, aber die Menüpunkte "Ende" "Administration", bzw. die Anwenudung via "X" beenden oder auch über eine separate Schaltfläche "Ich mach jetzt Schluss" funktionieren dann nicht mehr. Konnte die Anwendung nur noch über den Taskmanager killen.

    Anbei mal ein wenig Code

    Spoiler anzeigen
    [autoit]

    Func _KCLStopmodus(); PC wird runtergefahren
    MsgBox(0, "Stop", "Dein Computer schaltet sich in 15 Sekunden automatisch ab" & @CRLF & @CRLF & "Tschüss " & $var_Benutzername, 15)
    Local $hDLL = DllOpen("user32.dll")
    Local $begin = TimerInit()
    While 1
    If TimerDiff($begin) < 5000 Then
    If _IsPressed("79", $hDLL) Then ; 79 ist die F10 Taste
    DllClose($hDLL)
    Exit; KCL wird beendet, PC bleibt an
    EndIf

    ;==> hier soll der Teil mit der "F9" Taste rein, damit die Adminfunktion aufgerufen wird, aber die Hauptanwendung danach sauber weiter läuft

    Else
    Shutdown(13)
    Exit
    EndIf
    WEnd
    EndFunc ;==>_KCLStopmodus

    [/autoit]

    und hier die Adminfunktion

    Spoiler anzeigen
    [autoit]

    Func _KCLAdmin(); eine eigene Admin GUI, wo der Ferienmodus aktiv oder deaktiv gesetzt werden kann, sowie Bonus Minuten vergeben werden können
    Local $nMsg2, $var_inifile_modus
    #region ### START Koda GUI section ### Form=
    $GUI_Admin = GUICreate("Kids Control Light - Administration", 451, 244, 513, 401)
    GUISetBkColor(0xFFCCFF)

    [/autoit] [autoit][/autoit] [autoit]

    $GUI_Admin_Label01 = GUICtrlCreateLabel("Administrationsbereich", 88, 16, 249, 33)
    GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)

    [/autoit] [autoit][/autoit] [autoit]

    $var_inifile_lesen = _KCLIniLesen($var_inifile, $var_Benutzername, "Modus"); Lese den aktuellen Modus aus dem ini file
    $var_inifile_modus = $var_inifile_lesen; schreibe die globale Variablen Zeit in eine individuelle Variable
    ConsoleWrite("Modus ist: " & $var_inifile_modus & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    If $var_inifile_modus = 1 Then ; Ferien
    $GUI_Admin_Button01 = GUICtrlCreateButton("Ferienmodus aktiv :-)", 16, 64, 250, 49)
    GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x008000)
    GUICtrlSetBkColor(-1, 0x00FF00)
    Local $var_checkbox01 = GUICtrlCreateCheckbox("", 300, 65, 40, 40)
    GUICtrlSetState($var_checkbox01, $gui_checked)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    Else ; Schule
    $GUI_Admin_Button01 = GUICtrlCreateButton("Schulmodus aktiv :-(", 16, 64, 250, 49)
    GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x663366)
    GUICtrlSetBkColor(-1, 0xFF00FF)
    Local $var_checkbox01 = GUICtrlCreateCheckbox("", 300, 65, 40, 40)
    GUICtrlSetState($var_checkbox01, $gui_unchecked)
    GUISetState(@SW_SHOW)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $GUI_Admin_Label02 = GUICtrlCreateLabel("Heute noch", 16, 136, 126, 33)
    GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)

    [/autoit] [autoit][/autoit] [autoit]

    $var_inifile_lesen = _KCLIniLesen($var_inifile, $var_Benutzername, "Kontingent"); Lese das aktuelle Kontingent aus dem ini file
    $var_inifile_Kontingent = $var_inifile_lesen; schreibe die globale Variablen Zeit in eine individuelle Variable
    ;ToolTip ("noch " & $var_inifile_Kontingent & " Minuten", @DesktopWidth - (@DesktopWidth - 5), @DesktopHeight - (@DesktopHeight - 5), "lala", 1, 7)
    If $var_inifile_Kontingent = -1 Then
    Local $var_Kontingent = 0
    Else
    Local $var_Kontingent = $var_inifile_Kontingent
    EndIf
    $GUI_Admin_Input01 = GUICtrlCreateInput($var_Kontingent, 176, 136, 89, 37)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)

    [/autoit] [autoit][/autoit] [autoit]

    $GUI_Admin_Label03 = GUICtrlCreateLabel("Minuten übrig", 280, 136, 150, 33)
    GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)

    [/autoit] [autoit][/autoit] [autoit]

    $GUI_Admin_Button02 = GUICtrlCreateButton("Speichern && Beenden", 16, 192, 169, 41)

    [/autoit] [autoit][/autoit] [autoit]

    $GUI_Admin_Button03 = GUICtrlCreateButton("Abbrechen", 264, 192, 169, 41)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 2
    $nMsg2 = GUIGetMsg()
    Switch $nMsg2
    Case $GUI_EVENT_CLOSE
    GUIDelete($GUI_Admin)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $GUI_Admin_Button03
    GUIDelete($GUI_Admin)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $GUI_Admin_Button02
    Local $var_Kontingent_aus_Intput01 = GUICtrlRead($GUI_Admin_Input01)
    ConsoleWrite($var_Kontingent_aus_Intput01 & @CRLF)
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Kontingent", $var_Kontingent_aus_Intput01 - 1)

    [/autoit] [autoit][/autoit] [autoit]

    $var_inifile_lesen = _KCLIniLesen($var_inifile, $var_Benutzername, "Wochentag"); Lese die aktuelle Zeit aus dem ini file
    $var_inifile_Wochentag = $var_inifile_lesen; schreibe die globale Variablen Zeit in eine individuelle Variable

    [/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($var_checkbox01) = $gui_checked Then; es sind Ferien
    $var_inifile_modus = 1
    GUICtrlSetData($GUI_Group_Info_Text, "Hallo " & $var_Benutzername & ", heute ist " & $var_inifile_Wochentag & ", es ist jetzt " & $var_inifile_Zeit & " Uhr, und Du kannst heute noch " & $var_Kontingent_aus_Intput01 & " Minuten am Computer verbringen." & @CRLF & @CRLF & "Es sind gerade Ferien, das heißt Du kannst zwischen " & $var_TagesStart & " und " & $var_TagesEnde & " Uhr an den Computer"); Beschreibungstext
    Else
    $var_inifile_modus = 0 ; es sind keine Ferien
    GUICtrlSetData($GUI_Group_Info_Text, "Hallo " & $var_Benutzername & ", heute ist " & $var_inifile_Wochentag & ", es ist jetzt " & $var_inifile_Zeit & " Uhr, und Du kannst heute noch " & $var_Kontingent_aus_Intput01 & " Minuten am Computer verbringen." & @CRLF & @CRLF & "Es ist gerade Schulzeit, das heißt Du kannst zwischen " & $var_TagesStart & " und " & $var_TagesEnde & " Uhr an den Computer"); Beschreibungstext
    EndIf
    _KCLIniSchreiben($var_inifile, $var_Benutzername, "Modus", $var_inifile_modus)
    GUICtrlSetBkColor($GUI_Group_Info_Text, 0x700FF00); Hintergrundfarbe grün, d.h. innerhalb der Onlinezeiten
    GUISetBkColor(0x00FF00, $Form1); Hintergrundfarbe der Grund GUI (grün)
    GUISetState(); GUI wird aktualisiert
    GUIDelete($GUI_Admin)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    Case $var_checkbox01
    If GUICtrlRead($var_checkbox01) = $gui_checked Then
    GUICtrlSetData($GUI_Admin_Button01, "Ferienmodus aktiv :-)")
    GUICtrlSetFont($GUI_Admin_Button01, 16, 800, 0, "MS Sans Serif")
    GUICtrlSetColor($GUI_Admin_Button01, 0x008000)
    GUICtrlSetBkColor($GUI_Admin_Button01, 0x00FF00)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    Else
    GUICtrlSetData($GUI_Admin_Button01, "Schulmodus aktiv :-(")
    GUICtrlSetFont($GUI_Admin_Button01, 16, 800, 0, "MS Sans Serif")
    GUICtrlSetColor($GUI_Admin_Button01, 0x663366)
    GUICtrlSetBkColor($GUI_Admin_Button01, 0xFF0000)
    GUISetState(@SW_SHOW)
    EndIf
    EndSwitch
    WEnd
    EndFunc ;==>_KCLAdmin

    [/autoit]

    Kann mir hier jemand ein wenig behilflich sein (ein paar Codeschnipsel wären schön), wie ich die _KCLAdmin mit "F9" aufrufe (das hatte ich ja selbst noch hinbekommen) und nachdem ich dort auf "Speichern & Beenden" gedrückt habe, wie sauber in der Hauptanwendung bin (das hatte ich nicht hinbekommen)

    Vielleicht mache ich ja auch was mit den While Schleifen falsch. Ich habe in der Funktion _KCLAdmin eine "While 2" drin, weil ich mir nicht sicher bin, ob es mit der "While 1" aus der Hauptanwendung kollidiert.

    vielen Dank für Eure Antworten.

    Gruß Hassan

  • Zwischenablage in JPEG oder HTML

    • HassanMullah
    • 12. Oktober 2012 um 14:49

    Hallo zusammen,

    das was ich gerne umsetzen will, gibt es in ähnlicher Form schon in Freeware Tools, jedoch viel zu mächtig.

    Ich möchte gerne all X Sekunden die Druck Taste simulieren (bis hier noch kein Problem) und den "graphischen" Inhalt der Zwischenablage in ein vordefiniertes Verzeichnis als fortlaufende Datei, also Bild_001.jpg, Bild_002.jpg usw. ablegen.

    Leider habe ich gar keinen Ansatz. Könnt Ihr mich bitte mal in die richtige Richtung schubsen, Beispielcode immer gerne gesehen :)

    Ansonsten schon mal schönes Wochenende.

    Gruss Hassan

  • Suche Befehl zum Auslesen einer markierten Stelle

    • HassanMullah
    • 25. September 2012 um 14:44

    Ohje, manchmal steht man wirklich auf der Leitung

    Danke

  • Suche Befehl zum Auslesen einer markierten Stelle

    • HassanMullah
    • 25. September 2012 um 12:58

    Hallo,

    ich möchte mir gerne ein kleines Dialer Tool schreiben, welches eine markierte Telefonnummer aus irgendeiner Windowsanwendung auslies, in die Zwischenablage kopiert und dann den Lync Client in den Focus bringt, um dort die Nummer wieder rein zu kopieren. Der hintere Teil ist mir eigentlich klar, aber welche Befehl nehme ich, um einen x-beliebigen markierten Text in die Zwischenablage zu bringen ?

    Ist hierbei vielleicht mit der Formatierung noch was besonders zu beachten ?

    Gruss Hassan

  • _IsPressed wird ignoriert

    • HassanMullah
    • 11. September 2012 um 11:24

    Habe eine ähnliche Lösung wie chip selbst herausgefunden, jedoch finde ich die von chip schöner, von daher vielen Dank an chip und an alle anderen auch.

    Gruss Hassan

  • _IsPressed wird ignoriert

    • HassanMullah
    • 11. September 2012 um 11:02

    Also die Msgbox wird doch nach 15 Sekunden automatisch geschlossen. Die Frage ist, was ich machen muss um direkt danach so ca. 5 Sekunden Zeit zu bekommen um die F11 Taste zu drücken. Bischen Code wäre nett :)

    Gruß Hassan

  • _IsPressed wird ignoriert

    • HassanMullah
    • 11. September 2012 um 10:46

    Hallo zusammen,

    ich habe folgende Funktion. Sie soll eigentlich einen PC runterfahren, was auch funktioniert. Jedoch möchte ich, das wenn ich die F11 Taste drücke, sich nur die Anwendung beendet, aber der Shutdown nicht stattfindet. Leider funktioniert der Teil mit der F11 Taste nicht. Was mache ich hier falsch ?

    _IsPressed wird ignoriert
    [autoit]

    Func _KCLStopmodus(); PC wird runtergefahren
    MsgBox(0, "Stop", "Dein Computer schaltet sich in 15 Sekunden automatisch ab" & @CRLF & @CRLF & "Tschüss " & $var_Benutzername, 15)
    Local $hDLL = DllOpen("user32.dll")
    While 1
    If _IsPressed("7A", $hDLL) Then ; 7A ist die F11 Taste
    ConsoleWrite("_IsPressed - Shift Key was pressed." & @CRLF)
    While _IsPressed("7A", $hDLL)
    Sleep(5000)
    Exit
    WEnd
    DllClose($hDLL)
    Else
    Shutdown(13)
    Exit
    EndIf
    WEnd
    EndFunc ;==>_KCLStopmodus

    [/autoit]


    Gruss Hassan

  • Zweite GUI aus erster GUI öffnen und schließen funktioniert nicht ganz richtig

    • HassanMullah
    • 31. August 2012 um 15:58

    Sitzt, passt, wackelt und hat Luft :)

    vielen Dank

  • Zweite GUI aus erster GUI öffnen und schließen funktioniert nicht ganz richtig

    • HassanMullah
    • 31. August 2012 um 15:37

    OK, wie beende ich die Schleife ?

    Mit EXIT, oder wie ?

  • Zweite GUI aus erster GUI öffnen und schließen funktioniert nicht ganz richtig

    • HassanMullah
    • 31. August 2012 um 15:29

    Hallo zusammen,

    hoffe mich mit der Überschrift klar auszudrücken. Ich habe bisher immer nur kleine Tools gemacht, die nur eine einzige GUI brauchten. Jetzt möchte ich gerne beim Aufruf des Menüpunkts "Administration" eine zweite GUI öffnen.

    Bisher habe ich das so verwirklicht. In der While-Wend Schleife folgender Case eingebaut

    [autoit]

    Case $GUI_Menue_Datei_Administration
    Local $passwd = InputBox("Administrative Anmeldung: ", "Bitte Passwort eingeben.", "", "*")
    If @error <> 1 Then
    If $passwd = "geheim" Then
    ;~ MsgBox(0, "Passwort: ", "wurde richtig eingegeben, es könnte jetzt eine administrative Funktion aufgerufen werden")
    _KCLAdmin()
    Exit
    Else
    MsgBox(0, "Passwort: ", "wurde NICHT richtig eingegeben !")
    Exit
    EndIf
    EndIf

    [/autoit]


    Die Funktion _KCLAdmin sieht so aus:

    [autoit]

    Func _KCLAdmin(); eine eigene Admin GUI, wo der Ferienmodus aktiv oder deaktiv gesetzt werden kann, sowie Bonus Minuten vergeben werden können
    Global $GUI_Admin = GUICreate("Administrationsbereich von KidsControlLight", 300, 300, 300, 100); ==> Zeichnet die GUI vom Adminbereich
    Local $msg2
    GUISetState();==> Zeigt GUI an
    While 2
    $msg2 = GUIGetMsg(); ==> Prüft Aktion in GUI
    Select
    Case $msg2 = -3 ; -3 = X gedrückt
    GUIDelete($GUI_Admin)
    EndSelect
    WEnd
    EndFunc ;==>_KCLAdmin

    [/autoit]

    Jetzt das Problem. Ich gehe auf den Adminmenüpunkt, gebe das Passwort ein und die neue zweite GUI öffnet sich. Es stecken noch keine Funktionen drin, aber wenn ich die neue GUI mit dem X beenden will, geht die 2. GUI zu, aber die 1. GUI kann dann nicht mehr bedient werden. Alle Buttons usw reagieren nicht mehr auf die Befehle, die dahinter stecken.

    Vielleicht ist mein Gedankenansatz auch völlig falsch, oder es gibt andere Befehle, aber wie gesagt es ist das erste mal ...

    Gruss Hassan

  • Externe au3 Datei via Include wird nicht gezogen

    • HassanMullah
    • 2. August 2012 um 16:23

    Danke erst mal,

    hier wie gewünscht die admin.au3.
    Ist sicherlich nicht schön, und auch noch nicht fertig, aber Ihr werdet das schon selbst sehen :)

    admin.au3
    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $var_sz_link1, $var_sz_link2, $var_sz_link3, $var_sz_link4, $var_f_link1, $var_f_link2, $var_f_link3, $var_f_link4; Linke Ränder
    Global $var_labellaengeInput, $var_top1, $var_top2, $var_top3, $var_top4, $var_top5, $var_top6, $var_top7, $var_top8, $var_top9; Obere Ränder
    Global $var_startzeit_sz_wt, $var_endzeit_sz_wt, $var_startzeit_sz_we, $var_endzeit_sz_we, $var_maxzeit_sz_wt, $var_maxzeit_sz_we, $var_startzeit_f, $var_endzeit_f, $var_maxzeit_f, $var_bonuszeit; Zeiten
    Global $var_spaltendifferenz1, $var_labellaengeInput, $var_labellaengeLabel; Differenzabstände
    Global $GUI_Einstellungen, $GUI_Einstellungen_Daten, $GUI_Einstellungen_Daten_SS
    Global $Label1, $Label2, $Label3, $Label4, $Label5, $Label6, $Label7, $Label8, $Label9, $Label10, $Label11, $Label12, $Label13, $Label14, $Label15, $Label16, $Label17, $Label18, $Label19, $Label20, $Label21, $Label22, $Label23
    Global $Group1, $Group2, $Group3, $Checkbox1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $var_sz_link1 = 60
    $var_sz_link2 = 140
    $var_sz_link3 = 200
    $var_sz_link4 = 260

    [/autoit] [autoit][/autoit] [autoit]

    $var_f_link1 = 400
    $var_f_link2 = 480
    $var_f_link3 = 540
    $var_f_link4 = 600

    [/autoit] [autoit][/autoit] [autoit]

    $var_labellaengeInput = 45
    $var_labellaengeLabel = 60
    $var_spaltendifferenz1 = 30

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $var_top1 = 100
    $var_top2 = $var_top1 + $var_spaltendifferenz1
    $var_top3 = $var_top2 + $var_spaltendifferenz1
    $var_top4 = $var_top3 + $var_spaltendifferenz1
    $var_top5 = $var_top4 + $var_spaltendifferenz1
    $var_top6 = $var_top5 + $var_spaltendifferenz1
    $var_top7 = $var_top6 + $var_spaltendifferenz1
    $var_top8 = $var_top7 + 50
    $var_top9 = $var_top1 - $var_spaltendifferenz1

    [/autoit] [autoit][/autoit] [autoit]

    $var_startzeit_sz_wt = "11:00"
    $var_endzeit_sz_wt = "19:30"
    $var_startzeit_sz_we = "08:00"
    $var_endzeit_sz_we = "23:30"
    $var_maxzeit_sz_wt = 30
    $var_maxzeit_sz_we = 60

    [/autoit] [autoit][/autoit] [autoit]

    $var_startzeit_f = "07:00"
    $var_endzeit_f = "23:30"
    $var_maxzeit_f = 60

    [/autoit] [autoit][/autoit] [autoit]

    $var_bonuszeit = 15

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_Einstellungen_Daten_SS
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Admin()
    $GUI_Einstellungen = GUICreate("Einstellungen", 700, 370, -1, -1)
    $GUI_Einstellungen_Daten = GUICtrlCreateMenu("Daten")
    $GUI_Einstellungen_Daten_SS = GUICtrlCreateMenuItem("Speichern und Schließen", $GUI_Einstellungen_Daten)

    [/autoit] [autoit][/autoit] [autoit]

    $Label1 = GUICtrlCreateLabel("Ferienmodus aktiv", 20, 16, 90, 17)
    $Group1 = GUICtrlCreateGroup("Schulzeit", 20, 50, 320, 270)
    GUICtrlSetBkColor($Group1, 0xFFCCFF) ; Rosa

    [/autoit] [autoit][/autoit] [autoit]

    $Label2 = GUICtrlCreateLabel("Montag", $var_sz_link1, $var_top1, $var_labellaengeLabel, 17)
    $Label3 = GUICtrlCreateLabel("Dienstag", $var_sz_link1, $var_top2, $var_labellaengeLabel, 17)
    $Label4 = GUICtrlCreateLabel("Mittwoch", $var_sz_link1, $var_top3, $var_labellaengeLabel, 17)
    $Label5 = GUICtrlCreateLabel("Donnerstag", $var_sz_link1, $var_top4, $var_labellaengeLabel, 17)
    $Label6 = GUICtrlCreateLabel("Freitag", $var_sz_link1, $var_top5, $var_labellaengeLabel, 17)
    $Label7 = GUICtrlCreateLabel("Samstag", $var_sz_link1, $var_top6, $var_labellaengeLabel, 17)
    $Label8 = GUICtrlCreateLabel("Sonntag", $var_sz_link1, $var_top7, $var_labellaengeLabel, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $Label18 = GUICtrlCreateLabel("Start", $var_sz_link2, $var_top9, $var_labellaengeLabel, 17)
    $Label19 = GUICtrlCreateLabel("Ende", $var_sz_link3, $var_top9, $var_labellaengeLabel, 17)
    $Label20 = GUICtrlCreateLabel("Maximal", $var_sz_link4, $var_top9, $var_labellaengeLabel, 17)

    [/autoit] [autoit][/autoit] [autoit]

    Global $Input1 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top1, $var_labellaengeInput, 21)
    Global $Input2 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top1, $var_labellaengeInput, 21)
    Global $Input3 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top1, $var_labellaengeInput, 21)
    Global $Input4 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top2, $var_labellaengeInput, 21)
    Global $Input5 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top2, $var_labellaengeInput, 21)
    Global $Input6 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top2, $var_labellaengeInput, 21)
    Global $Input7 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top3, $var_labellaengeInput, 21)
    Global $Input8 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top3, $var_labellaengeInput, 21)
    Global $Input9 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top3, $var_labellaengeInput, 21)
    Global $Input10 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top4, $var_labellaengeInput, 21)
    Global $Input11 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top4, $var_labellaengeInput, 21)
    Global $Input12 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top4, $var_labellaengeInput, 21)
    Global $Input13 = GUICtrlCreateInput($var_startzeit_sz_wt, $var_sz_link2, $var_top5, $var_labellaengeInput, 21)
    Global $Input14 = GUICtrlCreateInput($var_endzeit_sz_wt, $var_sz_link3, $var_top5, $var_labellaengeInput, 21)
    Global $Input15 = GUICtrlCreateInput($var_maxzeit_sz_wt, $var_sz_link4, $var_top5, $var_labellaengeInput, 21)
    Global $Input16 = GUICtrlCreateInput($var_startzeit_sz_we, $var_sz_link2, $var_top6, $var_labellaengeInput, 21)
    Global $Input17 = GUICtrlCreateInput($var_endzeit_sz_we, $var_sz_link3, $var_top6, $var_labellaengeInput, 21)
    Global $Input18 = GUICtrlCreateInput($var_maxzeit_sz_we, $var_sz_link4, $var_top6, $var_labellaengeInput, 21)
    Global $Input19 = GUICtrlCreateInput($var_startzeit_sz_we, $var_sz_link2, $var_top7, $var_labellaengeInput, 21)
    Global $Input20 = GUICtrlCreateInput($var_endzeit_sz_we, $var_sz_link3, $var_top7, $var_labellaengeInput, 21)
    Global $Input21 = GUICtrlCreateInput($var_maxzeit_sz_we, $var_sz_link4, $var_top7, $var_labellaengeInput, 21)

    [/autoit] [autoit][/autoit] [autoit]

    $Label9 = GUICtrlCreateLabel("Bonus Zeit in Minuten: ", 360, 16, 110, 17)
    Global $Input22 = GUICtrlCreateInput($var_bonuszeit, 480, 16, 25, 17)
    GUICtrlSetBkColor($Input22, 0x00ff00) ; Grün

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Ferien", 360, 50, 320, 270)
    GUICtrlSetBkColor($Group2, 0xCCFFFF) ; Mintgrün

    [/autoit] [autoit][/autoit] [autoit]

    $Label10 = GUICtrlCreateLabel("Montag", $var_f_link1, $var_top1, $var_labellaengeLabel, 17)
    $Label11 = GUICtrlCreateLabel("Dienstag", $var_f_link1, $var_top2, $var_labellaengeLabel, 17)
    $Label12 = GUICtrlCreateLabel("Mittwoch", $var_f_link1, $var_top3, $var_labellaengeLabel, 17)
    $Label13 = GUICtrlCreateLabel("Donnerstag", $var_f_link1, $var_top4, $var_labellaengeLabel, 17)
    $Label14 = GUICtrlCreateLabel("Freitag", $var_f_link1, $var_top5, $var_labellaengeLabel, 17)
    $Label15 = GUICtrlCreateLabel("Samstag", $var_f_link1, $var_top6, $var_labellaengeLabel, 17)
    $Label16 = GUICtrlCreateLabel("Sonntag", $var_f_link1, $var_top7, $var_labellaengeLabel, 17)

    [/autoit] [autoit][/autoit] [autoit]

    $Label21 = GUICtrlCreateLabel("Start", $var_f_link2, $var_top9, $var_labellaengeLabel, 17)
    $Label22 = GUICtrlCreateLabel("Ende", $var_f_link3, $var_top9, $var_labellaengeLabel, 17)
    $Label23 = GUICtrlCreateLabel("Maximal", $var_f_link4, $var_top9, $var_labellaengeLabel, 17)

    [/autoit] [autoit][/autoit] [autoit]

    Global $Input23 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top1, $var_labellaengeInput, 21)
    Global $Input24 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top1, $var_labellaengeInput, 21)
    Global $Input25 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top1, $var_labellaengeInput, 21)
    Global $Input26 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top2, $var_labellaengeInput, 21)
    Global $Input27 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top2, $var_labellaengeInput, 21)
    Global $Input28 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top2, $var_labellaengeInput, 21)
    Global $Input29 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top3, $var_labellaengeInput, 21)
    Global $Input30 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top3, $var_labellaengeInput, 21)
    Global $Input31 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top3, $var_labellaengeInput, 21)
    Global $Input32 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top4, $var_labellaengeInput, 21)
    Global $Input33 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top4, $var_labellaengeInput, 21)
    Global $Input34 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top4, $var_labellaengeInput, 21)
    Global $Input35 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top5, $var_labellaengeInput, 21)
    Global $Input36 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top5, $var_labellaengeInput, 21)
    Global $Input37 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top5, $var_labellaengeInput, 21)
    Global $Input38 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top6, $var_labellaengeInput, 21)
    Global $Input39 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top6, $var_labellaengeInput, 21)
    Global $Input40 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top6, $var_labellaengeInput, 21)
    Global $Input41 = GUICtrlCreateInput($var_startzeit_f, $var_f_link2, $var_top7, $var_labellaengeInput, 21)
    Global $Input42 = GUICtrlCreateInput($var_endzeit_f, $var_f_link3, $var_top7, $var_labellaengeInput, 21)
    Global $Input43 = GUICtrlCreateInput($var_maxzeit_f, $var_f_link4, $var_top7, $var_labellaengeInput, 21)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 120, 16, 17, 17)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Admin

    [/autoit]


    Im Hauptprogramm stehen die Includes jetzt ganz oben

    meine Includes
    [autoit]

    #region ; Include Dateien
    #include "admin.au3"
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #NoTrayIcon
    #endregion ; Include Dateien

    [/autoit]


    und der Aufruf der admin.au3 erfolgt so

    der Funktionsaufruf
    [autoit]

    Case $GUI_Menue_Datei_Administration
    Local $passwd = InputBox("Administrative Anmeldung: ", "Bitte Passwort eingeben.", "", "*")
    If @error <> 1 Then
    If $passwd = "istimmernochganzarggeheim:-)" Then
    _Admin()
    ;MsgBox(0, "Passwort: ", "wurde richtig eingegeben, es könnte jetzt eine administrative Funktion aufgerufen werden")
    Exit
    Else
    MsgBox(0, "Passwort: ", "wurde NICHT richtig eingegeben !")
    Exit
    EndIf
    EndIf

    [/autoit]


    Wie gesagt, beide au3 Scripte liege im gleichen Verzeichnis.
    Wenn jetzt mit F5 die Hauptanwendung starte, passiert optisch gar nichts. In SciTE bekomme ich folgende Ausgabe:

    Ausgabe in SciTE
    Code
    >"C:\MyApps\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "Z:\AutoIT\Projekte\Eigene\KidsControlLight\KCL - Kopie.au3" /UserParams    
    +>16:15:39 Starting AutoIt3Wrapper v.2.1.0.33    Environment(Language:0407  Keyboard:00000407  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64)
    >Running AU3Check (1.54.22.0)  from:C:\MyApps\AutoIt3
    +>16:15:39 AU3Check ended.rc:0
    >Running:(3.3.8.1):C:\MyApps\AutoIt3\autoit3.exe "Z:\AutoIT\Projekte\Eigene\KidsControlLight\KCL - Kopie.au3"    
    --> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
    +>16:15:39 AutoIT3.exe ended.rc:0
    >Exit code: 0    Time: 2.105


    Wenn ich dann in dem Hauptscript die admin.au3 wieder rausnehme, sowie auch den Funktionsaufruf, dann lässt sich die Hauptanwendung wieder ganz normal starten.
    Ich check das gerda echt nicht

    Gruss und Danke

    Hassan

  • Externe au3 Datei via Include wird nicht gezogen

    • HassanMullah
    • 1. August 2012 um 16:56

    Hallo, ich muss leider diese Frage stellen, weil den Begriff "Include" in die Suchmaske eingeben nicht sehr glücklich ist.

    Folgendes kleines Problem.

    Ich habe mir ein Programm A geschrieben, welches bisher mit hartcodierten Werten arbeitet.
    Diese Werte möchte ich jetzt dynamisch verwalten.

    Hierzu habe ich mir ein Programm B (admin.au3) gebaut, welche eine GUI öffnet, wo ich die Wert dann ändern kann.
    Wenn ich das Programm B allein starte, geht es auf. Ich habe dort alles in einer Funktion, die ich auch dort aufrufe.
    Alle Variablen habe ich Global deklariert

    Jetzt möchte ich gerne in meine Programm A dieses Programm B mit einbinden.

    Dazu habe ich den Aufruf des Funktion aus Programm B rausgenommen und in Programm A integriert.
    Die admin.au3 Datei liegt im gleichen Verzeichnis wie die au3 von Programm A

    Wenn ich den Include ganz oben in Programm A (also bei den anderen Includes) setze, dann startet Programm A ganz kurz und beendet sich wieder

    [autoit]

    #region ; Include Dateien
    #include <admin.au3>
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #NoTrayIcon
    #endregion ; Include Dateien

    [/autoit]

    Wenn ich den Include kurz vor Aufruf der Funktion einbaue (welche über eine vorher definierten Menüpunkt aufgerufen wird), also so

    [autoit]

    Case $GUI_Menue_Datei_Administration
    #include <admin.au3>
    Local $passwd = InputBox("Administrative Anmeldung: ", "Bitte Passwort eingeben.", "", "*")
    If @error <> 1 Then
    If $passwd = "ganzarggeheimespasswortdasgarniemandwissendarf" Then
    ;MsgBox(0, "Passwort: ", "wurde richtig eingegeben, es könnte jetzt eine administrative Funktion aufgerufen werden")
    _Admin()
    Else
    MsgBox(0, "Passwort: ", "wurde NICHT richtig eingegeben !")
    Exit
    EndIf
    EndIf

    [/autoit]


    dann wird beim drücken von F5 die admin.au3 geöffnet (also in SciTE) und ich bekomme direkt unterhalb des Funktionsaufruf

    [autoit]

    Func _Admin()

    [/autoit]


    in einem roten umrandeten Kasten die Fehlermeldung
    ERROR: missing EndSwitch
    ERROR: missing Wend
    Die Funktion wird mit

    [autoit]

    EndFunc ;==>_Admin

    [/autoit]

    Damit fange ich jetzt so gar nichts an.

    Frage 1: Wo muss den Include hinsetzen
    Frage 2: Was muss ich noch beachten
    Frage 3: Wie gehe ich am besten vor, um die Fehler zu finden

    Gibt es eine Möglichkeit das Script Schritt für Schritt laufen zu lassen ?

    Gruss Hassan

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™