如何在Visual Studio的特定实例中打开源文件(2008)

我打开了几个Visual Studio 2008实例,我想在特定实例中打开源文件。 我打算用Win32 API和 ShellExecute(...)这样做,但我还没找到解决方案。

有没有办法这样做?有什么想法吗?

2
额外 编辑
意见: 3
将文件拖放到其中? (或以编程方式模仿它)
额外 作者 ssube,

2 答案

除非打开文件的应用程序(VS2008)设置了一个消息处理程序来启动打开文件(不确定它是否存在;这将是最简单的方法),您可以模拟文件的拖放操作到应用程序的客户区(通过消息直接发送到客户端窗口的消息处理程序)。您需要获取VS2008的客户端窗口的句柄,以用于您要将消息发送到的实例。

不过,不知道目的是什么。您通常可以使用ShellExecute()调用新实例来打开文件,但这不会引用已在运行的特定实例。

您可能考虑的另一种方法是为主窗口挂钩VS2008的消息处理程序,并记录与菜单命令相关的所有消息。您可能能够确定是否存在与打开文件相关联的消息事件。找出发送到WndProc()函数的参数将是另一个故事。希望它将作为字符串指针(对于文件名)发送到lParam。

1
额外
间谍++应用程序可能对消息间谍有帮助,以确定在打开文件时处理哪些消息
额外 作者 William the Coderer,

您可以尝试使用 AutoHotKey 。它有一个内置的脚本语言,并有各种替代方法来识别将消息发送到哪个应用程序。

0
额外