Script zum auto öffnen von Dateien mit "if" Bedingung

  • Sers,

    ich bin derzeit am einrichten einer neuen 3D Messmaschine und ich bräuchte mal eure Hilfe.

    Ich stelle mir folgendes Szenario vor:

    - Der Arbeiter kommt an die Maschine und legt sein Teil auf zum vermessen.

    - Nun muss er das passende Programm dazu in der Steuerung aufrufen, mit vielen Klicks und öffnen von Ordnern

    Mein Plan ist folgender:

    - Der Arbeiter klickt das script an und es startet eine Dialogbox

    - In dieser Dialogbox gibt er nun seine Teilenummer ein

    - Anhand dieser Teilenummer ruft das script bereits automatisch das passende Messprogramm auf

    - Und er muss nur noch auf start drücken

    Die Steuerung ist auf dem Rechner ein ganz normales Programm, das script allerdings müsste dann diese Messprogramme über diese Software öffnen.

    Alles was in der Dialogbox eingegeben wird sollte dann ein genauer Verweiß auf das jeweilige Programm sein, als eine art "if" Bedingung, und diese If Bedingungen müsste ich definiert in dieses Script natürlich hinterlegen können, damit eine Zuordnung stattfinden kann.

  • Kein wirkliches Problem.

    Zum grundsätzlichen Aufbau der hinterlegten Pfade schlage ich eine Ini-Datei vor mit z.B. folgender Struktur:

    Code
    [Pfade]
    12345="C:\Messprogramme\Bauteil1.abc"
    23456="C:\Messprogramme\Bauteil2.abc"
    34567="C:\Messprogramme\Bauteil3.abc"

    Dann brauchst du nur noch ein IniRead() und kannst anhand der eingegebenen ID den entsprechenden Pfad ermitteln.

    Durch die Auslagerung in eine ini-Datei brauchst du bei Pfadanpassungen auch nicht mehr dein Skript selbst anfassen sondern nur die ini-Datei.

  • Ok prinzipiell verstehe ich das und hab mir das auch so in etwa vorgestellt, aber ich sehe da noch ein Problem. Ich kann die Messprogramme net einfach über Windows öffnen, da windows net weiß was er damit machen soll. Daher muss das über die Software geöffnet werden.

  • Hallo Sascha,

    am besten du erstellst dir eine GUI mit einer Inputbox und den entsprechenden Button und rufst dein 3D Messprogramm danach mit dem Run Befehl auf.

    Hier mal ein Beispiel.

    Wenn du viele Teilenummern hast, liest ma am besten eine Datei in ein Array ein und fragt dieses dann ab.

    Bekommst du heraus, ob man dem Messprogramm parameter übergeben kann? Wenn das nicht geht, müsstest du dann dan Programm öffnen und die Bedienung per Control, Maus Befehle steuern.

    Gruß gmmg

    Einmal editiert, zuletzt von gmmg (19. Dezember 2017 um 10:26)

  • Entschuldige, so tief bin ich da nicht drin als ob ich das komplett selbst könnte ^^

    Wie würde dein Vorschlag aussehen wenn ich das Programm 1234 aufrufen will und der Pfad zu diesem Prgramm so aussieht C:\Zeiss_Programme\Programmierbereich\1234\inspection

    Und wie meinst du das mit dem Run Befehl?


    Also dem Messporgramm kann ich so keine Parameter übermitteln, diese brucht diesen öffne Befehl. Der Pfad zu steuerung wäre übrigens folgender C:\Program Files (x86)\Zeiss\CALYPSO 6.4\calypso.im

    Einmal editiert, zuletzt von Sascha123456 (19. Dezember 2017 um 10:30)

  • Nochmal für uns, du Öffnest aus dem Pfad "C:\Zeiss_Programme\Programmierbereich\1234\inspection" die Programm exe?

    Wie heißt die genaue Exe Datei die du öffnest?

    Öffnest du dann in diesem Programm, die calypso.im oder was wird gemacht?

  • Nochmal für uns, du Öffnest aus dem Pfad "C:\Zeiss_Programme\Programmierbereich\1234\inspection" die Programm exe?

    Wie heißt die genaue Exe Datei die du öffnest?

    Hallo Sascha123456 !

    Man öffnet über die Steuerung über dem pfad C:\Zeiss_Programme\Programmierbereich\1234\inspection diese inspection datei . Über windwos selsbt kann man diese gar nciht öffnen

    Beantworte doch bitte die Frage von gmmg !

    - Wie heißt die .exe-Datei ?

    - Kann man dieser .exe-Datei die Inspection-Datei z.B. als Parameter übergeben ?

    Zur Zeit ist das alles Kaffeesatzleserei :Glaskugel:

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Sry also die exe ist folgende C:\Program Files (x86)\Zeiss\CALYPSO 6.4\bin\vwnt.exe


    Aber ich weiß nicht genua was was mit Parameter übergeben gemeint ist

    Häufig kann man Programmen, wie im akt. Beispiel einer .exe-Datei, zusätzliche Werte (Parameter) übergeben.

    Das hängt aber von der Gestaltung des Programmes selbst ab (ggf. mal im Hause einen Experten fragen).

    Theoretisch könnte das so aussehen :

    C:\Program Files (x86)\Zeiss\CALYPSO 6.4\bin\vwnt.exe "calypso.im"

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Wie würde das als script aussehen ?

    Simples Beispiel :

    AutoIt
    Global $sFilename = @ScriptFullPath  ; voller Pfad des aktuellen Skriptes
    
    ; Dateiname als Parameter an Notepad übergeben :
    Run("notepad.exe " & $sFilename, '', @SW_MAXIMIZE )

    Ob die von Dir verwendete .exe-Datei eine Parameterübergabe vorsieht, kann ich nicht beurteilen.

    EDIT :

    Hmm ok, aber im grunde muss das skript ja eine datei über diese software öffnen. Wäre das dann diese Parameter übergabe?

    Ja !

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (19. Dezember 2017 um 11:47)

  • Ob das Programm offen ist, kann man vorher prüfen.

    Das gibt es die Funktion "ProcessExists" in Autoit. Das steht auch in der Hilfe gut beschrieben, mit Beispielen.

  • Vielleicht hab ich mich auch wen umstädnlich ausgedrückt, ich versuche es nochmal.

    Also:

    Ich klicke auf das script

    Nun soll die Dialogbox aufgehen

    Ich gebe dort die Nummer 1234 ein

    Deshalb soll er mir das Programm öffnen welches hier liegt C:\Zeiss_Programme\Programmierbereich\1234\inspection

    Gebe ich allerding die Nummer 756 ein

    Soll er mir dieses öffnen C:\Zeiss_Programme\Programmierbereich\756\inspection

    Allerdings kann man diese Inspection dateien nicht einfach über Windows öffnen sondern muss sie über die Software Calypso öffnen

    Diese Software ist bereits gestartet vorher, immer , muss also nciht geprüft werden ob sie denn offen ist

    Diese Exe von der Software müsste diese sein C:\Program Files (x86)\Zeiss\CALYPSO 6.4\bin\vwnt.exe

    Allerdings ist das nicht die einzige exe die startet mit der software, ich weiß also gerade nicht genau welche exe benötigt wird


    Entschuldigt wenn ich das nicht klar rüber bringe was ich grad brauch, alleridngs lkann ich keine Scripts schreiben

  • Und was ist wenn die software bereits offen ist? Würde er diese dann nochmal öffnen?

    Das kann ich leider nicht genau sagen, da ich die Software nicht kenne. Bei Standardprogrammen wie Excel, OpenOffice etc. wäre das einfach, da hier der Aufbau der Parameter bekannt ist.

    Es gibt verschiedene Szenarien, z.B. :

    - Es wird eine neue Instanz des Programmes gestartet

    - calypso.im wird als neuer Reiter innerhalb des bereits aktiven Programmes angezeigt

    - Es darf nur eine Instanz gestartet sein, und ein weiterer Start wird abgelehnt

    Gibt es bei Euch keinen Experten oder eine Dokumentation, die man befragen könnte ?

    Suche mal nach Stichworten wie :

    Kommandozeile , Kommandozeilenparameter, Parameterübergabe oder commandline.

    Du kannst ja auch einfach mal etwas herumprobieren ;).

    Run("C:\Program Files (x86)\Zeiss\CALYPSO 6.4\bin\vwnt.exe " & "C:\Program Files (x86)\Zeiss\CALYPSO 6.4\calypso.im", '', @SW_MAXIMIZE )

    oder

    Run("C:\Program Files (x86)\Zeiss\CALYPSO 6.4\bin\vwnt.exe " & "calypso.im", '', @SW_MAXIMIZE )

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hallo Sascha123456 !

    leider bin ich mir mit der exe nicht sicher welche das sein könnte die für den start des programmes verantwortlich ist, den da starten mehrere..

    Wenn ich '3D Messmaschine' und 'Zeiss\CALYPSO 6.4' lese, dann handelt es sich wohl nicht um eine 300 EUR Software ^^. In der Regel hat man für so etwas einen Wartungs-/Supportvertrag und einen Ansprechpartner.

    Frage doch bitte mal nach, ob man, und falls ja, welche, Datei wie starten kann. Anschließend dürfte es den Helfern hier wesentlich leichter fallen, dein Problem zu lösen.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Also hab nun mit dem Support dort gesprochen und mir wurde gesagt das eine Übermittlung von Parametern an die exe nicht möglich ist. Zudem meinten sie das ledeglich die Grafikexe und die Programmexe mit der Software gestartet wird und die Inspectiondatei (welche das Messprogramm behinhaltet) eigentlich nur eine txt ist welche die Software lesen kann und sie daher auch nur darüber aufrufbar ist.

    Schade muss ich sagen, mir hätte das sehr gefallen das jeweilige Programm über das Dialogfeld zu öffnen.