|
|
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
Спасибо, по UDP проходит:) Буду работать в этом направлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2016, 12:38:11 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
ПаWWWлОдАрЕцMaxwellion, А если в твоем приложении "которое нужно закрыть" повесить UDP/TCP клиента и открыть на прослушку "некий" порт, а из другого своего приложения ты будешь посылать команду на этот порт и твое первое приложение ее получит и сделает то что ты от него просишь. Это небольшая производная метода предложенного wadman'ом в 19205771 С той же целью можно еще использовать MailSlot: меньше кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2016, 13:40:30 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
Maxwellion, use mailslots. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2016, 06:10:26 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
Подскажите, каким образом можно завершить работу приложения (без убийства его процесса), если у него в настройках стоит галочка при закрытии сворачивать в трею? Снять галочку, не тот вариант. При отправке WM_CLOSE окно просто уходит в трею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 05:37:17 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
alex25ru, Можно попытаться окончить его цикл обработки сообщений. PostQuitMessage попробовать (оно WM_QUIT шлет). Не факт, что поможет. Это если из этого же потока, а если нет - то в лоб послать WM_QUIT нужному потоку. Вероятность, что сработает, еще меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 08:06:01 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
alex25ru, Приложение своё или чужое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 08:40:21 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
Приложение чужое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 09:20:14 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
На соообщение WM_SYSCOMMAND c параметром SC_CLOSE приложение уходит в трею. По WM_QUIT на msdn написано что, соообщение это нужно отправлять с помощью PostQuitMessage, но у него нету хэндла окна в качестве параметра. Через PostMessage кажется не срабатывает, проверяю пока через InqSoft WindowScanner. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 09:34:08 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
alex25ru, Можно попробовать отправить ему WM_QUERYENDSESSION и после него сразу WM_ENDSESSION , т.е. изобразить для него завершение работы системы. Если оно написано не через одно место, то оно должно завершиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 09:46:25 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
alex25ruПо WM_QUIT на msdn написано что, соообщение это нужно отправлять с помощью PostQuitMessage, но у него нету хэндла окна в качестве параметра. При чем тут окно. Это сообщение потоку, чтобы он свой цикл обработки сообщений потушил, оно никакому окну не идет. Попробуй в лоб, я ж говорю. Т.е. через PostThreadMessage. Для этого тебе ThreadId понадобится "того" потока. Это будет поток в процессе, который можно получить по GetWindowThreadProcessId. Затем, с помощью этого PID, находишь все потоки процесса через CreateToolhelp32Snapshot и Thread32First/Next, и для каждого потока делаешь EnumThreadWindows, пока не найдешь свое искомое окно. Если нашел - значит именно этому потоку надо цикл обработки сообщений завершить. Ему и шли WM_QUIT. Может сработать, хотя вероятность этого мала, и проверять мне, конечно же, лень. Тем более, что сама задача - "Закрыть чужое приложение" - ставит под сомнение вообще её пользу (задачи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 11:15:11 |
|
||
|
Как программно закрыть приложение?
|
|||
|---|---|---|---|
|
#18+
YuRockДля этого тебе ThreadId понадобится "того" потока. Это будет поток в процессе, который можно получить по GetWindowThreadProcessId. Затем, с помощью этого PID, находишь все потоки процесса через CreateToolhelp32Snapshot и Thread32First/Next, и для каждого потока делаешь EnumThreadWindows, пока не найдешь свое искомое окно. Если нашел - значит именно этому потоку надо цикл обработки сообщений завершить. Ему и шли WM_QUIT. Может сработать, хотя вероятность этого мала, и проверять мне, конечно же, лень. Тем более, что сама задача - "Закрыть чужое приложение" - ставит под сомнение вообще её пользу (задачи). Серое - зачем, если GetWindowThreadProcessId возвращает ThreadId указанного окна?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2017, 12:20:01 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2041895]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 295ms |

| 0 / 0 |
