Vielen Dank Schnitzel! Ja, so klappt es!
Allerdings würde mich dennoch interessieren, ob jemand eine Möglichkeit kennt, den Controltyp hinter einer ControlID herauszubekommen.
lg
s.koni
Vielen Dank Schnitzel! Ja, so klappt es!
Allerdings würde mich dennoch interessieren, ob jemand eine Möglichkeit kennt, den Controltyp hinter einer ControlID herauszubekommen.
lg
s.koni
Hallo liebe Mitstreiter,
hat jemand eine Idee, wie man herausbekommen könnte, von welchem Typ ein Control ist, von dem man die ControlID hat?
Hintergrund: Möchte in ein Array immer die ControlID des Controls schreiben, dessen Hintergrund ich verändert habe. Später möchte ich dann die Hintergrundfarbe wieder auf den Standard zurücksetzen. Der ist bei einem Input aber weiß und bei einem CheckBox-Control wie der Hintergrund der GUI.
Ich könnte zwar die unterschiedlichen Controls in Unterschiedliche Arrays schreiben, eleganter fände ich es aber, wenn ich irgendwie den Typ ermitteln könnte.
Vielen Dank schon mal!
Gruß
s.koni
Danke, hab mir so was schon gedacht. Hab nur befürchtet, dass ich etwas übersehen habe.
Gruß
s.koni
Hallo,
- möchtest du ein ein Script (also die EXE) mit Parameter starten? -> Siehe $cmdline
- möchtest du ein Script erstellen lassen (also die EXE erstellen) und die möglichen Parameter nutzen? Bei Scite kannst du STRG+F7 verwenden um die Parametereingabe aufzurufen.
lg
s.koni
Hallo Leute,
ich habe ein Array mit mehreren Dimensionen als z.B. $Array[150][4]. Nun möchte ich die Spalte 2 des Arrays nehmen und daraus ein neues Array erstellen.
Bin bisher nicht auf eine einfachere Lösung gekommen, außer natürlich das Array zu durchlaufen und ein neues Array mit den Werte zu füllen.
Hat jemand eine einfachere Lösung?
Vielen Dank schon mal!
lg
s.koni
Hallo,
du kannst doch zunächst die Fensterposition ermitteln und dann der Position die Controlposition dazuzählen. Der Mausklick landet dann immer an der richtigen Position.
Um festzustellen, ob die Kontrollkästchen schon gekennzeichnet wurden könntest du mit Pixelsearch arbeiten.
Gruß
s.koni
Danke für die Info!
Genau so wie Xenobiologist es in der Hilfe von Scite for Autoit gefunden hat funktionierts.!!!
Vielen Dank für die Lösung
Steffen
Bis jetzt nicht! Wo muss die Datei hin? Muss ich die irgendwie noch Scite oder dem Wrapper bekanntmachen?
Danke
Steffen
Hallo,
seit der Umstellung auf WINDOWS 7 werden mir die Angaben die ich beim compilieren als Dateieigenschaften eintragen möchte nicht mehr angezeigt. Bin mir nicht sicher, ob das nun am Win7 liegt, oder ob ich was falsch mache. Es wird nicht mal der Kommentar übernommen, ganz zu schweigen von eigenen Feldern!
Muss man eigentlich den Resource Hacker noch separat installieren?
Wäre echt super, wenn jemand was dazu wüsste!!!
Vielen Dank schon mal
Steffen
Beispiel:
[autoit]
#AutoIt3Wrapper_Res_Comment=Programm steuert das Datenbankhandling für den...
...
#AutoIt3Wrapper_Res_Field=AU3Pfad|%scriptdir%
#AutoIt3Wrapper_Res_Field=Compiliert am|%date% %time%
#AutoIt3Wrapper_Res_Field=AutoItVersion|%AutoItVer%
#AutoIt3Wrapper_Res_Field=Subject|%scriptdir%
...
Dateieigenschaftenanzeige im Explorer:
autoit.de/wcf/attachment/18362/
Hallo Splash,
habe so was schon damit gelöst, dass ich über WinPos die Koordinaten des Fensters ermittelt und dann die relative Position des Tabs dazugerechnet habe. Evtl. könntest du noch über die Auflösung einen Faktor ermitteln und die Klickposition so noch genauer bestimmen.
Gruß
s.koni
Vielen Dank!
Bin selbst nicht draufgekommen!
Steffen
Hallo Mitstreiter,
ich habe da ein Problem. Ich möchte den EXAKTEN Pfad einer Datei herausfinden, also ob die Pfadstruktur evtl. Groß und Kleinbuchstaben enthält.
Z.B.
Eingegebener Pfad I:\I1956_Planauskunft_Master\Projekte_Voehringen\#Verteilungen\d_400V_KRAFT\20_1d
Unterschied | |
EXAKTER PFAD I:\I1956_Planauskunft_Master\Projekte_Voehringen\#Verteilungen\D_400V_KRAFT\20_1D
Problem ist, dass ich den Exakten Pfad für ein anderes Programm brauche, dass sonst nicht klar kommt, wenn der Pfad nicht 100% stimmt.
Weiß jemand Rat?
Vielen Dank schon mal.
Gruß
Steffen
Meinst du in die Schnellstartleiste?
Kommt auf dein Betriebssystem an.
Bei WinXp findest du den Speicherort für die Verknüpfung unter dem Order Quick Launch, der irgendwo unterhalb des User-Ordners liegen sollte. Am besten du suchst mal danach.
Auch Google liefert sicher was unter dem Begriff Quick Launch
Hoffe das hilft dir weiter
Gruß
s.koni
Hallo Flubber,
du könntest vor dem aktivieren des "Unterfensters" die Mausposition und den Fenstername des aktiven Fensters auslesen und nach dem du die Tastenkombination im "Unterfenster" ausgeführt hast, das gespeicherte Fenster wieder aufrufen und die Mausposition wieder auf die vorherige Position setzen.
Schau dir dazu mal dei Befehle an:
WinGetTitle
MouseGetPos
WinActivate
MouseMove
Gruß
Steffen
Hallo argonautik,
du kannst dir ja mal die PDF Datei in einem Editor, z.B. SciTE öffnen und dann schauen, ob dein gesuchter Text irgendwie zu erkenne ist.
Was ich bei deiner Beschreibung nicht ganz verstanden habe ist, welches Kriterium für den neuen Dateinamen gelten soll. Steht die neue Bezeichnung in der PDF Datei? Wenn ja, könnte man nicht bei der Erstellung der PDF Dateien diesen neuen Namen irgendwie ausgeben? Vielleicht in den Dateiattributen. Die lassen sich leichter auslesen. Oder schau mal, vielleicht stehen die gesuchten Informationen sowieso schon in der Dateiinformation der PDF Datei.
Hilfreich hierzu ist das Programm exiftool.exe, einfach mal google danach fragen. Mit dem Programm kann man die Tag-Eigenschaften anzeigen lassen und auch ändern.
Vielleicht hilft dir das ja weiter.
Gruß
s.koni
Mir ist noch was eingefallen. Wenn der Text in der PDF Datei immer an der gleichen stelle steht, könntest du auch über Mausdown und mousemove usw. den Text direkt kennzeichnen. Dann wie beschrieben über das Clipboard auslesen und auswerten.
Geht so leider nicht! Sorry!
Hallo aIT-newUSER,
du kannst die Text Datei entweder zeilenweise durchlaufen und darauf prüfen, ob der String Updater enthalten ist, wenn ja, dann einfach den "Rest" der Zeile in die Variable schreiben,
Befehle dazu:
FileReadLine, StringInStr
[/autoit]ODER
du kannst auch die gesamte Textdatei in ein Array lesen und dieses dann nach Updater durchsuchen. Wird etwas gefunden, kannst du wieder den "Rest" des Eintrags in deine Varable schreiben.
Befehle dazu:
_FileReadToArray, _ArrayBinarySearch oder _ArrayFindAll oder _ArraySearch
[/autoit]Anhand der Beispiele in der Hilfe kommst du hier sicher schon recht weit - viel Erfolg!
Gruß
Steffen
Hallo DeathNote,
Alledings wird bei dir das Sript sehr oft @hour und @min abfragen.
Vorschlag, mach doch eine switch ein
[autoit]
While 1
Switch @HOUR
Case 09 ; Ab 09 soll alle 30 Sekunden geprüft werden
Sleep(30 * 1000)
case 10 ; Ab 10 soll alle 10 Sekunden geprüft werden
Sleep(10 * 1000)
Case Else ;Vor 9 Uhr soll jeweisls eine 1/2 Stunde gewartet werden.
Sleep(0.5 * 60 * 60 * 1000) ;0.5 * 60 * 60 * 1000 = 1/2 Stunde warten
EndSwitch
If @HOUR = 10 And @MIN = 0 Then
_Function()
Exit
EndIf
WEnd
Gruß
Steffen
Da hast du recht - und habe ich auch. Bie der GUI definition habe ich den Aufruf integriert
[autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
;MsgBox(0, "Schliessen gedrückt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
Exit
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
;MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
Case @GUI_CtrlId = $GUI_EVENT_RESTORE
;MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
EndSelect
EndFunc ;==>SpecialEvents
So langsam glaube ich, dass kriege ich so nicht hin. Muss es dann halt über eine HotKeySet machen - oder hast du oder jemand anders noch eine Idee?
Gruß
Steffen
Hab ich auch gemacht, der Code ist nur nicht vollständig hochgeladen, da es sonst zu unübersichtlich wird.
Opt("GUIOnEventMode", 1)
ist definitiv am Anfang des Scripts enthalten!
Aber Danke, dass hätte ich auch leicht vergessen können!
Was mir aufgefallen ist, auch GUI über X schliessen oder minimieren nicht funktionieren während der Schleife in der Unterfunktion nicht.
Gruß
Steffen
Danke für den Tip.
Habe nun den Aufruf der Unterfunktion mittels GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "CheckButton") angepasst.
Wird die GUI gestartet und klicke ich auf den Button wird die Unterfunktion gestartet und in der Schleife die Befehle abgearbeitet.
Klicke ich nun aber nochmals auf den Button müsste doch eigentlich nochmal die Funktion "CheckButton" aufgerufen werden. Das passiert aber nicht. Ich kann auf den Button klicken wir ich will, die Funtion wird nicht nochmal gestartet.
Hier nochmal mein Code:
[autoit]Global $RunFLag = 1
#Region ### START Koda GUI section ### Form=I:\I0603_ECAD_Austauschdaten\ELCAD\Command.auc\AutoIt\ELCADUserUpdate\FormELCADUserUpdater.kxf
$GUIWidth = 620
$GUIHeight = 380
Local $GUITitel = "User Files Updaten"
$FormUpdater = GUICreate($GUITitel, $GUIWidth, $GUIHeight, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "CheckButton")
$ProgressLeft = 16
$ProgressBar1 = GUICtrlCreateProgress($ProgressLeft, 320, $GUIWidth - 2 * $ProgressLeft, 22, $PBS_SMOOTH)
$ProgressbarLabel = GUICtrlCreateLabel('0%', $ProgressLeft, 324, $GUIWidth - 2 * $ProgressLeft, 14, $SS_CENTER) ; Prozentanzeige innerhalb der Progressbar
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Transparenter Hintergrund für das Label
$ButtonCommand = GUICtrlCreateButton("Start", 520, $GUIHeight - 8 - 25, 91, 25, $WS_GROUP)
[/autoit][autoit][/autoit][autoit]$LabelHeader = GUICtrlCreateLabel("ELCAD Benutzerverwaltung aktualisierung", 16, 8, 602, 33)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$EditForm = GUICtrlCreateEdit("", 16, 48, 593, 265, $WS_VSCROLL + $ES_WANTRETURN + $ES_AUTOHSCROLL + $ES_READONLY)
$hEdit = GUICtrlGetHandle($EditForm)
GUICtrlSetData(-1, "Projektsuche")
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
While 1
[/autoit][autoit][/autoit][autoit]Sleep(250)
WEnd
Func MasterFunc()
[/autoit][autoit][/autoit][autoit][/autoit][autoit]$Temp = GUICtrlRead($EditForm)
GUICtrlSetData($EditForm, $Temp & @CRLF & "Projektsuche gestartet")
_GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))
$MasterUserDate = StringLeft(FileGetTime($MasterUserDatFile, 0, 1),
$FolderList = _FileListToRekursiv($LocalProjectFolder, "*.pro", 2)
$Temp = GUICtrlRead($EditForm)
GUICtrlSetData($EditForm, $Temp & @CRLF & "Projektsuche abgeschlossen")
_GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))
For $i = 1 To $FolderList[0]
[/autoit][autoit][/autoit][autoit]; Hier werden die Befehle angearbeitet ........
[/autoit][autoit][/autoit][autoit]GUICtrlSetData($ProgressBar1, 100 / $FolderList[0] * $i)
GUICtrlSetData($ProgressbarLabel, Round(100 / $FolderList[0] * $i, 0) & '%') ; neuen Wert für das Label schreiben
If $RunFLag = 0 Then
$Temp = GUICtrlRead($EditForm)
GUICtrlSetData($EditForm, $Temp & @CRLF & @CRLF & "---- Abbruch durch Benutzer! ---- " & $FolderList[$i])
_GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))
GUICtrlSetData($ButtonCommand, "Start")
ExitLoop
Else
MsgBox(0, "", "Runflag = 1", 1)
EndIf
Next
[/autoit][autoit][/autoit][autoit]EndFunc ;==>MasterFunc
[/autoit][autoit][/autoit][autoit]Func CheckButton()
$BtnText = GUICtrlRead($ButtonCommand) ; Text des Button einlesen
If $BtnText = "Start" Then ; Wenn der Buttontext = Start, dann
GUICtrlSetData($ButtonCommand, "Abbrechen") ; Buttontext auf Abbrechen setzen
$RunFLag = 1 ; RunFlag auf 1 Setzen (Schleife soll weiterlaufen)
MasterFunc() ; Unterfunktion aufrufen
ElseIf $BtnText = "Abbrechen" Then ; Ist der Buttontext = Abbrechen, dann
$RunFLag = 0; RunFlag auf 0 Setzen (Schleife soll BEENDET werden)
Else ; Sonstiger Buttontext (z.B: Schliessen)
Exit
EndIf
EndFunc ;==>CheckButton
[/autoit]