, , , - : DialogWatcher (: watin WebBrowser?), , , , . , , , .
FormDialogWatcher, DialogWatcher, , ... , , , , , WebBrowser controll, , , . :
private static IList<DialogWatcher> dialogWatcherspublic static DialogWatcher GetDialogWatcher(IntPtr mainWindowHwnd)public static DialogWatcher GetDialogWatcherFromCache(IntPtr mainWindowHwnd)public static void CleanupDialogWatcherCache()public void IncreaseReferenceCount()public void DecreaseReferenceCount()public int ReferenceCount { get; private set; }private bool IsWindowOfIexploreProcess(Window window)
Start() :
if (new Window(MainWindowHwnd).Exists())
{
var winEnumerator = new WindowsEnumerator();
var windows = winEnumerator.GetWindows(win => true);
:
var mainWindow = new Window(MainWindowHwnd);
if (mainWindow.Exists())
{
var winEnumerator = new WindowsEnumerator();
var windows = winEnumerator.GetWindows(window => window.ProcessID == mainWindow.ProcessID);
( GetWindows)
HandleWindow(Window window) :
if (!IsWindowOfIexploreProcess(window)) return;
! , : new FormDialogWatcher(Handle) Handle Form. , IE (LOL, , :)) - Form_Load - . (. ), , .
EDIT. , ( WatiN) , MessageBox.Show :)
2 (!). DialogWatcher, WatiN SVN 1056. : http://watin.svn.sourceforge.net/viewvc/watin/trunk/src/Core/DialogHandlers/DialogWatcher.cs?revision=1056&content-type=text/plain&pathrev=1056