1

EnumChildWindows に渡されるコールバック内で FindWindowEx & strncmp() を使用して、サード パーティ アプリケーションによって作成されたダイアログを見つけ、ボタンを押す簡単なプログラムがあります。

このコードは Windows 7 Ultimate PC では問題なく動作しますが、Windows Server 2003 で実行すると動作しなくなります。

Spy++ を使用しましたが、ウィンドウのキャプションとテキストは同じです。Server 2003 についてこれを壊す可能性のある何か欠けているものはありますか? (DEP と UAC はオフです。これはテスト PC です。これも RDP セッション内で実行しています)

これは、FindWindowEx への私の呼び出しです。

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

キャプションは (TCHAR[]) 定数です。

4

2 に答える 2

1

サードパーティのアプリケーションはサービスですか? Windows サービスは、RDP 経由でログインしたユーザーとは別のセッションで実行できるため、対話型サービスによって作成された UI は、別のウィンドウ ステーションに表示されます (したがって、別のデスクトップが表示され、それが原因で見つかりませんでした)。

于 2011-06-30T16:28:15.257 に答える
0

解決しました。

@sebf: 2011 年です。Unicode をサポートしてください、ばか!

于 2011-07-05T09:51:47.230 に答える