Проблема следующая. Есть программка, которая меняет свойства окон. Ну так вот, я хотел-бы, что бы окно десктопа, трея и вообще все нижней строчки не менялось. Как отловить соответсвующие хеадеры.Сейчас сделано так, но не работет.
А нужно это чтобы прога не забота с этими окнами =) или я не правильно понял вопрос.
GDI>В этот момент ForegroundWindow может быть и не трей или десктоп, а, например, окно твоей программы!
Логично... А если перенести блок
HWND hWnd = ::GetForegroundWindow();
в начало, то будет получше. Спасибо за замечание.
Но тем не менее, все равно ничего не работет =) Может это быть багой MFC? (хотя вызывается вункция глобального пространства )
Just dream can be infinity.
ICQ:77405006
Re[2]: Помогите!! Очень надо!!! проблемы с получением HWND D
Hello, PavelVSokolov! Вы писали: P> Здравствуйте, GDI, Вы писали: P> Да, еще вопрос, для чего каждый раз берется текст окна? Какая P> смысловая нагрузка от этого?
Текст окна я брал просто так, для того, чтобы определить, правильно-ли получен хендл.
P> Но тем не менее, все равно ничего не работет =) Может это быть багой MFC? (хотя вызывается вункция глобального пространства )
А какая у тебя ОС? Может быть в WinVersion < (2000 || XP) другие оконные классы используются, но тот пример, которыя я привел — работает в WinXP так как тадо! Посмотри в Debug'е на какой строке хендл hTray1,hTray2, или hTray3 становятся равными NULL.
Posted via RSDN NNTP Server 1.8 beta
Re[4]: Помогите!! Очень надо!!! проблемы с получением HWND D
Здравствуйте, GDI, Вы писали:
GDI>Текст окна я брал просто так, для того, чтобы определить, правильно-ли получен хендл.
Ясненько. Я так и понял.
GDI>А какая у тебя ОС? Может быть в WinVersion < (2000 || XP) другие оконные классы используются, но тот пример, которыя я привел — работает в WinXP так как тадо! Посмотри в Debug'е на какой строке хендл hTray1,hTray2, или hTray3 становятся равными NULL.
Нет. Проблема в том, что полученный хендл окна не совпадает ни с одним из известных. А ОС у меня Win2k. Раньке я писалпрогу с похожим назначением, так так все работало и сейчас работет. Код я взял оттуда. Но та прога была чисто WinAPI а эта на MFC. И теперь не работет. Что же делать-то? Может по хендлу окна получать имя экзешника и далее просто сравнивать допустимо-ли оно? Как считаешь?
Just dream can be infinity.
ICQ:77405006
Re[5]: Помогите!! Очень надо!!! проблемы с получением HWND D
GDI> Для чего это нужно? P> А нужно это чтобы прога не забота с этими окнами =) или я не правильно понял вопрос.
Вот это выражение я не понял. Я позвал пару человек для разъяснения — они тоже не поняли! Это по-русски написано? Какая такая не забота?
GDI>> А какая у тебя ОС? Может быть в WinVersion < (2000 || XP) другие GDI>> оконные классы используются, но тот пример, которыя я привел - GDI>> работает в WinXP так как тадо! Посмотри в Debug'е на какой строке GDI>> хендл hTray1,hTray2, или hTray3 становятся равными NULL. P> Нет. Проблема в том, что полученный хендл окна не совпадает ни с P> одним из известных.
Каких таких — "Известных"???? Listen — если hTray1, hTray2, hTray3 в результате не равны NULL то эти хендлы и есть то что нужно! А вот проверку ты делаешь — GetForegroundWindow — так это вообще нужно удалить!
P> А ОС у меня Win2k. Раньке я писалпрогу с похожим назначением, так так P> все работало и сейчас работет. Код я взял оттуда. Но та прога была чисто P> WinAPI а эта на MFC. И теперь не работет.
А при чем тут MFC? Ты-же using global scope, поэтому функции вызываются API'шные!
P> Что же делать-то? Может по хендлу окна получать имя экзешника и далее P> просто сравнивать допустимо-ли оно? Как считаешь?
Что-за экзешник? Windows'а что-ли?
Posted via RSDN NNTP Server 1.8 beta
Re[6]: Помогите!! Очень надо!!! проблемы с получением HWND D
GDI>> Для чего это нужно? P>> А нужно это чтобы прога не забота с этими окнами =) или я не правильно понял вопрос.
GDI>Вот это выражение я не понял. Я позвал пару человек для разъяснения — они тоже не поняли! Это по-русски написано? Какая такая не забота?
не забота а работа — опечатка.
GDI>>> А какая у тебя ОС? Может быть в WinVersion < (2000 || XP) другие GDI>>> оконные классы используются, но тот пример, которыя я привел - GDI>>> работает в WinXP так как тадо! Посмотри в Debug'е на какой строке GDI>>> хендл hTray1,hTray2, или hTray3 становятся равными NULL. P>> Нет. Проблема в том, что полученный хендл окна не совпадает ни с P>> одним из известных. GDI>Каких таких — "Известных"????
hTray1, hTray2, hTray3, hDesktop
GDI>Listen — если hTray1, hTray2, hTray3 в результате не равны NULL то эти хендлы и есть то что нужно! А вот проверку ты делаешь — GetForegroundWindow — так это вообще нужно удалить!
Ты не понял. Мне нужно отследить что бы на момент вызова данной функции ForeGround Window не было hTrayX, hDesktop. Вот потому я и беру GetForegroundWindow. Если есть другие соображения — рад буду услышать.
P>> А ОС у меня Win2k. Раньке я писалпрогу с похожим назначением, так так P>> все работало и сейчас работет. Код я взял оттуда. Но та прога была чисто P>> WinAPI а эта на MFC. И теперь не работет. GDI>А при чем тут MFC? Ты-же using global scope, поэтому функции вызываются API'шные!
P>> Что же делать-то? Может по хендлу окна получать имя экзешника и далее P>> просто сравнивать допустимо-ли оно? Как считаешь? GDI>Что-за экзешник? Windows'а что-ли?
Нет. Для hDesktop и для hTrayX имя файла, кому принадлежат эти окна — explorer.exe. Вот по нему и проверять.
Just dream can be infinity.
ICQ:77405006
Re[7]: Помогите!! Очень надо!!! проблемы с получением HWND D
Hello, PavelVSokolov! Вы писали:
P> Ты не понял. Мне нужно отследить что бы на момент вызова данной P> функции ForeGround Window не было hTrayX, hDesktop. Вот потому я и P> беру GetForegroundWindow. Если есть другие соображения — рад буду P> услышать.
А-а-а-а-а, понятно. Ну а что, значит в момент выполнения твоей функции ForeGroundWindow не является этим — "Известным" окном. Если панель задач видна, то это еще не значит, какое-то из ее дочерних окон является ForeGround. ForeGround может быть сама панель задач, а не Tray или QuickLaunch.
Кстати, а что должна делать эта функция и по какому событию она вызывается?
Posted via RSDN NNTP Server 1.8 beta
Re[8]: Помогите!! Очень надо!!! проблемы с получением HWND D
Здравствуйте, GDI, Вы писали:
GDI>Hello, PavelVSokolov! Вы писали:
P>> Ты не понял. Мне нужно отследить что бы на момент вызова данной P>> функции ForeGround Window не было hTrayX, hDesktop. Вот потому я и P>> беру GetForegroundWindow. Если есть другие соображения — рад буду P>> услышать. GDI>А-а-а-а-а, понятно. Ну а что, значит в момент выполнения твоей функции ForeGroundWindow не является этим — "Известным" окном. Если панель задач видна, то это еще не значит, какое-то из ее дочерних окон является ForeGround. ForeGround может быть сама панель задач, а не Tray или QuickLaunch. GDI>Кстати, а что должна делать эта функция и по какому событию она вызывается?
Ну суть в том, что бы убирать и восстанавливать активное окно. Вызывается она по HotKey. Вот есть свернуть все окна (Win+D), потом щеклнуть на десктоп, а потом нажать мой HotKey, то десктоп исчезает. А это не правильно... Вотю