Speicherpfad eines Programms auslesen und in ein bestimmtes Feld eines anderen Programms eintragen.... und dann noch weiteres...

  • Hallo Leute!
    Ich konnte schon einiges über die Editierfunktion aus anderen AutoIt Programmen, sowie aus den Funktionen-Beschreibungen hier im Forum und natürlich der Suchfunktion selbst lernen und für meine Zwecke verwenden.
    Nun stehe ich aber vor einem Problem als Neuling, wo ich nichts finde und irgendwie nicht so recht weiter weiß.

    Zum groben Verständnis: Ich bin User von Programmen, mit denen ich akustische Messungen an einem Prüfstand machen kann. Für das Starten aller Fenster, der Messung und der darauf folgenden Auswertung ist ein haufen "geklicke" nötig, um Windows-Explorer, sowie die vorkonfigurierte Mess-Software und die Auswertesoftware mit 2 parallelen Programmen zu starten. Meine Benutzeroberfläche für die Messung und Auswertung, verteilt auf 2 Monitore, habe ich jetzt schon per Batch geöffnet. Alles gut!
    Nun gehts um die Messung mit anschließender Auswertung... Und auch hier wieder allerhand "geklicke". :D
    Die drei Messdateien kann ich ebenso bereits mit einem Batch hintereinanderweg messen. Dazu muss allerdings vorher in der Mess-Software ein Dateiname vergeben werden und natürlich der Speicherordner festgelegt werden. Das mache ich noch bevor der "Mess-Batch" startet. Bis hier auch alles gut! Nun macht die Mess-Software automatisch ( ohne AutoIt) während des Aufnahmevorgangs (je 10 sec.) eine Verlinkung der drei Dateien in das Programm 1 der Auswertesoftware. Ab hier komme ich nicht weiter:

    Manuell würde nun folgendes kommen ( was ich auch gerne automatisieren möchte): Vorhanden ist das dreigeteilten Fenster von Programm 1 der Auswerte-Software. Links stehen die 3 gemessen Dateien (automatisch eingetragen), in der Mitte die Verarbeitungskette und rechts das Ziel. Hieraus entstehen 3 weitere Dateien, wenn ich denn die Auswertung mit Doppelklick auf "Ziel" starte. VORHER aber muss der Auswertesoftware noch der Speicher-Ordner genannt werden. Es ist immer der selbe Ordner, den ich vorher in der Mess-Software festgelegt habe. Die drei neuen Dateien sollen also immer im selben Ordner der drei alten Dateien abgelegt werden. Hierzu gibt es ein Feld, wo ich den Link direkt hineinkopieren kann ( oder per Button geht das Filesys. auf). Wie kann ich nun aus der Mess-Software den aktuellen Speicherordner für die Daten auslesen und in das bestimmte Feld der Auswerte-Software hineinkopieren. Gibt es dazu Funktionen in AutoIt?
    Ich könnte das natürlich per Recorder alles aufzeichnen, dann sieht man überall die Maus fliegen und es passiert auch was passieren soll... aber geht das nicht auch anders?
    Habe an dem mitinstallierten Example sysinfo.au3 versucht das ganze auf mein Thema abzuleiten... Aber ich komme damit nicht weiter...

    Vielleicht weiß jemand ja etwas... Wäre SUPER! :thumbup: Deshalb auch schonmal :klatschen: DANKE im voraus... :)


    Gruß Mario

    PS: Wenn das "Problem" gelöst wäre, müssen danach noch weitere "klicks" und "Drag&Drops" und Löschvorgänge gemacht werden.... aber soweit bin ich noch nicht... ;(

  • Schau Dir mal Autoit Window Info an - Wird mit Autoit instaliert....

    Wenn ich Dich richtig verstanden habe :

    Es ist immer der selbe Ordner, den ich vorher in der Mess-Software festgelegt habe. Die drei neuen Dateien sollen also immer im selben
    Ordner der drei alten Dateien abgelegt werden.

    Wenn Du den Ordner kennst - warum dann noch auslesen?


    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hallo!
    Erstmal danke für Euer Feedback. Nur schnell, bevor ich heute auf Dienstreise muss...

    Kanashius: das werde ich mir morgen mal anschauen. Danke für den Tipp!

    @Peter:
    Es ist nicht so einfach, das zu erklären...Ich versuch nochmal den "Klick"-Ablauf darzustellen ( was dann der Batch komplett machen soll): :)
    Und zu Deiner Frage: Den Ordner kennt erstmal NUR die MESS-Software... (hab ich ja per klick im Filesystem ausgewählt und einen Dateinamen für die erste Datei vergeben). Das mache ich manuell, soll auch so bleiben(eigentlich*). Ab hier soll dann der Batch übernehmen:
    Ich klicke den REC-Button und die erste Datei wird erzeugt (10sec Aufnahme) und im ausgewählten Pfad abgelegt. 2 weitere Dateien mit hochlaufender Numerierung folgen, jeweils mit erneutem klick auf den Rec-Button (das macht das Batch ja auch schon gut). Nun ist die Messung abgeschlossen. Gleichzeitig sind Links dieser 3 Messdateien zur Weiterverarbeitung in die AUSWERTE-Software automatisch eingelesen worden. Dann stehen die erstmal links im Programmfenster da so rum :D ... Erst wenn ich dann die Auswertung starte werden 3 NEUE Dateien erzeugt (aus den 3 ALTEN) und DIE muss ich in den selben Ordner bekommen! Die Auswertesoftware kennt aber den Pfad nur, wenn ich diesen in das Feld eintrage BEVOR ich die Auswertung starte.
    Man kann auch sagen: die Auswertesoftware kennt den Pfad wo die 3 Ausgangsdateien liegen ( mit dem Link) weiß aber erstmal nicht wo sie die 3 neu erzeugten Dateien hinspeichern soll...

    (*)Ich habe auch überlegt, wenn ich den Batch starte, quasi im Batch eine GUI zu öffnen, in die ich den Namen der Messdatei und den Ordner eingeben muss. Diese GUI trägt das dann in die Mess-Software ein und gleichzeitig auch in die Auswertesoftware... Aber da stoße ich an meine Grenzen.... ;(:)

    Danke
    Gruß Mario

  • Leg doch den Pfad einfach fest. Nix auswählen (eigentlich) Immer der gleiche Pfad, wenn du magst mit Unterordnern, die das tagesdatum ziert. Dann brauchst du auch keine Pfade auslesen, weil Du diese ja kennst - sofern das Hochzählen nicht so gemeint ist, dass immer weiter gezählt wird im Sinne von: 1te Messung = Nr 111 bis 113 2te Messung = 114 bis 116 usw. .

    Aber selbst dann kannst Du ja mitzählen :) also nix auslesen.

    Wenn es Dir nur darum geht, dass die Messwerte und Auswertungen beisammen bleiben - macht ein Ordner sinn der Datum Uhrzeit und sekunden im Dateinamen hat darin legst du die Auswertungen an, die einfach den Pfad mitbekommen den Du ja kennst (Uhrzeit in Variable schreiben damit ist diese auf die s. fix) und einen beliebigen Zähler. Es geht doch -nehme ich an gar nicht um reale Namen - sondern nur um einen Trick die Daten wieder zu finden und zusammenzuhalten?

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hallo Peter,
    doch es geht um reale Namen... Weil ich die Ordnerstruktur so aufgebaut habe ( das ist schon seit Jahren so...) um die Dateien für andere Dinge nochmals zu verwenden (Backup).
    Im Ordner Messungen gibt es den Ordner Kunden. In jedem Kundenordner gibt es verschiedene Unterordner die man Projekten zuordnet. In diesen Projekten sollen die Messungen gespeichert werden.
    Wenn nun der Messvorgang startet habe ich bereits im Messprogramm den Dateinamen "Version1_M.hdf" und den Ordner " ...\Messungen\Kunde_XY\Projekt_AB\" vergeben. Nun weiß das Messprogramm genau wo die Daten abgelegt werden sollen.Es entstehen dann die 3 Messdateien (Programm zählt selbstständig hoch):

    ...\Messungen\Kunde_XY\Projekt_AB\Version1_M.hdf
    ...\Messungen\Kunde_XY\Projekt_AB\Version1_M1.hdf
    ...\Messungen\Kunde_XY\Projekt_AB\Version1_M2.hdf

    (Es könnten auch später (oder gleich) noch weitere Ordnertiefen folgen (ergeben), wenn sich z.B. im Laufe der Entwicklung der Bauteile eine Abwandlung im selben Projekt ergibt und dort dann Unterordner entstehen müssen um sie auseinanderzuhalten. Wenn im selben Projekt verschiedene Datenstände gemessen werden sollen, erkenne ich das an verschiedenen Dateinamen, z.B. Version1_M.hdf, Version2_M.hdf, usw...)

    Nun hat ja, wie schon in meinem vorherigen Post erläutert, die Mess-Software die Dateien an den ersten Teil der Auswerte-Software geschickt. Es entstehen die Dateien:


    ...\Messungen\Kunde XY\Projekt AB\Version1_MW.TL1_Snn.hdf
    ...\Messungen\Kunde XY\Projekt AB\Version1_MW.TL2_Hn1.hdf
    ...\Messungen\Kunde XY\Projekt AB\Version1_MW.TL3_Hn2.hdf

    Dazu muss die Auswertung aber wissen, wohin sie speichern muss, nämlich nach " ...\Messungen\Kunde_XY\Projekt_AB\" . Das muss ich vor dem Start der Auswertung mitteilen. Deswegen will ich das gerne aus dem Messprogramm auslesen, dort habe ich es ja vorgegeben. Gleichsam würde ich diese Info gerne auch noch dafür verwenden, einen bereits geöffneten Windows-Explorer genau auf diesen Ordner springen zu lassen... automatisch...
    Das ist dann auch schon der nächste Schritt, denn daraus folgend muss ich genau diese 3 Dateien dann wieder in den zweiten Teil des Auswerteprogramms per Drag&Drop aus dem Explorer ziehen. Dort wird mit diesen 3 Dateien eine weitere Berechnung durchgeführt die dann als Endergebnis eine Excel-Datei ausgibt die folgend heißt:

    ...\Messungen\Kunde XY\Projekt AB\Version1_MW.TL1_Snn.TL.xlsx

    Die liegt dann im selben Ordner, das muss ich nicht explizit mitteilen.


    Nun ist die Berechnung fertig und es geht zum Explorer.

    Zu diesem Zeitpunkt gibt es nun im Ordner " ...\Messungen\Kunde_XY\Projekt_AB\" folgende Dateienansammlung:

    Version1_M.hdf
    Version1_M1.hdf
    Version1_M2.hdf
    Version1_MW.TL1_Snn.hdf
    Version1_MW.TL2_Hn1.hdf
    Version1_MW.TL3_Hn2.hdf
    Version1_MW.TL1_Snn.TL.xlsx

    Nun sollen nur noch 2 Dateien im Exporer übrig bleiben:

    Version1_M.hdf
    Version1_MW.TL1_Snn.TL.xlsx

    Der Rest kann gelöscht werden. Hiermit erziele ich eine Datenmengenreduzierung und ich kann mit der ".._M.hdf" erneute Auswertungen starten. Quasi als Backup... ja und die .xlsx-Datei ist für die Analyse. Den Umweg muss ich gehen,damit eben Projektleiter oder wer auch immer das anschauen möchte, nicht die spezielle Software braucht, sondern nur Excel...

    Ich bastel jetzt noch am Auslesen der Ordners rum... Komme stückweise weiter... Mühsam.. aber doch stetig... :)
    Ich melde mich wieder wenn ich Fragen habe.

    Danke
    Gruß Mario

  • Hallo Zusammen.
    Ich bin ein wenig weitergekommen:
    Auslesen des Verzeichnisses, übergeben an den Explorer. Somit sehe ich das richtige Verzeichnis und die Dateien die sich darin befinden.
    Wie kann ich ihm nun sagen, das er die Dateien nach dem Änderungsdatum (sortieren) anzeigen soll?

    Der Explorer ist aktiv
    WinActivate("[CLASS:CabinetWClass]", "")

    Dann habe ich über die AutoIt WindowsInfo herausgefunden, das wenn ich mit der Maus über den Reiter "Änderungsdatum" gehe, ich diese Werte finde.
    Gebe ich das hier ein

    ControlClick("[ACTIVE]", "", "[CLASS:DirectUIHWND; INSTANCE:3]","",2,520,11)


    und lasse die .au3 laufen, macht er das nicht...
    Was ist falsch? Oder gibt es einen anderen Befehl für das sortieren? Ich habe nichts gefunden...
    Danach müsste ich auch die ersten 3 Dateien markieren und an ein anderes Programm kopieren.... Das wäre die nächste Challenge...
    Hat jemand einen Tipp? Vielen Dank
    Mfg Mario