程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#使用spy進行模擬操作,

c#使用spy進行模擬操作,

編輯:C#入門知識

c#使用spy進行模擬操作,


很無奈,寫了很長時間,最後保存時網頁失去響應,真是要命呢。本來想就此放棄了,但是想還是粗略的重寫一次吧,希望日後可以對朋友有一定的幫助。

Microsoft.Spy工具是一個基礎工具,我們簡要介紹一下使用方法:

spy在vs有自帶的,也可以在網下直接下載。

打開spy工具,主界面如下:

今天我們使用vnc作為一個示例

目標是在server內寫入192.168.2.200,並點擊Options第二個按鈕

第一步,如何獲取vnc窗體,使用spy進行窗體查找

拖動查找工具圖標到需要的界面上。

這樣我們就可以找到需要的窗體。

FindWindow 可以查找第一個主窗體,使和類名或標題。

FindWindowEx可以查找窗體下的控件。

SendMessage向窗體發送消息。

使和窗口搜索查找控件。

 1  [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
 2         //參數1:指的是類名。參數2,指的是窗口的標題名。兩者至少要知道1個
 3         public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 4 
 5 
 6         [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
 7         public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
 8 
 9         [DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
10         public static extern IntPtr SendMessage(IntPtr hwnd, uint wMsg, int wParam, string lParam);
11 
12         [DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
13         public static extern IntPtr SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);

 

 1 IntPtr win =FindWindow(null, "VNC Viewer : Connection Details");
 2              if (win != IntPtr.Zero)
 3              {
 4                  IntPtr winComboBox = FindWindowEx(win, new IntPtr(), "ComboBox", null);
 5                  if (winComboBox != IntPtr.Zero)
 6                  {
 7                      IntPtr winEdit = FindWindowEx(winComboBox, new IntPtr(), "Edit", null);
 8 
 9                      IntPtr resultEdit = SendMessage(winEdit, 0xC, 0, "192.168.2.100");
10 
11 
12                      //獲取第一個按鈕
13                      IntPtr button1 = FindWindowEx(win, new IntPtr(), "Button", "&Options...");
14 
15                      if(button1 != IntPtr.Zero)
16                         SendMessage(button1, 0xF5, 0, 0); //點擊事件
17 
18                      if (winEdit != IntPtr.Zero)
19                      {
20                          MessageBox.Show("找到編輯框");
21                      }
22                      //MessageBox.Show("找到下拉框");
23                  }
24                  else
25                  {
26                      //MessageBox.Show("沒有找到下拉框");
27                  }
28 
29 
30                  MessageBox.Show("已經找到窗體");
31              }
32              else
33              {
34                  MessageBox.Show("沒有找到窗體");
35              }
36         }


執行結果如下:

 

 

如果多個按鈕,又沒有標題,則只能一個一個的獲取,如下

如果哪位朋友還有其它方法,還請多多指教。

1 IntPtr button1 = FindWindowEx(win, new IntPtr(), "Button", null);
2 IntPtr button2 = FindWindowEx(win, button1, "Button", null);

 


C:\

可以的

參考這個對C盤進行清理:
1.關閉系統還原:我的電腦屬性/系統還原/關閉所有磁盤上的系統還原,但是以後就不能用系統還原了!
2.關閉系統休眠:控制面板/電源/休眠/在啟動系統休眠前面的勾去掉
3.移動虛擬內存,我的電腦屬性/高級/性能/設置/高級/更改/選C盤也就是系統盤,選無分頁面,然後把虛擬內存設置到其磁盤,要剩余磁盤空間多的磁盤,比如D,E,F等盤. 設成內存的1.5~2.5倍,大小可設成一樣!
5.清理IE臨時文件夾,internet選項,刪除臨時文件和脫機文件
6.刪除系統日志和程序日志,我的電腦/控制面板/管理工具/計算機管理/事件查看器/應用程序,鼠標右鍵/清除所事件,在依次清除系統日志
7.清理系統緩存:2000系統是:C:\WINNT\system32\dllcache下的所有文件
XP系統是:C:\windows\system32\dllcache下的所有文件 清理系統緩存(打開我的電腦/工具/文件和文件夾選項/隱藏受保護的系統文件的勾去掉在把顯示全部文件勾上)。也可以直接運行sfc.exe /purgecache命令自動刪除。
8.清空回收站
9.刪除c:\windows\SoftwareDistribution\Download下的文件(系統更新時下載的文件如你裝好了更新也就沒有用了)
10.刪除c:\windows\RegisteredPackages下所有目錄
11.刪除C:\WINDOWS\Downloaded Program Files下所有的文件
12.我的電腦 文件夾選項 查看 隱藏已知受系統保護的文件勾去掉,顯示所有文件勾上確定。
13.刪除c:\windows\所有帶$8882305$的文件(系統更新後的備份文件)

zhidao.baidu.com/question/11035955.html
zhidao.baidu.com/question/12223613.html
zhidao.baidu.com/question/14874715.html
......余下全文>>
 

C:\

可以的

參考這個對C盤進行清理:
1.關閉系統還原:我的電腦屬性/系統還原/關閉所有磁盤上的系統還原,但是以後就不能用系統還原了!
2.關閉系統休眠:控制面板/電源/休眠/在啟動系統休眠前面的勾去掉
3.移動虛擬內存,我的電腦屬性/高級/性能/設置/高級/更改/選C盤也就是系統盤,選無分頁面,然後把虛擬內存設置到其磁盤,要剩余磁盤空間多的磁盤,比如D,E,F等盤. 設成內存的1.5~2.5倍,大小可設成一樣!
5.清理IE臨時文件夾,internet選項,刪除臨時文件和脫機文件
6.刪除系統日志和程序日志,我的電腦/控制面板/管理工具/計算機管理/事件查看器/應用程序,鼠標右鍵/清除所事件,在依次清除系統日志
7.清理系統緩存:2000系統是:C:\WINNT\system32\dllcache下的所有文件
XP系統是:C:\windows\system32\dllcache下的所有文件 清理系統緩存(打開我的電腦/工具/文件和文件夾選項/隱藏受保護的系統文件的勾去掉在把顯示全部文件勾上)。也可以直接運行sfc.exe /purgecache命令自動刪除。
8.清空回收站
9.刪除c:\windows\SoftwareDistribution\Download下的文件(系統更新時下載的文件如你裝好了更新也就沒有用了)
10.刪除c:\windows\RegisteredPackages下所有目錄
11.刪除C:\WINDOWS\Downloaded Program Files下所有的文件
12.我的電腦 文件夾選項 查看 隱藏已知受系統保護的文件勾去掉,顯示所有文件勾上確定。
13.刪除c:\windows\所有帶$8882305$的文件(系統更新後的備份文件)

zhidao.baidu.com/question/11035955.html
zhidao.baidu.com/question/12223613.html
zhidao.baidu.com/question/14874715.html
......余下全文>>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved