ich denke es liegt am Bild oder besser an dessen Größe, vielleicht kann es nicht dargestellt werden, Du hattest ja keine Größenangeben gemacht
Beiträge von latemail
-
-
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]$pic=GUICtrlCreatePic("C:\WINDOWS\Help\Tours\htmlTour\safe_easy_easier.jpg", ???????????? @DesktopWidth/2, @DesktopHeight/2 ??????????)
[/autoit] [autoit][/autoit] [autoit]habs mal mit einem meiner pics versucht --->>>>> CODE KLAPPT
[/autoit] [autoit][/autoit] [autoit]$pic=GUICtrlCreatePic("C:\test.jpg",50,50,70,70)
[/autoit] [autoit][/autoit] [autoit][/autoit] -
-
Du kannst die beiden Abfragemodi des GUI nicht gleichzeitig verwenden;
also entweder ON-EVENT oder GET-MESSAGE
-
so wie ich das verstehe soll die Anzahl der Buttons variabel sein ... da gab schon mal einen guten Thread mit Lösungen dazu --->> SUFU
oder hier :
[ gelöst ] Buttons in Schleife erstellen mit Funktion
-
.... also Hut ab, wenn Du das alles so abtippen willst.
.... aber ich bin vom Typ her schreibfaul
, daher die Nachfrage, kannst Du nicht einfacher eine Codierung der Dateinamen austüfteln, also z.B. A -> 4711
B -> 54321 ....die in einer InI-Datei ablegen, und dann bei der Eingabe von "A" die Datei 4711.png aufrufen, das wird wohl keiner entschlüsseln oder??!!??
-
[autoit]$handle = ControlGetHandle("paskjh^2g387zaisug2937856", "", 1)
eine kurze Nachfrage; hat "paskjh^2g387zaisug2937856" eine bestimmte Bedeutung oder kann hier beliebiger Text stehen???
-
Hmmmmmmm ....
ich bin mir nicht sicher, ob ich die Aufgabenstellung richtig verstanden habe?!
meine Interpretation :
- Du hast alle Buchstaben als PNG vorliegen
- alle jeweils in den Farben Weiß und Blau
- und willst daraus jeweils 4-stellige Captchas erstellen
- das Script soll per Tastendruck die richtige PNG öffnenich würde diesen Fall so lösen:
- zwei Verzeichnisse (Blau/Weiß)
- Dateinamen selbsterklärend (z.B. a.png oder A.png)
- den jeweiligen Captchacode eingeben oder erstellen lassen (per Zufall)
- den Captcha-String splitten und dann die passenden Dateien öffnen/zusammenfügenso vielleicht??

-
latemail wie soll das mit 2 Zeilen gehen ? Wenn du GuiDelete ausführst , dann mußt du beim neuanzeigen der Gui , diese erst mal wieder Initialisieren . Und das sind bestimmt mehr als 2 Zeilen.Um das ganze mit 2 Zeilen hinzubekommen , muß die Komplette GUI über eine Funktion erstellt werden so wie Flitzer es vorhat .
Sorry wenn ich das vorausgesetzt habe, aber das ist meine übliche Vorgehensweise. Die GUIs am Anfang des Scripts definieren, dann kann man sie an jeder beliebigen Stelle aufrufen, verstecken löschen, finde ich praktisch .....
-
lösch doch einfach das gui und erstelle es neu
[autoit]
GuiDelete($deingui)
[/autoit]was hast Du gegen diesen Vorschlag; 2 Zeilen (Löschen und Wiederherstellen) und Problem gelöst, kürzer geht kaum !!!
-
....... das ist das Standard-Array-Problem:
Nummerierung der Elemete im Array : läuft von 0 bis 5 (als Bsp.)
Anzahl der Elemete im Array : 6 (0, 1, 2, 3, 4, 5)for $i = 0 to 6 --->>> 7 Elemente

-
siehe Hilfe:
Opt("WinTitleMatchMode", 2)
;1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-/Klein ignorieren
-
probiers doch einfach so:
$input1 (z.B. 5)
for $i = 1 to $input1
Funktion
nextmsgbox
-
mal ein paar Hinweise, basteln solltest Du selber:
FileOpen
FileReadLineStringInString
StringLeft, -Mid, -RightIniWrite
und das Ganze natürlich in einer Schleife .......... bis die Datei abgearbeitet ist
-
ja, ich will es live mitschaun wenn das programm läuft. im go-mode von scite kann ich es eh auf der console mitschauen aber halt nicht wenn ich es per exe ausführe.
Das mit der Zeit wäre eine Möglichkeit, wie sage ich aber dem edit feld das er nicht immer mit dem curser nach oben springen soll sondern ans Ende.
also ich habe mir mal ein Testcode geschrieben, um Dein Problem zu verstehen ...
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>GUICreate("Com -Test", 500, 500) ; Legt ein Dialogfenster an, das zentriert angezeigt wird
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW) ; zeigt ein leeres Dialogfenster an$edit = GUICtrlCreateEdit("", 10, 10, 480, 480, $BS_MULTILINE)
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To 40
$ComString = "aaa" & String($i)
;ConsoleWrite($ComString)
FileWrite("c876com.log", $ComString)
GUICtrlSetData($edit, FileRead("c876com.log"))
NextWhile 1
[/autoit]
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEndhier springt kein Cursor irgendwo hin, musst halt irgendwann mal das Editfenster löschen (zähle geschriebene Zeichen z.B.)
wäre das ne Lösung?
-
Klappt ebenfalls nicht.
Das fenster muss Aktiv sein, damit Controlsend funktioniert.
Wenn es nicht im Vordergrund ist, funktioniert es nicht
Aber dennoch, danke für den versuch
also ich weiss nicht was diese F4-Taste bewirken soll, aber das Problem ist denke ich, dass Du Dich nicht auf ein Control-Element beziehst ...
in Deinem Bsp. wird der Text in ein EDIT-Element geschrieben, Du willst aber den Code "F4" an das Programm im Hintergrund schicken (Laden, Aktualisieren oder so was), das geht glaube ich nicht ....
ein Tip/Frage: kannst Du die Funktion "F4" nicht auch mit einem Button oder Menüpunkt (des Hidden-Programms) ausführen, dann könnte es klappen
-
Was willst Du denn bewirken? Soll in dem Edit ein Protokoll Deiner Schnittstelle "live" mitgeschrieben werden?
Dann wird es immer flackern wegen des Updaten des Edit, lese doch die Datei einfach nur alle xy Sekunden aus, dann
sollte es nicht mehr flackern ....... -
[quote='satinez',index.php?page=Thread&postID=81797#post81797]Hallo und Willkommen

.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#RequireAdmin
#include
;~ #NoTrayIconOpt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1_1 = GUICreate("Lerntagebuch", 694, 739, -1, -1)
GUISetBkColor(0xA6CAF0)
$Date = GUICtrlCreateDate("2009/03/17 19:28:48", 0, 688, 225, 42)$Beenden = GUICtrlCreateButton("Beenden", 536, 688, 145, 41)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent( $Beenden , '_End') ; Bei Klick rufe die Funktion "_End()" aufGUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
[/autoit] [autoit][/autoit] [autoit]
$Speichern = GUICtrlCreateButton("Speichern", 384, 688, 145, 41)
GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
$Datum = GUICtrlCreateLabel("Datum", 8, 16, 183, 31)
GUICtrlSetFont(-1, 14, 800, 4, "Comic Sans MS")
$TDR = GUICtrlCreateLabel("Thema der Reihe", 8, 56, 179, 31)
GUICtrlSetFont(-1, 14, 800, 4, "Comic Sans MS")
$Box1D = GUICtrlCreateInput("Unten Links??", 200, 16, 265, 21)
$BoxTDR = GUICtrlCreateInput("", 200, 56, 265, 21)
$Drucken = GUICtrlCreateButton("Drucken", 232, 688, 145, 41, 0)
GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
$TDS = GUICtrlCreateLabel("Thema der Stunde", 8, 96, 180, 31)
GUICtrlSetFont(-1, 14, 800, 4, "Comic Sans MS")
$BoxTDS = GUICtrlCreateInput("", 200, 96, 265, 21)
$Material = GUICtrlCreateLabel("Material", 8, 136, 178, 31)
GUICtrlSetFont(-1, 14, 800, 4, "Comic Sans MS")
$BoxMaterial = GUICtrlCreateInput("BoxMaterial", 200, 136, 265, 21)
$Bearbeitung = GUICtrlCreateLabel("Bearbeitung", 8, 176, 177, 31)
GUICtrlSetFont(-1, 14, 800, 4, "Comic Sans MS")
$EditBearbeitung = GUICtrlCreateEdit("", 200, 176, 265, 169)
GUICtrlSetData(-1, "EditBearbeitung")
$ErgebnisDerStunde = GUICtrlCreateLabel("Ergebnis der Stunde", 8, 368, 179, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Edit1 = GUICtrlCreateEdit("", 200, 368, 265, 121)
GUICtrlSetData(-1, "Edit1")
$Hausaufgaben = GUICtrlCreateLabel("Hausaufgaben", 8, 512, 181, 31)
GUICtrlSetFont(-1, 14, 800, 4, "Comic Sans MS")
$Edit2 = GUICtrlCreateEdit("", 200, 520, 265, 137)
GUICtrlSetData(-1, "Edit2")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _End()
[/autoit]
Exit 0
EndFunc ;==>_End
[/autoit]Zeile 14 / Zeile 50
Du verwendest hier zwei unterschiedliche Modi der GUI-Bearbeitung (Meldungen, Button etc.) .... das führt zu Fehlern und ist nicht zulässig!!!
-
Code-Kürzen mit Funktionen (ohne Arrays):
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
; ***************************************
Case $msg = $FileCopy_1
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
$Dest_1 = GUICtrlRead ($DirSelectInput_1, 1)
FileCopy ($Source_1, $Dest_1)
FileCopy ($Source_2, $Dest_1)
FileCopy ($Source_3, $Dest_1)
FileCopy ($Source_4, $Dest_1)
FileCopy ($Source_5, $Dest_1)
FileCopy ($Source_6, $Dest_1)
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_2
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
$Dest_2 = GUICtrlRead ($DirSelectInput_2, 1)
FileCopy ($Source_1, $Dest_2)
FileCopy ($Source_2, $Dest_2)
FileCopy ($Source_3, $Dest_2)
FileCopy ($Source_4, $Dest_2)
FileCopy ($Source_5, $Dest_2)
FileCopy ($Source_6, $Dest_2)
MsgBox (64, "Fertig", "Alle Daten wurden kopiert"); ***************************************
[/autoit]
Case $msg = $FileCopy_3
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
$Dest_3 = GUICtrlRead ($DirSelectInput_3, 1)
FileCopy ($Source_1, $Dest_3)
FileCopy ($Source_2, $Dest_3)
FileCopy ($Source_3, $Dest_3)
FileCopy ($Source_4, $Dest_3)
FileCopy ($Source_5, $Dest_3)
FileCopy ($Source_6, $Dest_3)
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_4
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
$Dest_4 = GUICtrlRead ($DirSelectInput_4, 1)
FileCopy ($Source_1, $Dest_4)
FileCopy ($Source_2, $Dest_4)
FileCopy ($Source_3, $Dest_4)
FileCopy ($Source_4, $Dest_4)
FileCopy ($Source_5, $Dest_4)
FileCopy ($Source_6, $Dest_4)
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_5
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
$Dest_5 = GUICtrlRead ($DirSelectInput_5, 1)
FileCopy ($Source_1, $Dest_5)
FileCopy ($Source_2, $Dest_5)
FileCopy ($Source_3, $Dest_5)
FileCopy ($Source_4, $Dest_5)
FileCopy ($Source_5, $Dest_5)
FileCopy ($Source_6, $Dest_5)
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_6
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
$Dest_6 = GUICtrlRead ($DirSelectInput_6, 1)
FileCopy ($Source_1, $Dest_6)
FileCopy ($Source_2, $Dest_6)
FileCopy ($Source_3, $Dest_6)
FileCopy ($Source_4, $Dest_6)
FileCopy ($Source_5, $Dest_6)
FileCopy ($Source_6, $Dest_6)
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
wird zu:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
; ***************************************
Case $msg = $FileCopy_1
_lesen()
$Dest_1 = GUICtrlRead ($DirSelectInput_1, 1)
_schreiben()
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_2
_lesen()
$Dest_2 = GUICtrlRead ($DirSelectInput_2, 1)
_schreiben()
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_3
_lesen()
$Dest_3 = GUICtrlRead ($DirSelectInput_3, 1)
_schreiben()
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_4
_lesen()
$Dest_4 = GUICtrlRead ($DirSelectInput_4, 1)
_schreiben()
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_5
_lesen()
$Dest_5 = GUICtrlRead ($DirSelectInput_5, 1)
_schreiben()
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************
Case $msg = $FileCopy_6
_lesen()
$Dest_6 = GUICtrlRead ($DirSelectInput_6, 1)
_schreiben()
MsgBox (64, "Fertig", "Alle Daten wurden kopiert")
; ***************************************func _lesen()
[/autoit] [autoit][/autoit] [autoit]
$Source_1 = GUICtrlRead ($FileSelectInput_1, 1)
$Source_2 = GUICtrlRead ($FileSelectInput_2, 1)
$Source_3 = GUICtrlRead ($FileSelectInput_3, 1)
$Source_4 = GUICtrlRead ($FileSelectInput_4, 1)
$Source_5 = GUICtrlRead ($FileSelectInput_5, 1)
$Source_6 = GUICtrlRead ($FileSelectInput_6, 1)
endfuncfunc _schreiben()
[/autoit]
FileCopy ($Source_1, $Dest_1)
FileCopy ($Source_2, $Dest_1)
FileCopy ($Source_3, $Dest_1)
FileCopy ($Source_4, $Dest_1)
FileCopy ($Source_5, $Dest_1)
FileCopy ($Source_6, $Dest_1)
endfunc -
@ latemail,
Ich würde anhand fertiger (auskommentierter) Skripte leichter lernen. IS KLAR

Aber wo gibt's das? HIER !!
MfG

... das Forum mit dem totalen Service

Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>AutoItSetOption("WinTitleMatchMode", 2) ; sucht nach Teilstring
[/autoit] [autoit][/autoit] [autoit]Global $var, $fenster[20], $moved[20]
[/autoit] [autoit][/autoit] [autoit]
Global $breite = 300 ; Breite Zielfenster
Global $hoehe = 200 ; Höhe Zielfenster
Global $count = 0 ; Zähler für GIMP-Fenster
Global $suchstring = "GIMP"$var = WinList() ; allen Prozessen einlesen
[/autoit] [autoit][/autoit] [autoit]For $i = 1 to $var[0][0] ; Gesamtanzahl der Prozesse ist in $var[0][0] gespeichert
[/autoit] [autoit][/autoit] [autoit]
If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then ; nur solche Proz. mit Fenster auswählen
If StringInStr ($var[$i][0], $suchstring, 0) > 0 Then ; nur solche Proz. mit "GIMP" im Titel auswählen, beachtet KEINE Groß/Kleinschreibung
$count += 1 ; Zähler für Gimp-Fenster
$fenster[$count] = $var[$i][1] ; Handle speichern
WinMove($fenster[$count], "", 0, 0, $breite, $hoehe) ; Fenster bewegen
$moved[$count] = 1 ; Merker für Bewegung setzen
EndIf
EndIf
NextFunc IsVisible($handle)
[/autoit] [autoit][/autoit] [autoit]
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIfEndFunc
[/autoit]