Automatische Einstellung einer Umgebungsvariablen vor dem Aufrufen der GUI-App

0

Ich habe eine Windows-GUI-App, z. B. prog.exe, die sich in einem Ordner im Systempfad befindet. Die App gehört nicht mir und ich habe nur Binärdateien, daher kann ich das Programm nicht ändern.

Ich habe einen Dateityp, z. B. * .typ, den ich mit prog.exe verknüpfe.

Eine bestimmte Datei, z. B. tst.typ, befindet sich in einem Ordner, z. B. C: \ tst. Der vollständige Pfad lautet also C: \ tst \ tst.typ.

Als nächstes öffne ich im Windows Explorer den Ordner C: \ tst und doppelklicke auf tst.typ. Wenn ich das tue, öffnet sich prog erfolgreich.

Allerdings nimmt prog keine Argumente an, sodass prog zwar ordnungsgemäß geöffnet wird, jedoch nicht weiß, dass es aus dem Arbeitsverzeichnis C: \ tst oder aus der Datei C: \ tst \ tst.typ aufgerufen wurde.

Beim Start überprüft prog jedoch eine Umgebungsvariable, z. B. PROG_VAR.

Hier ist , was würde ich mag passieren , wenn ich einen Doppelklick auf tst.typ aus dem Ordner C: \ tst:

  • Die Umgebungsvariable PROG_VAR wird auf C: \ tst \ tst.typ gesetzt.
  • Dann wird prog.exe aufgerufen (mit der aktualisierten Umgebung).

Ein Ansatz besteht darin, die Zuordnung von * .typ so zu ändern, dass sie mit einer Stapeldatei, z. B. prog.bat, geöffnet wird. Dann kann prog.bat die Umgebungsvariable PROG_VAR korrekt setzen und prog.exe aufrufen. Das Problem bei diesem Ansatz ist, dass auch ein Befehlsfenster angezeigt wird, und das möchte ich nicht. Ich möchte nur das GUI-Fenster von prog.exe sehen.

Wie kann dieses Ziel erreicht werden?

Danke im Voraus.

Lowpoweruser
quelle

Antworten:

0

Verwenden Sie Ihre Batch-Datei und erstellen Sie eine Verknüpfung ( .lnk) mit dem Fenstertyp "versteckt". Stellen Sie nun diese Verknüpfung als Handler für den Dateityp ein .typ.

Der Punkt ist, dass der Fensterstil "versteckt" nur auf das ursprüngliche Fenster (die Batch-Datei) angewendet wird, aber keine weiteren geöffneten Fenster (dh das GUI-Fenster).

Eugen Rieck
quelle
Cool! Ich werde es versuchen . . .
Lowpoweruser
Windows lässt mich keinen Dateityp mit einer Verknüpfung verknüpfen. Ich kann * .typ mit prog.bat oder einer exe-Datei verknüpfen, aber wenn ich eine Batch-Datei verwende, wird ein cmd-Fenster angezeigt.
Lowpoweruser
Wenn ich versuche, * .typ einer Desktop-Verknüpfung zu prog.bat zuzuordnen, wird die Fehlermeldung "tst.typ ist keine gültige Win32-Anwendung" angezeigt. Ich verwende Windows XP Pro SP3.
Lowpoweruser
OK, ich habe nicht an Windows 98 oder XP gedacht - sorry, ich habe seine Arbeit an Win 7 gesehen.
Eugen Rieck
Kein Problem, es ist gut zu wissen, dass es unter Windows 7 funktionieren würde. Ich werde irgendwann ein Upgrade durchführen !
Lowpoweruser
0

Öffnen Sie regedit.exe. Suchen Sie den Schlüssel für die Befehlszeilenzeichenfolge ".typ association", der wie folgt aussieht

c:\somefolder\prog.exe "%1"

Aktualisiere es mit

cmd /c set PROG_VAR="%1" && c:\somefolder\prog.exe "%1"

Es soll genug sein.

Akina
quelle
Dadurch wird die Befehlszeilenkonsole für einige Momente angezeigt.
Eugen Rieck
Was nicht ideal ist, aber ich denke, ich kann damit leben, wenn nichts anderes funktioniert.
Lowpoweruser
Natürlich ... Aber ich denke, es ist kein kritisches Problem.
Akina
Nun, das Flackern wäre ein störender Nebeneffekt, daher ist eine optimale Lösung eine, die dies vermeidet.
Lowpoweruser