Beiträge von Muecke_1982
-
-
Hallo zusammen,
ich versuche aktuell, mit Au3Info.exe die Sprache einer Herstellersoftware umzustellen. Dazu müsste ich ein paar Klicks im Menüband der Software automatisieren, aber irgendwie bekomme ich das nicht hin. 😔 Dachte das ist ein gute Übung da dieser ablauf bei den anderen dingen öfft ähnlich ist.
Kann es sein, dass ich einen Fehler im Vorgehen habe? Oder gibt es etwas Spezielles, das ich bei der Nutzung von Au3Info beachten muss?
Mein Bisheriger Code:Code
Alles anzeigen; ################################# ; Starten ; ################################# ; Pfade definieren Local $sProgramPath = "D:\Server\....\.....exe" Local $sWorkingDir = "D:\Server\....visual 2.0 540000311" ; Software starten mit Arbeitsverzeichnis If FileExists($sProgramPath) Then Run($sProgramPath, $sWorkingDir) Else MsgBox(16, "Fehler", "Die Datei '" & $sProgramPath & "' wurde nicht gefunden!") EndIf ; ################################# ; .... Sprache auf Deutsch ; ################################# ControlClick(".... V3.11 - Controller.Parameter.Konfiguration", "", "Afx:RibbonBar:790000:8:10003:101")Wo klicke ich?
Ich habe das Fadenkreuz auf die Sprache gesetzt und dann einen Screenshot gemacht:
Aber die Sprachauswahl funktioniert nicht, was mir sagt, dass der Klick nicht funktioniert hat. (das müssteein neues Fenster sein)
Wie kann ich im Menü etwas anklicken?
Gruß Mücke
-
Hallo miteinander,
Privat besitze ich ein Industriemessgerät, mit dem ich verschiedene Einstellungen testen möchte. Leider ist das in der Herstellersoftware mit vielen Klicks verbunden, was ich gerne durch ein Script vereinfachen würde.
Zusätzlich kann ich meine Tests, die ich aus der Herstellersoftware exportieren kann, dort nicht direkt visualisieren. Deshalb habe ich mir eine Excel-Datei erstellt, mit der ich zwei Dateien (Parameter.csv und Daten.csv) einlesen kann. Basierend darauf wird der Versuch in einem separaten Excel-Blatt erstellt – das funktioniert schon recht gut und mit nur einem Klick. 😊
Da ich vile Tests vor mir habe, wäre es wirklich hilfreich, einige Arbeitsschritte zuverlässig zu automatisieren.
Meine Fragen:
- Wie kann ich herausfinden, welche Befehle oder Funktionen hinter den Buttons der Herstellersoftware stehen, um diese per Skript auszulösen?
- Gibt es zuverlässige Möglichkeiten, Eingaben in die Textfelder der Software zu machen?
Software vorbereiten:
- Ich starte und bereite die Herstellersoftware vor. Die Software öffnet mehrere kleine Fenster, die sich nur innerhalb des Hauptsoftware-Fensters verschieben lassen (z. B. Controller.Parameter.Konfiguration, Controller.Parameter.Einstellungen und Controller).
- Parallel arbeite ich mit meiner Excel-Datei, in der ein Makro integriert ist
Vorgehen bei einem Versuch
- Eingabe der Parameter
- Fenster: Controller.Parameter.Konfiguration
Messimpulsdauer (Zahlenwert zwischen 1.7 und 3.0)
Maximale Messpausen (ein Zahlenwert zwischen 0 und 10)
Eventuell kann ich die Werte ja in ein Array oder in einer CSV Datei bereit stellen? - Fenster: Controller.Parameter.Einstellungen
Schweißtemperatur: (Zahlenwert zwischen 150 bis 500)
Eventuell kann ich die Werte ja in ein Array oder in einer CSV Datei bereit stellen?
- Fenster: Controller.Parameter.Konfiguration
- Export Parameter
- Menü band: Komunikation => Parameter => Exportiren
- Datei Speichern unter Fenster
Dateinamen: par.csv
Speicherort: Desktop
OK bestätigen - Neues Fenster (Meldung das Daten gespeichert wurden) mit OK bestätigen
- Alte Daten Löschen
- Menü band: Komunikation =>Aufzeichnung => Neu
- Neues Fenster mit NEIN bestätigen (abfrage ob die alten Daten gespeichert werden sollen)
Wenn es keine Daten gibt die gespeichert werden könnten kommt kein neues Fenster!
- Aufzeichnung Aktiviren
- Menü band: Komunikation => Betriebsart => Bust
- Jetzt muss ich von Hand den Test durchführen an der Anlage
- Aufzeichnung Exportiren
- Menü band: Komunikation => Betriebsart => Empfang
- Menü band: Komunikation => Aufzeichnung => ASCII-Export
- Datei Speichern unter Fenster
Dateinamen: d.csv
Speicherort: Desktop
OK bestätigen - Neues Fenster (Meldung das Daten gespeichert wurden) mit OK bestätigen
- Jetzt im Excel das Makro ausführen
Und dann das ganze von vorne 😊
Gruß Mücke -
Ok, danke für die Rückmeldung.
Im Moment kämpfe ich damit, wie ich das Programm AutoIT auf den Firmencomputer bekomme, solange ich das nicht geschafft habe, brauche ich nicht weiterzumachen.
-
Nein - nur Microsoft Word
Nur Word und VBA wäre genial, denn VBA-Code kann ich mir als reinen Text per Mail schicken und dann in ein WORD-Dokument einfügen
und Word gibt es ja schon 
Dann muss ich mir deine Lösung nochmal genau anschauen, denn zur Zeit bekomme ich die AutoIT Sachen garnicht ins Firmennetzwerk rein :-(.
-
Sorry Muecke_1982. Schön das du den Fehler gefunden hast. 🙂
Alles gut, ich bin schon sehr Heppy über diesen Code und das ich ihn zum Laufen bekommen habe.
Jetzt muss ich sehen, wie ich ihn auf den Firmenrechner bekomme. Per Mail geht das nicht
USB ist gesperrt, ... da muss ich mir noch ein paar Sachen überlegen. -
Muecke_1982 Wenn ich es richtig verstanden habe, dann kannst/darfst Du nichts auf dem Rechner installieren.
Ist Word darauf installiert? Wenn ja, dann schau Dir mal diese Lösung als Idee an: https://www.autoitscript.com/forum/topic/20…ulate-pdf-file/
Dort wird doch auch Xpdf zur Konvertierung verwendet?
-
Alles anzeigen
Global $sSourcePDF = "[Auszulesende PDF-Datei]"
Global $sResultFile = @DesktopDir & "\Result.txt" ; Ordner, in den deine Ergebnisse abgelegt werden. Hier der Desktop.
Global $sXPDF = "[Kompletter Pfad der pdftotext.exe]" ; Pfad der pdftotext.exe.
ConsoleWrite(_GetContent_PDF($sSourcePDF) & @CRLF)
Func _GetContent_PDF($sSourcePDF)Local $sText = _XPDF_ToText($sSourcePDF, $g_sResultFile)
If @error Then Exit MsgBox(0, "", "Fehler beim Lesen der PDF-Datei! (" & @error & ")" & @CRLF & "Skript wird abgebrochen.")
Local $sString = FileRead($g_sResultFile)
Return $sStringEndFunc ;==>_GetContent_PDF
Func _XPDF_ToText($sPDFFile, $sTXTFile, $sTXTPath = @ScriptDir, $iFirstPage = 1, $iLastPage = 0, $bLayout = True) ; https://www.autoitscript.com/forum/topic/16…comment=1166469
; #FUNCTION# ====================================================================================================================
; Name...........: _XPDF_ToText
; Description....: Converts a PDF file to plain text.
; Syntax.........: _XPDF_ToText ( "PDFFile" , "TxtFile" [ TxtPath[, FirstPage [, LastPage [, Layout ]]]] )
; Parameters.....: PDFFile - PDF Input File.
; TxtFile - Plain text fileneme to convert to
; TxtPath - Path to the txt file (default is @ScriptDir)
; FirstPage - First page to convert (default is 1)
; LastPage - Last page to convert (default is last page of the document)
; Layout - If true, maintains (as best as possible) the original physical layout of the text
; If false, the behavior is to 'undo' physical layout (columns, hyphenation, etc.)
; and output the text in reading order.
; Default is True
; Return values..: Success - 1
; Failure - 0, and sets @error to :
; 1 - PDF File not found
; 2 - Unable to find the external program
; ===============================================================================================================================
Local $sOptionsIf Not FileExists($sPDFFile) Then Return SetError(1, 0, 0)
If Not FileExists($sXPDF) Then Return SetError(2, 0, 0)If $iFirstPage <> 1 Then $sOptions &= " -f " & $iFirstPage
If $iLastPage <> 0 Then $sOptions &= " -l " & $iLastPage
If $bLayout = True Then $sOptions &= " -layout"Local $iReturn = ShellExecuteWait($sXPDF, $sOptions & ' "' & $sPDFFile & '" "' & $sTXTFile & '"', $sTXTPath, "", @SW_HIDE)
If $iReturn = 0 Then Return 1Return 0
EndFunc ;==>_XPDF_ToText
ich bekomme den Fehler:
Zitat>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" /ErrorStdOut "C:\Users\Muecke\Desktop\PDF_Lesen_Test\RUN\run.au3"
"C:\Users\Muecke\Desktop\PDF_Lesen_Test\RUN\run.au3" (13) : ==> Variable used without being declared.:
Local $sText = _XPDF_ToText($sSourcePDF, $g_sResultFile)
Local $sText = _XPDF_ToText($sSourcePDF, ^ ERROR
>Exit code: 1Ich bin mir nicht ganz sicher, was nicht deklariert ist und wie ich das lösen soll.
Zeile 13:
[EDIT]
habe den Fehler gefunden:
$g_sResultFile wird angegeben doch es sollte $sResultFile sein.
Das habe ich nun Korregirt und es hat mit einer PDF geklappt.
Das Teste ich nun in der Arbeit und schaue ob es da auch klappt, wenn ja dann kann ich weiter machen.
-
Alles anzeigen
Ich würde wie folgt vorgehen:
Command Line Tool von z.B. hier:
Download Xpdf and XpdfReader
Damit extrahiert man PDF zu Text. Das Textdile kannst Du dann mit Autoit durchsuchen, Pasagen abspeichern oder wieder in PDFs umwandeln...
Das ganze lässt sich via USB Stick realisieren...
Peter
Das klingt gut und bei Dir so einfach.
Würde das gerne mal bei mir auf dem Rechner ausprobieren.
1) Die Xpdf Kommandozeilen Tools herunterladen: Windows 32/64-bit (Win 7 und neuer) => C:\Users\Muecke\Desktop\PDF_Lesen_Test\
2) Zip-Datei: xpdf-tools-win-4.05.zip => C:\Users\Muecke\Desktop\PDF_Lesen_Test\xpdf-tools-win-4.05
Jetzt habe ich folgende Ordner Struktur:
C:\Users\Muecke\Desktop\PDF_Lesen_Test\...
...\xpdf-tools-win-4.05\
=> Alle möglichen Dateien und Verzeichnisse
...\PDF\ Beispiel.PDF
3) Datei verschoben (...\xpdf-tools-win-4.05/bin64/pdftotext.exe nach ...\PDF\ )
4) CMD unter Windows Start aufgerufen
5) cmd eingabe => cd Desktop\PDF_Lesen_Testen\PDF
6) cmd Eingabe => pdftotext Muster.pdf
Jetzt habe ich eine gleichnamige Textdatei mit dem Inhalt der PDF, das sieht auf den ersten Blick ganz gut aus.
Das möchte ich nun in AutoIT umsetzen.
1) Prüfen, ob 32 oder 64, da es dafür anscheinend unterschiedliche Dateien gibt.
2) Muster-PDF im gleichnamigen Ordner in Text umwandeln.
Aber wie macht man das mit AutoIT?
VG Mücke -
Hier im Bild Rot ist für mich interessant, Schwarz musste ich aus Datenschutzgründen entfernen.
GML: Das würde bedeuten, dass ein Programm auf dem Computer installieren muss, damit das später funktioniert? oder wie genau meinst du das?
Gibt es etwas, das in AutoIT schon vorhanden ist, das ich dafür verwenden kann?
VG Mücke
-
water: Ja SAP kann einiges, aber meine IT will/kann/hat keine Lust oder was auch immer, das geht nicht. Deswegen bekomme ich das nicht umgesetzt.
Ich bin in der Nahrungskette ganz unten, habe einen Vorgesetzten über mir, dann einen SAP-Admin, dann einen IT-Admin, dann einen SAP-Gesamtverantwortlichen und dann noch meinen SAP-Finanzbeauftragten.
Mein Vorgesetzter hält sich aus allem raus, mein SAP-Admin findet solche Automatisierungen doof, weil man sich nicht darauf verlassen kann, dass sie reibungslos funktionieren, so als würden wir beim Kopieren und Übertragen keine Fehler machen (was ich nicht lache).
Ich habe bei meinem Kunden versucht die Daten als CSV Export zu bekommen, der kann / will aber wenn er etwas macht dies für alle Lieferanten umsetzen, was bedeutet das dies erst durch ein Gremium muss, dann muss dafür eine neue Richtlinie und Leitfaden erstellt werden, der muss dann getestet werden und erst dann kann dies ausgerollt werden, mein Kunde hat mir signalisiert das dieser Aufwand für mich / uns nicht betrieben wird.
Also muss ich mir etwas anderes einfallen lassen, ich dachte zuerst an Excel, das ich so etwas per Makro lösen könnte, aber Excel hat keine Funktion um PDF's selbst lesen zu können, man braucht eine Drittsoftware, die ich nicht auf dem Rechner habe :-(.
Deshalb mein Ansatz mit AutoIT.
@Musashi: Meine Hoffnung ist, dass die ExE auf dem Firmenrechner lauffähig ist, ohne dass die IT involviert werden muss, wenn ich sie trotzdem involvieren müsste, um die Datei zum Kaufen zu bekommen, würde ich es mit einem aus der IT versuchen hinzubekommen, aber dann brauche ich die ganzen SAP (IT-Ler) nicht mehr ;-).
Bisher habe ich noch kein Beispielskript gefunden, so dass ich mit dem einen oder anderen PDF (vorerst auf dem heimischen PC) experimentieren kann.
Ich habe noch keinen Plan, wie ich das Script an sich aufbauen soll, ... und wie ich überhaupt anfange

ich dachte ja an so was in die Richtung.
1) lade PDF2) Suche nach "Lieferplannummer [TAB]"
3) gebe mir die folgenden 7 Zeichen aus
Nummer 2&3 muss ich dann endsprechend oft wiederholen.
VG Mücke
-
kommt drauf an....manche Programme sind in der Lage, PDF´s zu erzeugen,
Ja, ich kann im PDF mit LAT + Mauszeiger markieren und dann kann ich kopieren, leider wird die Tabellenstruktur nicht übernommen, daher muss ich immer zuerst die erste Spalte (Datum) und dann die 3. Spalte (Menge) kopieren und davon auch nicht mehr als 10 Stück untereinander, denn mehr Platz ist im SAP nicht vorhanden und alles was darüber hinausgeht wird abgeschnitten :-(.
Ansonsten testweise einzelne Blöcke im PDF markieren und kopieren.
Das klingt gut, aber wo fange ich am besten an, wie gehe ich vor?
Gibt es ein Beispiel, wie man eine PDF-Datei ohne ein zusätzliches Programm lesen kann?
DAS ist deine eigentliche Baustelle! Ja, es gibt eine portable AutoItversion, das Script muss auch keine "*.EXE" sein,
Ich dachte, dass das Skript in eine EXE gepackt wird, dann kann man es einfach auf dem Computer ausführen, ohne dass ich etwas installieren muss? oder wird nicht alles, was man braucht, von Auto IT in die EXE gepackt?
davon überzeugt werden kann, Scripte auf seiner Maschine auszuführen, die potenziell Schaden anrichten können....
Ich wollte sie nicht davon überzeugen, sondern lieber eine EDI-Verbindung mit dem Kunden aufbauen oder ein Tool von SAP kaufen, das solche PDF`s einlesen kann. Aber für die EDI-Verbindung habe ich den Eindruck, dass sich die IT zu wenig kümmert und das SAP-PDF-Lesetool für unsere Buchhaltung zu teuer ist :-(.
Daher möchte ich nun eine eigene Lösung erstellen, die nicht alles lahmlegt!!!
Wie man dann SAP automatisiert befüllt, ist wieder eine andere Baustelle.
Diesen Teil wollte ich gar nicht automatisieren, sondern dass alle PDF`s, die in einem Ordner sind, später mit den für mich relevanten Daten in einer Datei sind, so formatiert, wenn ich von dort etwas kopiere, dass es in SAP richtig erkannt wird.
Z.B. wenn bei den Einteilungen "Datum [TAB] [TAB] Menge" formatiert ist, muss ich nicht jede Spalte einzeln kopieren, sondern kann gleich 10 Zeilen auf einmal kopieren, das wäre schon eine Erleichterung.
Wenn mir dann pro Lieferplan auch gleich die noch offene Summe berechnet wird und immer zum 31.12. [nächstes Jahr] in die Liefereinteilungen geschrieben wird, wäre das auch noch mal eine Erleichterung.
Allein das würde mir schon eine Menge Arbeit abnehmen, ...
-
Hallo zusammen,
leider habe ich nach langem hin und her mit der EDV keine Lösung gefunden und bin etwas frustriert, deshalb möchte ich eure Hilfe in Anspruch nehmen.
Folgendes, ich bekomme jede Woche mehrere Lieferpläne aus einem SAP System als PDF per Mail zugeschickt.
Diese PDF`s muss ich aber jede Woche in mein SAP Systerm übernehmen. Ja das ist verrückt, aber die große Firma und unsere EDV bekommt das nicht hin, dass wir die Sachen elektronisch übernehmen.
Deshalb würde ich mich über eine kleine Hilfe freuen.
Was muss ich jede Woche machen?
1. Mail öffnen
2. alle Lieferpläne (PDF) auf den Server laden
3. Mails verschieben
Das ist noch recht einfach.
4. PDF öffnen
5. Lieferplan kopieren
6. SAP-Lieferplan mit Kunden-Lieferplannummer suchen (wurde gerade kopiert)
7. gefundener Lieferplan Öffnen
8. Lieferabruf öffnen
9. alle Einteilungen markieren & löschen
10. aus dem PDF die ersten 10 Termine markieren & kopieren
11. die soeben kopierten Termine in SAP kopieren
12. dann die entsprechenden Mengen (10 Stück) aus dem PDF kopieren
13. dann die Mengen in SAP einfügen und mit CR bestätigen
14. die Lieferabrufe nach unten scrollen (damit ich wieder mehr Platz habe)
15. die weiteren Termine kopieren (max. 10 Stück)
16. dann wieder in SAP einfügen
17. dann dasselbe mit der Menge machen.
Das mache ich so lange, bis ich alle Einteilungen übernommen habe.
Dann prüfe ich noch die Zielmenge und ob das Gelieferte mit den Einteilungen der Zielmenge übereinstimmt (muss im Kopf ausgerechnet werden, wird im SAP nicht zusammengezählt, im PDF sind die Zahlen schon vorhanden), da die Zielmenge größer ist als das Gelieferte und Eingeteilte zusammen, dann wird noch eine Position auf den 31.12. (Folgejahr) eingefügt.
Leider kann ich die Daten aus dem PDF nicht eins zu eins kopieren (Datum und Menge), da SAP die Spalten nicht erkennt.
Daher möchte ich, dass die PDF`s nacheinander alle ausgelesen werden, die in dem genannten Ordner sind und mir bestimmte Dinge in eine Excel- oder TXT-Datei geschrieben werden (Wichtig: Trennzeichen muss ein TAG sein, dann erkennt SAP das als Spalte.
Ich möchte aus den PDF`s die Daten
- Lieferplannummer
- Materialnummer
-Zielmenge
-Eingeteilte Menge
-gelieferte Menge
und lesen Sie die Einteilungen.
Die Einteilungen können sich über mehrere Seiten erstrecken.
Die PDF`s sind immer gleich aufgebaut.
So dass ich am Ende eine Excel oder TXT Datei habe, in der alle Lieferpläne so aufbereitet und formatiert sind, dass ich mich beim Kopieren in SAP leichter tue.
Meint ihr so etwas ist möglich und welchen Aufwand müsste ich dafür betreiben und wichtig ist das ich dafür nichts auf dem Firmenrechner installieren muss.
Gruß Mücke
-
...
oder: oh nein das wäre eine Veränderung: bloß nicht!
Oh ja, das tritt es sehr gut, was du sagst.
Ich arbeite in einem Unternehmen, in dem fast jeder Mitarbeiter schon sein 25-jähriges Dienstjubiläum an der Wand hängen hat. Und genau das, was du beschreibst, erlebe ich dort Tag für Tag bei den Kollegen, die neu dazugekommen sind, dass sie genau diesen Gegenwind spüren, und ich auch :-(. Ist manchmal wirklich frustrierend.
-
water: Das klingt wirklich schön, aber ich fürchte, ich habe die harte Lektion gelernt, dass ich in der Nahrungskette zu weit unten stehe, um meine Vorschläge ernsthaft gehört oder berücksichtigt zu sehen. Wenn die IT nicht von selbst auf die Idee gekommen ist, dann wird es schwer, sie zur Umsetzung zu bewegen. Es ist zwar mühsam, aber leider müssen wir der IT das Gefühl geben, dass es ihr eigenes Problem ist und dass sie von sich aus auf die Lösung gekommen ist. Auch wenn das viel Arbeit und Ressourcen kostet.
Deine Anerkennung für die IT-Abteilung finde ich allerdings sehr passend und lobenswert.
-
Hallo zusammen,
zunächst einmal vielen Dank für das Feedback.
Leider ist unsere IT sehr empfindlich auf alles was sie nicht selbst macht und vor allem nicht selbst auf die Idee gekommen ist.
Daher müssen wir leider viele Umwege gehen und machen manches sehr umständlich und allein, dass die Daten etwas aufbereitet kommen, wäre schon eine große Erleichterung für uns.
Mit Daten aufbereitet meine ich zum Beispiel, dass die ganzen Daten mit Tabs getrennt sind und ab so einer Tabellenstruktur, wenn dann die Spalten noch stimmen, dann kann ich mir einfach das was ich brauche kopieren und bei mir einfügen, damit es sich in unserem System richtig einträgt, dann muss ich nicht jeden einzelnen Liefertermin und die Menge und das Datum kopieren. Aber das wäre4 mit so einer CSV-Datei natürlich echt toll.
water: Da ich mich mit SAP nicht auskenne, werde ich das mal mit einem Kunden besprechen und schauen, ob die das können und wie ich damit umgehen kann.
Denn das wäre schon eine riesen Erleichterung, vielleicht bekomme ich dann auch die IT dazu, sich mit mir zusammenzusetzen und zu schauen, ob wir eine Lösung finden, das bei uns automatisch einzulesen.
Danke für das Feedback.
Ich werde weiter berichten, wenn das nicht funktioniert oder meine Kunden sich da querstellen, dann kann man die andere angesprochene Lösung ausprobieren.
Danke vorerst.
Gruß Mücke
-
Hallo zusammen,
ich bin mir unsicher, ob ich hier richtig bin und ob AutoIT meine Aufgabe gut und zuverlässig lösen kann.
Deshalb stelle ich hier unter "Hilfe und Unterstützung" meine Frage mit der Bitte zu prüfen, ob mein Vorhaben machbar ist und wenn ja, ob es auch zuverlässig machbar ist und in welchem Unterforum ich damit richtig bin.
Wir erhalten wöchentlich Lieferpläne von verschiedenen Kunden aus SAP-Systemen in PDF-Form. Diese müssen mühsam manuell an unsere im System hinterlegten Lieferpläne angepasst werden.
Da die SAP-Lieferpläne unserer Kunden alle ähnlich aufgebaut sind (wahrscheinlich verwenden sie alle das Standardlayout von SAP), dachte ich, dass man alle Lieferpläne als PDF in einem Ordner speichern und dann mit einem AutoIT-Programm durchlaufen lassen könnte, um die benötigten Daten bereits richtig formatiert in einer Textdatei zu speichern.
Dann müsste ich nur noch den Lieferplan in meinem System aufrufen und den entsprechenden Teil aus der Textdatei kopieren und in mein System einfügen (da er bereits richtig formatiert ist). Das würde mir jede Woche viel Arbeit abnehmen.
Ist das möglich, ohne dass ich zusätzliche Programme auf meinem Computer installieren muss?
Ich habe vor langer Zeit QBasic gelernt und ein wenig mit PHP und MySQL herumgespielt.
Gruß, Mücke