![]() |
Выловить дескриптор окна с помощью REGEXPCLASS и регулярных выражений
Доброго времени суток! Помогите, пожалуйста, разобраться (или хотя бы составить) с регулярными выражениями.
Дано: 1).Существует окно, имеющее класс: Afx:0000000000400000:0:0000000000000000:0000000001900015:000000001234CDEF 2).Первая часть неизменна: Afx:0000000000400000:0:0000000000000000:0000000001900015:00000000 3).Вторая часть состоит из 8 шестнадцатиричных символов. Задача: Выловить дескриптор окна. Код:
$sHandle = WinGetHandle("[REGEXPCLASS:(Afx:0000000000400000:0:0000000000000000:0000000001900015:00000000\x)") |
Код:
$sHandle = WinGetHandle("[REGEXPCLASS:Afx:0000000000400000:0:0000000000000000:0000000001900015:000000000[0-9a-fA-F]{8}]") Код:
$sHandle = WinGetHandle("[REGEXPCLASS:Afx:0000000000400000:0:0000000000000000:0000000001900015:000000000(?i)[\da-f]{8}]") |
Спасибо за ответ. Однако, я пробовал оба эти варианта.
При таком раскладе: Код:
$sHandle = WinGetHandle("[CLASS:Afx:0000000000400000:0:0000000000000000:0000000001900015:0000000004A80869]") А при Код:
$sHandle = WinGetHandle("[REGEXPCLASS:Afx:0000000000400000:0:0000000000000000:0000000001900015:00000000[0-9a-fA-F]{8}]") Код:
$sHandle = WinGetHandle("[REGEXPCLASS:Afx:0000000000400000:0:0000000000000000:0000000001900015:000000000(?i)[\da-f]{8}]") Может забыл что-то подключить Код:
#include ??? |
Упростил эксперимент: взял калькулятор
CLASS:CalcFrame Код:
$Hand = WinGetHandle("[CLASS:CalcFrame]") Код:
$Hand = WinGetHandle("[REGEXPCLASS:CalcFrame]") |
Cem,
Предупреждение за нарушение правил форума, пункт 2.7 и пункт 3.19: Цитата:
|
Цитата:
разве что у меня в Windows XP иной класс окна «calc.exe». Второй код тоже работает, другое дело, что совпадёт не только с «SciCalc», но и с любым другим подходящим окном. Давайте уточним, о каком именно приложении и о каком его окне идёт речь? |
Совсем неважно какое приложение, это не единичный случай.
Картина такая вот: При всём этом REGEXPTITLE работает прекрасно ??? |
Cem, вижу.
В порядке бреда: разницы нет, собираете Вы x86 или x64 итоговое приложение?! У меня x86 ОС — потому проверить не могу. |
Стоит Семёрка 64-битная. Может действительно, что-то ей не нравится в определении классов?... В целом с REGEXPTITLE все регулярные выражения работают на "Ура!".
|
Цитата:
Цитата:
Коллеги с сообщества вон нашли некий баг в WinGetHandle: [Баг] Дескриптор окна с цифровым заголовком. |
Время: 03:15. |
Время: 03:15.
© OSzone.net 2001-