我希望能夠告訴活動進程在理想情況下使用Windows命令行打開文件,但任何使用內置Windows(7+)功能(例如PowerShell或vbscript)的解決方案也可以使用。windows命令行:打開帶有活動進程的文件?
舉例來說,如果我有記事本的一個實例,開放並且知道它的ProcessID是1234,這將是巨大的,能夠做這樣的事情:
notepad.exe "myfile.txt" /pid=1234
,並記事本嘗試打開文件在現有進程的窗口中。
這可能嗎?
我希望能夠告訴活動進程在理想情況下使用Windows命令行打開文件,但任何使用內置Windows(7+)功能(例如PowerShell或vbscript)的解決方案也可以使用。windows命令行:打開帶有活動進程的文件?
舉例來說,如果我有記事本的一個實例,開放並且知道它的ProcessID是1234,這將是巨大的,能夠做這樣的事情:
notepad.exe "myfile.txt" /pid=1234
,並記事本嘗試打開文件在現有進程的窗口中。
這可能嗎?
您應該爲此使用Autohotkey。雖然這也可以在PowerShell中完成,但是在專門的工具中它更復雜。在AHK中,您可以模擬打開的文件(通常的快捷鍵Ctrl + O),然後AHK將識別對話框並在最後插入文件名和ENTER。這將處理一些標準化的應用程序,但您仍然需要根據具體情況處理一些不尋常的應用程序。
作爲一種適用於打開文件的所有應用程序的通用方法,這是不可能的。該程序必須暴露一些接口(如COM接口)或偵聽特定的Windows消息或網絡流量,並且您的控制器必須確切地知道要調用的方法或發送什麼消息才能觸發所需的行爲。
即使不運行進程,也不保證第一個comnand行參數將被解釋爲應該打開的文件的名稱。但是,在GUI之前的日子裏,沒有其他辦法可以讓用戶一直期待這一點。因此這被認爲是基本的行爲,任何面向文檔的應用程序都會支持它。情況並非如此,也會引發一些問題。使用多文檔界面,它可以工作。使用單個文檔UI ...可能不是一個好主意。當前文件是否應該丟棄?附加到?允許用戶保存是,保存否或取消?
對於記事本,沒有外部控制的程序(與IE,Word,Autocad等不同),您可以使用VBS的'wshshell.appactivate 1234'和'wshshell.sendkeys「%FO」&「filename.ext」'。這是做事情的一種方式。 –