AOL 内に埋め込まれた広告ウィンドウを非表示にしようとしています。非表示にしようとしているウィンドウ/コントロールの写真を次に示します。
このウィンドウ/コントロールは、チャット ルーム ウィンドウの子です。
現在使用しようとしているコードは次のとおりです。
public static void hideAdvertisement()
{
IntPtr hWND = AOL.FindWindow("AOL Frame25", null);
IntPtr child = AOL.FindWindowEx(hWND, (IntPtr)null, "MDIClient", null);
IntPtr chatRoom = AOL.FindWindowEx(child, (IntPtr)null, "AOL Child", null);
IntPtr advertisementParent = AOL.FindWindowEx(chatRoom, (IntPtr)null, "ATL:69F46668", null);
IntPtr advertisement = AOL.FindWindowEx(advertisementParent, (IntPtr)null, "Internet Explorer_Server", null);
long style = AOL.GetWindowLong(advertisement, -16);
style &= ~(0x10000000L);
style &= ~(0x00040000L);
AOL.ShowWindow(advertisement, 0);
AOL.SetWindowLong(advertisement, -16, (int)style);
AOL.ShowWindow(advertisement, 5);
AOL.ShowWindow(advertisement, 0);
}
コントロールに適切なハンドルがあると確信しています。Spy++ で送信されているメッセージを確認できます。
上記のコードに加えて、他のことも試しました。
それが私にとってうまくいかないことを明確にShowWindow(handle, 0); (SW_HIDE)
させてください。何かご意見は?