Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
к примеру поиск окна блокнота Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. у меня постоянно выводит 0 и 000000 во втором случае Как сделать так чтобы заработало, в инете не могу найти рабочий пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 00:16 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom, Вы передаете неюникодную строку в функцию принимающую юникодную, и при этом еще и принудительное приведение типа делаете (где вы такой ерунде научились?) Передавайте то что описано в доке по функции, а не выдумывайте. Например так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 00:31 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
tromу меня постоянно выводит 0 и 000000 во втором случае Что неудивительно, поскольку ты пихаешь char туда, где нужен wide char. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 00:34 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Код: plaintext 1. 2. Работает только когда пишу полностью все имя окна А к примеру "Блокнот" это часть имени окна и поиск опять возвращает 0 Как найти окно по неполному имени ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 00:45 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom, Откуда мне знать, я вам ответил почему ваш код не работал. А как искать окна - я вообще не в курсе :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 00:52 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
tromКак найти окно по неполному имени ? EnumWindows() и сравнивай заголовки как в голову взбредёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 00:59 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А можно пример кода как найти окно по части его заголовка с помощью EnumWindows(). В примерах из инета такая каша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 01:11 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom, да никак, все окна обходить, получать заголовок, и смотреть, что он начинается на нужное слово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 01:50 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
MasterZiv, это и так понятно, я рабочий пример хочу увидеть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 02:34 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
tromА можно пример кода как найти окно по части его заголовка с помощью EnumWindows(). Лови. Рабочий. Как ТОЧНО и БЕЗОШИБОЧНО узнать hwndTarget целевого окна? Ну, на C++ я думаю перепилишь. Но обрати внимание еще на это . Дмитрий77Как вариант... Добавить в целевое окно кнопку, сделать ей: Код: vbnet 1. 2. И искать перебором типа Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. Т.е. (если окно/прога что ты ищешь суть твоя) пихаешь в форму холостой невидимый контрол (child), но с уникальным текстом в заголовке и делаешь перепроверку по этому имени. Без этого у меня иногда "находил не то". Ну и с юникодом/не юникодом конечно аккуратней, ты уж определись используешь ли ты Юникод в своей проге или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 02:52 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Ясности вообще не добавилось к сожалению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 06:01 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom, Ты просил пример, я тебе дал алгоритм. 1) Вызываешь Код: plaintext 1. 2. 2) Пишешь ф-цию BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) { кот. будет вызвана для КАЖДОГО окна 3) Оцениваешь внутри EnumWindowsProc каждое окно через GetWindowText(hWnd) если это окно удовлетворяет твоим критериям, то возвращаешь False из EnumWindowsProc, при этом тек. значение hWnd сохраняешь в глобальной hWndTarget hWndTarget будет содержать нужное hwnd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 09:33 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
tromMasterZiv, это и так понятно, я рабочий пример хочу увидеть Э... а что там интересного-то ? Простой код на С/С++. Получил заголовок окна. GetWindowText. Проверил. strstr или strtok или скажем boost::regexp. и всё в цикле. Если ты сам не в состоянии такое написать, то как-то странно, что ты вообще "взялся за клавиатуру". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 12:40 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
MasterZivи всё в цикле.А цикл то там где? С BOOL CALLBACK EnumWindowsProc ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 17:37 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Эта функция будет вызываться в цикле, которого НЕ будет в твоей программе. Код: plaintext 1. 2. 3. в этой функции внутри будет цикл, в котором она будет вызывать твою BOOL CALLBACK EnumWindowsProc пока последняя не вернёт FALSE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 18:00 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
MasterZivв цикле, которого НЕ будет в твоей программе . Код: plaintext 1. 2. 3. в этой функции внутри будет цикл, в котором ... Ну, я то это понимаю, что внутри. Просто человек с таким вводом сейчас начнет писать СВОЙ цикл /мучительно думать как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 18:54 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. сделал так, в итоге прога вылетает с ошибкой что buff is being used without being initialized что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 12:50 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom, Ну наверно как-то так тебе надо: Код: plaintext 1. 2. len- вернет реальную длину полученной строки (до нулевого '\0' символа), соотв. тебе надо взять левую часть длиной len от твоего buff (плюс нулевой char -если он нужен). По C++ синтаксису строк пусть тебе местные спецы подсказывают, меня эта многообразная кухня бесит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 13:50 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom Код: plaintext 1. 2. сделал так, в итоге прога вылетает с ошибкой что buff is being used without being initialized что не так делаю? 0) Используешь отладочную версию программы. 1) не инициализируешь переменные. 2) не выделяешь память под буфер 3) возможно, занимаешься не той профессией ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 13:52 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, не len тут мне не поможет Вот так запускается и работает но выводит какой то мусор, а не заголовки окон Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 14:21 |
|
||
|
Как проверить существование окна по заголовку
|
|||
|---|---|---|---|
|
#18+
trom, попробуй напиши GetWindowText A (явно укажи на ANSI) вместо GetWindowText и замени TCHAR buff[260]; на char buff[260]; У тебя в буфере изначально 260 символов мусора. len как раз возвращает полезную длину: GetWindowText function Return value Type: int If the function succeeds, the return value is the length, in characters, of the copied string, not including the terminating null character. If the window has no title bar or text, if the title bar is empty, or if the window or control handle is invalid, the return value is zero. Ну и читай нудную документацию по всяким там char, TCHAR, LPTSTR и функциям преобразования с ними. В VB6 тебе бы было нужно Код: vbnet 1. В C+/- конечно без листинга кода конечно не обойдешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 14:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38536917&tid=2019746]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 301ms |
| total: | 470ms |

| 0 / 0 |
