2016-05-20 3 views
3

Я бы хотел сказать активному процессу, чтобы открыть файл с использованием командной строки Windows в идеале - но также работает любое решение с использованием встроенных возможностей Windows (7+) (например, powershell или vbscript).Окно командной строки: открыть файл с активным процессом?

Например, если у меня есть экземпляр блокнота открытым и знать его ProcessID 1234, это было бы здорово, чтобы быть в состоянии сделать что-то вроде:

notepad.exe "myfile.txt" /pid=1234

и блокнота пытаются открыть файл в окне для существующего процесса.

Возможно ли это?

+0

Для Notepad, программы, которая не имеет внешнего управления (в отличие от IE, Word, Autocad и т. Д.) Вы можете использовать VBS 'wshshell.appactivate 1234' и' wshshell.sendkeys '% FO "&" filename.ext ". Это простой способ сделать что-то. –

ответ

0

Для этого следует использовать Autohotkey. Хотя это можно сделать и в PowerShell, это намного сложнее, чем в специализированном инструменте. В AHK вы должны моделировать открытый файл (обычная комбинация Ctrl + O), тогда AHK распознает диалог и введет имя файла и ENTER в конце. Это будет обрабатывать количество стандартизированных приложений, но вам все равно придется обрабатывать некоторые необычные приложения в каждом конкретном случае.

0

Как универсальный способ, который работает для всех приложений, которые открывают файлы, это невозможно. Программа должна будет выставить некоторый интерфейс (например, COM-интерфейс) или прослушать определенные сообщения Windows или сетевой трафик, и ваш контроллер должен будет точно знать, какой метод вызывать или какое сообщение отправить, чтобы вызвать желаемое поведение.

Даже для неработающих процессов не гарантируется, что первый аргумент строки comnand будет интерпретироваться как имя файла, который должен быть открыт. Однако в дни, предшествовавшие GUI, не было другого способа, чтобы пользователи ожидали этого в течение длительного времени. Следовательно, это считается основным поведением, и любое приложение, ориентированное на документ, будет поддерживать его. Это не относится к вашему сценарию, и это также вызовет некоторые проблемы. С интерфейсом нескольких документов он может работать. С единым документом UI ... наверное, не очень хорошая идея. Должен ли текущий документ быть отброшен? Добавлен? Разрешить пользователю сохранять да, сохранять или отменять?

Смежные вопросы