Страница: 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 | 
 
		
			Поиск по форуму