Из своей программы (C++ Builder 6) с помощью компонента TWordApplication создаю новый экземпляр MS Word:
WordApplication1->ConnectKind = ckNewInstance;
WordApplication1->Connect();
WordApplication1->set_Visible(1);
Мне нужно, чтобы пользователь мог работать с созданным мною экземпляром Word – создавать новые документы, открывать уже существующие и т.д. НО если пользователь выберет Пуск-Программы-Microsoft Office Word или же дважды клацнет на каком-либо документе, то новый документ или же открываемый документ должны создаваться не в моем экземпляре Word, а в новом экземпляре. Т.е. я хочу, чтобы документы в созданном мной экземпляре могли создаваться либо программно, либо же через нажатие на кнопки или пункты меню в ЭТОМ экземпляре Word. Чтобы других способов появления документов в созданном мною Word'е не было.
На сколько я понимаю, при запуске Word из Пуска или при клацаньи на документе Word идет проверка, запущен ли уже процесс WINWORD.EXE и если запущен, то новый процесс не создается, а документ открывается в запущенном процессе. Исходя из этого, я предполагаю, что если каким-либо образом переименовать созданный мною процесс, то он не будет распознаваться системой и для новых документов будет создан новый экземпляр Word. Надеюсь, конечно, что переименование не помешает нормальной работе моего Word.
Как вы думаете, на сколько реально то, что я здесь написал и как можно переименовать процесс (сделать его неузнаваемым как WINWORD.EXE для системы)?
Ответить
|