Windows命令行:用活动进程打开文件?

我想能够告诉一个活跃的进程在理想情况下使用Windows命令行来打开一个文件 – 但是任何使用内置的Windows(7+)function(例如PowerShell或VBScript)的解决scheme也可以。

例如,如果我有一个打开记事本的实例,并知道它的processid是1234,那么能够执行如下操作将是非常好的:

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

并记事本尝试打开窗口中的文件为现有的过程。

这可能吗?

你应该为此使用Autohotkey。 虽然这也可以在PowerShell中完成,但是在专门的工具中要复杂得多。 在AHK中你可以模拟打开的文件(通常的快捷键Ctrl + O),然后AHK会识别对话框并在最后插入文件名和ENTER。 这将处理一些标准化的应用程序,但你仍然需要处理一些不寻常的应用程序的个案基础。

作为一种通用的方式,适用于所有打开文件的应用程序,这是不可能的。 该程序将不得不公开一些接口(如COM接口)或听特定的Windows消息或网络流量,您的控制器将不得不知道要调用什么方法或发送什么消息来触发所需的行为。

即使不运行进程,也不保证第一个comn和line参数将被解释为应该打开的文件的名称。 但是,在GUI之前的日子里,没有别的办法,所以用户一直在期待这个很长一段时间。 因此这被认为是基本行为,任何面向文档的应用程序都将支持它。 情况并非如此,也会引发一些问题。 多文档用户界面,它可以工作。 使用单个文档UI …可能不是一个好主意。 现在的文件应该丢弃吗? 附加到? 允许用户保存是,保存否或取消?