Программа, запущенная с process.start, не видит локальных файлов
Привет, ребята, у меня есть vb.net проблема, которая ставит меня в тупик. У меня есть компьютер с интерфейсом оператора, на котором работает программа, вызывающая другие программы, использующие этот процесс.Начало(anotherApp.exe) командование. Например, основная программа THEMCP.exe (мастер-Контрольная программа для всех, кто помнит трон) звонки ProgramA.exe который находится в подпапке where THEMCP.exe проживает. Все находится под ним C:\Program файлы...
ProgramA.exe читает два текстовых файла при запуске, и файлы содержат параметры, так что я могу использовать ProgramA.exe для нескольких применений в зависимости от содержания файлов. ProgramA.exe проверяет, присутствуют ли файлы, а затем читает их. Когда я бегу ProgramA.exe вручную, взяв на себя управление ПК и дважды щелкнув по экрану. ProgramA.exe в Проводнике Windows/файловом менеджере программа работает нормально, видит файлы параметров, и все хорошо. Когда я планирую ProgramA.exe использование процесса.Start() не удается найти файлы.
Является ли это проблемой разрешения windows или есть лучший способ запуска ProgramA.exe чем использование процессов.Start()? ProgramA.exe использует файл.Существует(имя файла), чтобы проверить, присутствуют ли файлы. Я не понимаю, почему он работает, когда запускается вручную, но он терпит неудачу, когда вызывается процессом.Начать. - Помочь?
Что я уже пробовал:
Я пробовал разные пути в файле " If.Exists()" безрезультатно. Независимо от того, что я использую - просто имя файла - полный путь с именем файла - приложение.StartupPath, он всегда работает нормально, если запускается вручную, но он терпит неудачу, если вызывается процессом.Начало().
Richard Deeming
Как вы создали эти файлы? Поскольку вы работаете в каталоге "Program Files", если программа, которая их создала, не была повышена и не имеет манифеста, они фактически не будут существовать в папке благодаря виртуализации UAC:
Я сохранил несколько файлов в каталоге Program Files, и теперь они исчезли! | Раймонд Чен[^]
Проверьте, находятся ли файлы в подкаталоге под %LOCALAPPDATA%\VirtualStore
.
kuratazen
Спасибо, что откликнулся, Ричард.
The files are simple text files created with Notepad. I copied them into the folder manually. They just contain one line of text with the paths where files will be copied from and to. Nothing overly complicated. I have to collect log files from multiple machines (each with their own PC) and figured this would be an easy way to do it. So as an example I currently have four folders for four machines - each has the same program (ProgramA.exe in this example) but the files have different paths in them - I'm just using the text files so I can re-use the program rather than making four duplicate programs with the paths hard coded. Maybe I need to add the folders to the system's Path statement or something like that?