mit Winspector habe ich es jetzt doch noch geschafft das ein oder andere Fenster auf zu scannen. Mal sehen was ich damit anfangen kann. Vielen dank für denn Tipp
Beiträge von qwerti
-
-
Bietet die neue Version kein Plugin um alte Versionen zu importieren, oder ein Command Line Tool dafür?
leider nicht dann könnte ich mir hier so viel ersparen
Vielleicht findest du ja ein Control Spy Tool welches die Anwendung nicht zum crashen bringt.
das werde ich dann nochmal in Angriff nehmen.
Die Buttons die du anklicken willst croppen, als bmp/png abspeichern und dann mit ImageSearch suchen.
ok das klingt machbar.
-
@Mars darüber hab ich auch schon nachgedacht, nur wollte ich mir das tatsächlich als letztes Mittel aufheben. Ich muss dir zustimmen, ich hätte auch nicht gedacht das ich das jemals brauchen würde, es ist einfach so unglaublich unelegant. Aber schön das du dich so freust
Wie genau geh ich denn Imagesearch am besten an? Bis jetzt hatte ich nur mal kurz bei Pixelsearch reingeschaut.
Ich bin aber immer noch für alles offen was mir das ersparen könnte ...
-
oh ok, mein Fehler
-
Gibt es eigentlich eine Alternative zu "AutoIt Window Info" ?
-
-
Die Anwedung selbst ist ein uraltes CAD-Programm (StrieCAD). Dies hat zwar Nachfolger-Programme (StriePlan) allerdings lassen sich damit die alten Projekte nicht mehr öffnen oder verwalten. Ich möchte die alten Projekte gerne exportieren als PDF- und DXF-Dateien was ich bei 15 Jahren x 5 Mitarbeiter x ca. 300 Projekte pro Jahr gerne automatisieren würde
-
Ich weiß nicht genau ob jemand das Problem schon mal hatte. Ich habe danach gesucht aber bis jetzt nichts gefunden. Vielleicht kann mir ja jemand helfen.
Ich habe auf einem alten WinXP System eine 16-bit Anwendung die ich gerne mit bestimmten AutoIT Tools bedienen möchte. So weit ich es mitbekommen habe ist AutoIT nicht fähig mit 16-bit zu arbeiten ist das richtig? Die "AutoIT Window Info" verursacht jedes mal einen Absturz der 16-bit Anwendung. Bis jetzt kann ich nur Tastenanschläge simulieren ohne das das Programm sich aufhängt.
Hat jemand in dem Bereich Erfahrung oder vielleicht einen Tipp?
-
@AspirinJunkie Es ist auf jeden Fall eine sehr interessante Methode, ich gebe zu das sie etwas über meinen Fähigkeiten liegt dafür bin ich einfach zu schlecht im programmieren btw.: mein persönlicher Anspruch nach Codeeffizienz hält sich in Grenzen mir ist wichtig das ich meinen eigenen Code verstehe und er am ende gut funktioniert.
vielen Dank für deine Mühe!
-
Vielleicht hilft dir das ja weiter:
AutoIt
Alles anzeigen#include <Array.au3> Local $a1[2] = ["Datei.txt", "File.msg"] Local $a2[2] = ["Datei.msc", "File.mmm"] Local $a3[3] = ["Datei.fgj", "Nein.msg"] For $i = 0 To UBound($a1) - 1 $sDateiName = StringTrimRight($a1[$i], 4) ConsoleWrite("1. ArraySearch = " & _ArraySearch($a2, $sDateiName, 0, 0, 0, 1) & @CRLF) ConsoleWrite("2. ArraySearch = " & _ArraySearch($a3, $sDateiName, 0, 0, 0, 1) & @CRLF & @CRLF) Next
@alpines Also das hab so jetzt gut umgesetzt bekommen! Danke
Und wenn du statt 3 Arrays alle Dateien in das ARray packst und beim durchgehen schaust ob 3 aufeinander folgende Dateien den selben Namen haben?
@AspirinJunkie Ich kann mich auch irren aber ich könnte mir vorstellen das dass recht fehleranfällig ist und ich kann bei der Methode schlecht sagen welcher der 3 Dateien fehlt oder? Die Variante mit dem Dictionarie ist schon zimlich cool aber vielleicht am Ende doch etwas zu umfangreich für mich und meine bescheidenen Zwecke aber trotzdem vielen lieben dank!
-
oh wow das ging aber Fix!
Vielen dank für die schnelle Hilfe. Ich werde mir das gleich mal genauer Angucken aber ich denke damit kann ich etwas anfangen. Vielen dank!!
-
Hallo zusammen ich hoffe jemand kann mir weiterhelfen.
Ich möchte via _ArraySearch bestimmte Verzeichnisinhalte vergleichen, nur leider bekomme ich nicht das erwünschte Ergebnis.
In dem Verzeichnis befinden sich teilweise bis zu 1800 Dateien immer ein Dateiname und 3 verschiedene Dateiendungen. Ich möchte über ein Skript raus bekommen wenn irgendwo eine Datei fehlt, es also nur 2 Dateien sind mit dem Namen.
Nur klappt es bei mir nicht so richtig.
Mein Ansatz:
AutoIt: Vergleich
Alles anzeigenFunc Vergleich() Local $FileListCAD = _FileListToArray($verzeichniss,'*.cad') Local $FileListINI = _FileListToArray($verzeichniss,'*.ini') Local $FileListSLP = _FileListToArray($verzeichniss,'*.slp') For $i = 2 To UBound($FileListCAD) -1 $temp = StringSplit($FileListCAD[$i],".",2) $index = _ArraySearch ($FileListSLP, $FileListCAD[0],0,0,0,1) If $index > 1 Then MsgBox(0, 'Eintrag wurde nicht gefunden', ' Index: ' & $index) EndIf Next EndFunc ;==>Vergleich
Mein Problem selbst wenn ich mit Absicht eine Datei lösche kommt hier keine Meldung.Wenn mir jemand helfen könnte wäre ich darüber sehr froh.
mit freundlichen Grüßen
-
oh ja das hatte ich vergessen. Sorry
-
Hab meinen Fehler mittlerweile selbst gefunden
Ich hab die Funktion zum umwandeln des Rückgabewertes benutzt, dass funktioniert nur leider nicht wenn kein entsprechender Rückgabewert zurück kommt
-
Hallo Leute ich hab ein bisschen Probleme und hoffe ihr könnt mir helfen.
Ich möchte in einem kleinen Script Daten aus einer .ini in eine Sqldatenbank übernehmen. An sich kein Problem, nur kenne ich mich nicht so richtig gut mit Sql aus und in AutoIT hab ich jetzt auch noch so meine Problemchen. Ich bekomme es hin Daten aus der Datenbank zu lesen und auch Daten zu schreiben aber leider bekomm ich beim schreiben einen Fehler.
ich benutze die mysql.au3 von cdkid (im Anhang)
und hier mein Script, bitte nicht lachen Das Problem tritt in der Funktion _SQL auf wenn ich die sqlschreiben ausführe. Vielleicht kann mir jemand den Fehler erklären. Schon mal Danke im Vorraus.
AutoIt
Alles anzeigen; ; AutoIt Version: 3.0 ; Language: German ; Author: qwerti ; ; Script Function: ini Dateien einlesen und in eine SQL-Datenbank übertragen ; ;~ #NoTrayIcon #include<Array.au3> #include <mysql.au3> #include <GuiListView.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <GuiToolbar.au3> #include <ListViewConstants.au3> #include <ToolbarConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1_1 = GUICreate("ini-Daten einlesen", 450, 445, 232, 200) $Button1 = GUICtrlCreateButton("...", 184, 408, 35, 25, $WS_GROUP) $Button2 = GUICtrlCreateButton("in die Datenbank eintragen", 254, 408, 150, 25, $WS_GROUP) $Input1 = GUICtrlCreateInput("", 8, 410, 177, 21) $List1 = GUICtrlCreateList("", 8, 48, 209, 344) $List2 = GUICtrlCreateListView("Schlüssel|Wert", 224, 48, 217, 345) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### Global $verzeichniss, $verzeichnisse, $verzeichnisse2, $ini, $tick, $item ; Mysql Server bestimmen $USER = "test" $PASS = "wort" $DB = "ini" $oSQL = _MySQLConnect($USER, $PASS, $DB, $SERVER) $kom = "Hr. Mustermann" While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $Button1 einlesen() Case $msg = $Button2 sqlschreiben() Case $msg = $List1 wertesetzen() EndSelect WEnd Func sqlschreiben() Local $sTable = _SQL('INSERT INTO `projekte` (`BEARBEITER`, `PROJEKT`) VALUES ("Hr. Mustermann","TestProjekt")') EndFunc ;==>sqlschreiben Func sqllesen() local $sTable = _SQL('SELECT `PROJEKT` FROM `projekte` WHERE `BEARBEITER` = "'& $kom &'"') EndFunc ;==>sqllesen Func _SQL($SQLCode, $sDelimiter = '|') $Return = '' $TableContents = _Query($oSQL, $SQLCode) With $TableContents While Not .EOF For $i = 0 To .Fields.Count - 1 $Return &= $sDelimiter & .Fields($i).value Next .MoveNext WEnd $Return = StringTrimLeft($Return, 1) EndWith Return $Return EndFunc ;==>_SQL Func einlesen() $verzeichniss = FileOpenDialog("Datei wählen", "Y:\", "INI-Datei (*.ini)", 1 + 4) $verzeichnisse = StringSplit($verzeichniss, "|") $verzeichniss2 = StringTrimLeft($verzeichniss, StringLen($verzeichnisse[1]) + 1) GUICtrlSetData($List1, $verzeichniss2) GUICtrlSetData($Input1, $verzeichnisse[1]) EndFunc ;==>einlesen Func wertesetzen() _GUICtrlListView_DeleteAllItems($List2) $klick = GUICtrlRead($List1) If $verzeichnisse[0] = 1 Then $ini = IniReadSection($verzeichnisse[1], "STRIEBELPROJ") For $s = 1 To $ini[0][0] GUICtrlCreateListViewItem($ini[$s][0] & '|' & $ini[$s][1], $List2) Next Else $ini = IniReadSection($verzeichnisse[1] & '/' & $klick, "STRIEBELPROJ") For $s = 1 To $ini[0][0] GUICtrlCreateListViewItem($ini[$s][0] & '|' & $ini[$s][1], $List2) Next EndIf EndFunc ;==>wertesetzen