У меня есть приложение Windows GUI, скажем, prog.exe, которое находится в папке в системном пути. Приложение не мое, и все, что у меня есть, это двоичный файл, поэтому я не могу изменить программу.
У меня есть тип файла, скажем * .typ, который я ассоциирую с prog.exe.
Конкретный файл, скажем, tst.typ, находится в некоторой папке, скажем, C:\tst, поэтому полный путь - это C:\tst\tst.typ.
Затем в проводнике Windows я открываю папку C:\tst и дважды щелкаю tst.typ. Когда я это делаю, прога успешно открывается.
Однако prog не принимает аргументов, поэтому, хотя prog открывается правильно, он не знает, что он был вызван из рабочего каталога C:\tst или из файла C:\tst\tst.typ.
Но при запуске, прога проверяет переменную окружающую среду, скажу PROG_VAR.
Вот что я хотел бы, чтобы я дважды щелкнул tst.typ в папке C:\tst:
- Переменная среды PROG_VAR получает значение C:\tst\tst.typ.
- Затем вызывается prog.exe (с обновленной средой).
Один из подходов заключается в изменении ассоциации * .typ, чтобы он открывался с помощью пакетного файла, например, prog.bat. Затем prog.bat может правильно установить переменную среды PROG_VAR и вызвать prog.exe. Проблема с этим подходом заключается в том, что окно командной строки также будет отображаться, а я этого не хочу. Я только хочу видеть окно GUI от prog.exe.
Каковы некоторые способы достижения этой цели?
Заранее спасибо.