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

Posted

技术标签:

【中文标题】如何在 Visual Studio (2008) 的特定实例中打开源文件【英文标题】:How to open source file in specific instance of Visual Studio (2008) 【发布时间】:2011-11-08 23:37:14 【问题描述】:

我打开了多个 Visual Studio 2008 实例,我想在特定实例中打开源文件。 我打算用 Win32 API 和 ShellExecute(...) 之类的东西来做这件事,但我还找不到解决方案。

有什么办法吗?有什么想法吗?

【问题讨论】:

将文件拖放到其中? (或以编程方式模仿它) 【参考方案1】:

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

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

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

【讨论】:

spy++ 应用程序可能有助于通过消息间谍来确定打开文件时处理了哪些消息【参考方案2】:

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

【讨论】:

以上是关于如何在 Visual Studio (2008) 的特定实例中打开源文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2008 或 Visual Studio 2010 中设置 JavaScript 断点

visual studio 2008如何引用dll

如何在visual studio2008中创建,编译和运行C++程序,

如何在 Visual Studio 2008 中自动删除尾随空格?

Visual Studio 2008 / C#:如何在项目中查找死代码?

如何在 Visual Studio 2008 中折叠选定的代码块?