|
Запущена ли прога (окно или имя консольного .exe)? Закрыть все эти проги.
|
|||
---|---|---|---|
#18+
Я делаю поиск по заголовку окна. Вариант 1. Консольное приложение proga.exe (в заголовке будет комбинация "proga.exe") Вариант 2. Вхождение например слова "Мое приложение - журнал": все окна вида "Мое приложение - главное окно", "" Вот - Мое приложение" Как вариант можно еще для проверки проверять дочернее окно "Моя кнопка". (FindWindowEx) Вопрос, как это сделать через .Net? Я посмотрел в сторону Diagnostic.Process но что-то это не совсем то. Или дайте мне код если у кого есть надежный. Но прошу обратить внимание на то как я это делаю: EnumProc -поиск окна по вхождению заданного текста EndTask(TargetHwnd) + WM_CLOSE -"убийство". Причем код должен работать и для myconsole.exe и для "Мое приложение - мое окно" (WinForm т.е.) Собственно мой проверенный годами (из VB6) код: За час я его передрал на .Net -вроде все работает. И вот думаю - оставить, или врубаться в .Net-технологии? Оно по идее должно быть "меньше буков", но будет ли "оно" так же надежно? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2014, 22:16 |
|
Запущена ли прога (окно или имя консольного .exe)? Закрыть все эти проги.
|
|||
---|---|---|---|
#18+
Сварганил такой код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
Но он консоль с "proga.exe" не закрывает. Если только через oProc.Kill() На интересующую меня консоль повешен такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
И я не уверен что он с .Net-овским Kill() отработает. Апишное WM_CLOSE по окну консоли генерит CTRL_CLOSE_EVENT. А .Net бьет похоже по процессу а не по окну консоли, что не совсем одно и то же. Копаться неохота, поэтому разумней оставить апишный код. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2014, 00:51 |
|
Запущена ли прога (окно или имя консольного .exe)? Закрыть все эти проги.
|
|||
---|---|---|---|
#18+
Дмитрий77Я посмотрел в сторону Diagnostic.Process но что-то это не совсем то. И чем же он не устроил? Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2014, 06:05 |
|
Запущена ли прога (окно или имя консольного .exe)? Закрыть все эти проги.
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныИ чем же он не устроил? Код: c# 1. 2.
Блокнот фиг с ним. Знаешь, счас сделал тесты с моим консольным proga.exe. (неохота было, но поднапрягся, раскомментировал Beep-ы и дописал пару дебагов) Глянь выше на сишный код BOOL CtrlHandler. p.Kill(); -просто тупо терминейтит процесс(это не противоречит докам), CtrlHandler(код завершения) не выполняется. Плюс еще исключения словил (почему не разбирался), а оно мне надо? В принципе, p.CloseMainWindow() вызывает case CTRL_CLOSE_EVENT: -проверил и казалось бы достаточно. Но, есть одно жирное НО. p.CloseMainWindow() не закрывает консоль, если консоль запущена в режиме HIDE (проверил). А у меня как раз убиваемые проги запускаются в основном в HIDE. Мой апишный EndTask шлет WM_CLOSE==CTRL_CLOSE_EVENT в любом случае. Короче ну его в баню. API-шный код (первый пост) здесь лучше. И он проверенный. У меня ушел вчера час чтобы его переписать на .Net (ну ладно, каюсь, Delegate Function/Address Of как в .Net делается год назад долго искал, чтоб заработало). А мы сейчас будем 2 дня обсасывать Diagnostic.Process и прочие хрени, как это обычно бывает. Все, не хочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2014, 08:46 |
|
|
start [/forum/topic.php?desktop=1&fid=20&tid=1402118]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 249ms |
0 / 0 |