Как открыть исходный файл в конкретном экземпляре Visual Studio (2008) - PullRequest
2 голосов
/ 09 ноября 2011

У меня открыто несколько экземпляров Visual Studio 2008, и я хочу открыть исходный файл в конкретном экземпляре.Я планирую сделать это с Win32 API и чем-то вроде ShellExecute(...), но пока не могу найти решение.

Есть ли способ сделать это?Есть мысли?

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Если приложение, открывающее файл (VS2008), не имеет обработчика сообщений, настроенного для инициирования открытия файла (не уверен, если это так или нет; это будет самый простой способ), вы, вероятно, можете смоделировать перетаскивание файла в клиентскую область приложения (через отправку сообщения непосредственно в обработчик сообщений окна клиента). Вам необходимо получить дескриптор окна клиента VS2008 для экземпляра, которому вы отправляете сообщение.

Не знаю, какова будет цель, хотя. Как правило, вы можете вызвать новый экземпляр, чтобы открыть файл, используя ShellExecute (), но это не относится к конкретному экземпляру, который уже запущен.

Другой способ, который вы могли бы рассмотреть, - это подключить обработчик сообщений VS2008 к главному окну и записывать все отправленные сообщения, относящиеся к командам меню. Возможно, вы сможете определить, существует ли событие сообщения, связанное с открытием файла. Выяснение параметров, отправленных в функцию WndProc (), было бы другой историей. Надеюсь, он будет отправлен в виде строкового указателя (для имени файла) в lParam.

0 голосов
/ 15 ноября 2011

Вы можете попробовать использовать AutoHotKey .Он имеет встроенный язык сценариев и имеет различные альтернативные способы определения, в какое приложение отправлять свои сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...