Страница: 1 |
|
Вопрос: Подстановка значений в текстбоксы на Web-страницах
|
Добавлено: 15.02.12 10:48
|
|
Автор вопроса: Дмитрий
|
Доброго времени суток.
Вопрос заключается в следующем: Имеется корпоративное приложение написаное на дотнете, стартовая страница которого содержит 2 текстбокса (логин и пароль) и кнопка (вход), нужно из моего приложения передать даные в текстбоксы и нажать кнопку. Как это сделать???
Ответить
|
Номер ответа: 2 Автор ответа: SHDZ
ICQ: 209382104
Вопросов: 39 Ответов: 244
|
Профиль | | #2
|
Добавлено: 16.02.12 12:48
|
Пример не нашел, а по памяти толкового не скажу, сначала в списке процессов по заголовку находишь нужный процесс,
потом берешь его и перебираешь нужные дочерние эл-ты пока не доберешься до нужных, запоминаешь и начинаешь жмакать.
Найти окно
-
- using System.Diagnostics;
-
- [DllImport("User32.dll")] private static extern Int32 SendMessage(int hWnd, int Msg, int wParam, int lParam);
-
- int WM_KEYDOWN = 0x0100;
- int WM_KEYUP = 0x0101;
- int WM_CHAR = 0x0102;
- int VK_A = 0x41;
- Process[] processes = Process.GetProcessesByName("notepad");
- foreach (Process p in processes)
- {
- IntPtr pFoundWindow = p.MainWindowHandle;
-
-
- int j = SendMessage((int)pFoundWindow, WM_KEYDOWN, VK_A, 0);
-
- }
SendMessage - это как раз жмакать кнопки, и прочее
Ответить
|
Номер ответа: 4 Автор ответа: SHDZ
ICQ: 209382104
Вопросов: 39 Ответов: 244
|
Профиль | | #4
|
Добавлено: 16.02.12 13:13
|
Вот нарыл нормальный пример:
- private const int WM_GETTEXT = 0x000D;
- private const int WM_SETTEXT = 0x000C;
- private const int WM_GETTEXTLENGTH = 0x000E;
-
- [DllImport("User32.dll")]
- public static extern Int32 SendMessage(
- IntPtr hWnd, // handle to destination window
- int Msg, // message
- IntPtr wParam, // first message parameter
- StringBuilder lParam);
-
- [DllImport("User32.dll")]
- public static extern Int32 SendMessage(
- IntPtr hWnd, // handle to destination window
- int Msg, // message
- IntPtr wParam, // first message parameter
- IntPtr lParam); // second message parameter
-
- string lpszParentClass = "WindowsForms10.Window.8.app.0.3b95145";
- string lpszParentWindow = "GetMessageForm";
- string lpszClass = "WindowsForms10.EDIT.app.0.3b95145";
- IntPtr ParenthWnd = new IntPtr(0);
- IntPtr EdithWnd = new IntPtr(0);
-
- string text = "test";
-
- ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow);
- if (!ParenthWnd.Equals(IntPtr.Zero))
- {
- EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, "");
- if (!EdithWnd.Equals(IntPtr.Zero))
- {
- int length = SendMessage(EdithWnd, WM_GETTEXTLENGTH, (IntPtr)0, (IntPtr)0);
- if (length > 0)
- {
- StringBuilder sb = new StringBuilder(length);
- int numChars = SendMessage(EdithWnd, WM_GETTEXT, (IntPtr)(length + 1), sb);
- if (numChars > 0)
- {
- sb.Append(text);
- SendMessage(EdithWnd, WM_SETTEXT, (IntPtr)0, sb);\
- }
- }
- else
- SendMessage(EdithWnd, WM_SETTEXT, (IntPtr)0, new StringBuilder(text));
- }
- else
- MessageBox.Show("No child form found!");
- }
- else
- MessageBox.Show("No parent form found!");
Ответить
|
Страница: 1 |
Поиск по форуму