Программа, использующая FindWindowEx, перестает работать на Server 2003, почему? - PullRequest
1 голос
/ 30 июня 2011

У меня есть простая программа, которая использует FindWindowEx & strncmp () внутри обратного вызова, переданного EnumChildWindows, чтобы найти диалог, созданный сторонним приложением, и нажать кнопку.

Этот код отлично работает на моем ПК с Windows 7 Ultimate, но если я запускаю его на Windows Server 2003, он больше не работает.

Я использовал Spy ++, а заголовки и текст окна идентичны. Есть ли что-то, что мне не хватает в Server 2003, что может сломать это? (DEP и UAC выключены, это тестовый ПК; я также запускаю его в сеансе RDP)

Это мой вызов FindWindowEx:

parentWindow = FindWindowEx(NULL,NULL,NULL,(LPCSTR)caption);

С заголовком, являющимся константой (TCHAR []).

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Является ли стороннее приложение сервисом?Службы Windows могут работать в другом сеансе, чем пользователь, вошедший в систему через RDP, поэтому пользовательский интерфейс, созданный интерактивной службой, будет отображаться на другой оконной станции (и, следовательно, на другом рабочем столе, поэтому вы не можете его найти).

0 голосов
/ 05 июля 2011

решаемая.

@ sebf: Его 2011; поддержка Unicode, идиот!

...