Запуск UWP приложения
От: пффф  
Дата: 02.06.23 10:11
Оценка:
Привет!

Вопрос такой.
Есть IApplicationActivationManager interface — https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-iapplicationactivationmanager
Запускаю приложуху методом ActivateApplication — https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iapplicationactivationmanager-activateapplication
В опциях задаю AO_PRELAUNCH.
Получаю PID, вроде все хорошо, process explorer показывает приложуху в суспенде
Через тулхелп апи перечисляю потоки WhatsApp’а, делаю каждому ResumeThread — отрабатывает успешно
НО — приложуха не появляется, а через 5-10 сек пропадает в process explorer’е
Есть идеи?
Re: Запуск UWP приложения
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 02.06.23 11:17
Оценка:
Здравствуйте, пффф, Вы писали:

П>Есть идеи?

Я так понимаю, вы пытаетесь в ручном режиме сгенерировать поведение в prelaunch режиме?
Т.е. запустить в Prelaunch, а потом руками разбудить все потоки. Боюсь, что так оно просто не работает.

На сколько я понял из описания, из prelaunch в активное приложение переходит, когда пользователь повторно его запускает. И в этот момент оно может делать кучу вещей.
Вы не пробовали сэмулировать такое поведение? Т.е. запустить с сначала в prelaunch, а потом вызывать ActivateApplication без этого флага?
Re[2]: Запуск UWP приложения
От: пффф  
Дата: 02.06.23 11:34
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

П>>Есть идеи?

МР>Я так понимаю, вы пытаетесь в ручном режиме сгенерировать поведение в prelaunch режиме?
МР>Т.е. запустить в Prelaunch, а потом руками разбудить все потоки. Боюсь, что так оно просто не работает.

Я хочу запустить процесс, инжектировать в него свою DLL до того, как там всё закрутится, и потом активизировать его. С обычным процессом работает CreateProcess с suspended опцией, всё замечательно работает. Хочу от UWP приложения добиться такого же


МР>На сколько я понял из описания, из prelaunch в активное приложение переходит, когда пользователь повторно его запускает. И в этот момент оно может делать кучу вещей.

МР>Вы не пробовали сэмулировать такое поведение? Т.е. запустить с сначала в prelaunch, а потом вызывать ActivateApplication без этого флага?

Спс, надо попробовать
Re[2]: Запуск UWP приложения
От: пффф  
Дата: 02.06.23 17:15
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>Вы не пробовали сэмулировать такое поведение? Т.е. запустить с сначала в prelaunch, а потом вызывать ActivateApplication без этого флага?


Попробовал, да, работает. Правда, как я понял, даже в prelaunch там не замороженное приложение. Интересно, а есть ещё какой-нибудь способ пролезть в UWP приложение до старта его main'а
Re[3]: Запуск UWP приложения
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 04.06.23 09:36
Оценка:
Здравствуйте, пффф, Вы писали:

П>Попробовал, да, работает. Правда, как я понял, даже в prelaunch там не замороженное приложение. Интересно, а есть ещё какой-нибудь способ пролезть в UWP приложение до старта его main'а

Ну я бы предположил, что нужно смотреть на что-то из области отладки.
Т.е. что-то из области "запустить в режиме ожидания подключения отладчика" (ну или конкретно под "отладчиком", но который в реальности никакой отладкой заниматься не планирует).

Увы, тема не моя, поэтому какими-то реальными идеями тут поделиться не могу, только из области вот таких очень общих предположений.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.