Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Здравствуйте . У меня возникла такая проблема: нужна разработать две программы , одна с которых получает перечень всех заголовков окон в системе и передаёт его второй программе. Не могу разобраться , как это сделать . Это как лучше реализовывать - через консоль и формы ? Прочитал о функции EnumWindows(), которая перечисляет все окна верхнего уровня на экране, передавая дескриптор каждого окна, в свою очередь, в определяемую программой функцию повторного вызова. Не могу понять , как получить список заголовок окон . На просторах интернета нашёл такой пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вроде понял , как он работает , но почему выводятся числа , а не названия окон ? как это исправить ? и что делать дальше , после того , как я узнал эти названия ? какую функцию использовать для передачи этих названий окон в другую программу? Помогите , пожалуйста . Заранее огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 14:33 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7Вроде понял , как он работает , но почему выводятся числа , а не названия окон ? Потому что handle окна это число. Заговолок окна можно получить послав ему сообщение WM_GETTEXT. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 14:38 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7но почему выводятся числа , а не названия окон ? как это исправить ? потому, что возвращаются хэндлы окон. http://msdn.microsoft.com/en-us/library/windows/desktop/ms633520(v=vs.85).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 14:39 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, спасибо , я уже понял , почему числа выводятся , но как же сделать так , чтобы выводились названия окон? На счёт WM_GETTEXT - мне же не нужен отдельный заголовок , нужно , чтобы выводились все заголовки , в этом случает WM_GETTEXT наверное нельзя использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 14:54 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7На счёт WM_GETTEXT - мне же не нужен отдельный заголовок , нужно , чтобы выводились все заголовки "Все заголовки" это совокупность "отдельных заголовков", полученная один за другим. PS: Кстати, вместо WM_GETTEXT в ряде случаев можно использовать функцию GetWindowText(). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 14:57 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а вообще ж используется EnumWindows() ? Я вообще не могу сообразить , как это должно выглядеть - передача этих чисел в другую программу. Нужно делать 2 программы или как ? Какую функцию лучше использовать для передачи значений ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:05 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7Я вообще не могу сообразить , как это должно выглядеть - передача этих чисел в другую программу. Судя по формулировке задачи - первая программа получает заголовки(текст) и передаёт другой программе Сначала получите тексты, следующим шагом будет запуск второй программы (процесса) и передача ей текста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:11 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Прочитал про сообщение WM_COPYDATA для него нужно заполнить структуру COPYDATASTRUCT, в которой находится ссылка на передаваемые данные. Абсолютно не понимаю, как заполнить эту струтктуру , чтобы записать туда хендлы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:12 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Изопропил, это нужно делать в win32 project ? допустип , я получил тексты ( пусть уже будут хотя бы числа "хендлы") , как это оформить в WinApi? с консолью то понятно , а вот чтобы в окне это всё было - не совсем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:15 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
У меня есть проект , который просто выводит пустое окно Как туда поместить этот код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Не пойму , где и что должно распологаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:17 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7У меня есть проект , который просто выводит пустое окно в пустом окне создать listbox, далее - заполнить его, посылая ему сообщения LB_ADDSTRING ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 16:19 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Изопропил, спасибо за подсказку Пока вот только до этого дошёл: Код: 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. 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. Но вывести почему-то не получается , пишет , что :error C2440: 'initializing' : cannot convert from 'const char [2]' to 'LPTSTR' не знаю уже , что и делать пробовал и без 'LPTSTR' - тоже не получается Помогите , пожалуйста , с этой проблемой , не знаю, как быть дальше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 18:40 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7, проблема кроется вот в этой строчке : Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 18:42 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7 Код: sql 1. Это должны быть массивы, а не просто указатели. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 18:46 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7 Код: plaintext 1. 2. 3. исправить грубые ошибки для начала здесь. потом дело дойдёт до создания и наполнения листбокса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 18:49 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Изопропил,массивы значит.. вот так что-ли : Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:00 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7, уже лучше - но почему у массивов - размер 20, а функциям говорится, что 255? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:06 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Изопропил, ну да,что-то я ступил) ну да , 255 там , как максимальное число символов теперь при запуске выводятся какие-то непонятные буквы в список , и через раз запускается ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:12 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7, и как дальше этот список передать в другую программу ? это нужно отдельно создавать проект для другой проги , в которую буду передавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:24 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7и как дальше этот список передать в другую программу ? Сначала надо узнать как эта "другая программа" согласна его получать. Если она его никак не ждёт, то как ни пихай - толку не будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:38 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7теперь при запуске выводятся какие-то непонятные буквы в список программа юникодная, а какого то хрена используется SendMessageA не пиши явно суффикс A или W для символьного типа используй TCHAR (вместо явного выбора char или wchar_t) ещё мелкий бак в последнем параметре (LPARAM) а не (WPARAM) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:45 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Изопропил,мне нужно именно через SendMessage да, я читал про WM_COPYDATA , но немного запутался с обработкой этого сообщения вот код программы- отправителя : Код: 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. 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. вот код программы- получителя: Код: 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. 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. в программе- получителе я запутался , как обрабатывать сообщение Код: plaintext 1. 2. 3. 4. 5. как заполнить список? Помогите, пожалуйста , я не знаю, что дальше нужно делать уже . Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 12:03 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
NNN7, 1-е приложение ничего не выводит на экран, только заполняет перечень заголовков окон в памяти и передаёт его посредством WM_COPYDATA во второе приложение. 2-е приложение получивши сообщение WM_COPYDATA выделяет из него строки и выводит в листбокс ну возможно первое приложение должно запустить второе, дождаться появления у него окна и затем выполнить передачу данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 12:16 |
|
||
|
Функция EnumWindows()
|
|||
|---|---|---|---|
|
#18+
Изопропил,ну хорошо , чтобы 1-е не выводило ничего - убрал WM_CREATE у меня проблема в другом , не пойму , правильно я передаю информацию, заполняю структуру Код: plaintext 1. 2. 3. 4. ругается на IpData вот это вроде правильно , находит программу- получателя Код: plaintext 1. я просто никогда с таким не сталкивался , сложновато как-то) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 12:40 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38593672&tid=2019589]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
84ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 319ms |
| total: | 501ms |

| 0 / 0 |
