public static bool Enter(string login, string pass) { IntPtr hLoginWnd; hLoginWnd = WinowsFind.FindWindow("#32770", "Идентификация пользователя"); if (hLoginWnd == IntPtr.Zero) { hLoginWnd = WinowsFind.FindWindow("#32770", "User identification"); } if (hLoginWnd == IntPtr.Zero) { return(false); } if (hLoginWnd != IntPtr.Zero) { IntPtr nBtnOk = FindWindowByIndex(hLoginWnd, 1, "Button"); IntPtr hLogin = FindWindowByIndex(hLoginWnd, 1, "Edit"); IntPtr nPassw = FindWindowByIndex(hLoginWnd, 2, "Edit"); setWindowText(hLogin, login); setWindowText(nPassw, pass); WinowsFind.SetFocus(nBtnOk); WinowsFind.PostMessage(nBtnOk, BM_CLICK, new IntPtr(0), new IntPtr(0)); } return(true); }
/// <summary> /// Отправить текст в окно с данными пользователя /// </summary> /// <param name="hWnd"></param> /// <param name="text"></param> private static void setWindowText(IntPtr hWnd, string text) { try { WinowsFind.SetFocus(hWnd); WinowsFind.SendMessage(hWnd, WM_SETTEXT, IntPtr.Zero, null); foreach (char c in text) { Thread.Sleep(50); IntPtr val = new IntPtr((Int32)c); WinowsFind.PostMessage(hWnd, WM_CHAR, val, new IntPtr(0)); } } catch (Exception) { throw; } }