У меня есть следующий сценарий:
Мое приложение получает некоторые данные из командной строки.
После первого запуска мое приложение всегда запускает один экземпляр, и этот экземпляр будет находиться в памяти до тех пор, пока использование явно не скажет ему завершить работу, вместо того, чтобы просто скрывать форму, когда она не нужна.
Когда пользователь пытается запустить приложение во второй раз, процесс запускается, проверяет, есть ли еще одно в памяти, и если это правда, он отправляет сообщение WM_COPYDATA процессу в памяти с данными, полученными из командная строка и выходы.
Это хорошо работает, когда пользователь запускает приложение.
Мне нужно было запустить его с панели инструментов Microsoft Word 2003, поэтому я использовал для этого «Надстройку». Проблема в том, что когда мое приложение запускается из этой надстройки (с использованием класса Process), кажется, что процесс, уже находящийся в памяти, получает сообщение WM_ACTIVATEAPP вместо сообщения WM_COPYDATA, поэтому я не могу получить необходимые данные, отправленные из процесс запущен надстройкой.
Понятия не имею, почему это происходит и как это исправить. Я часами гуглил и ничего не помогало ...
Может кто-нибудь помочь?