看板 C_Sharp 關於我們 聯絡資訊
最近在學API API的GetWindowText 這程式大概是 根據視窗title 來找到 該視窗介的控件 在表單上 建立一個button 就好了 我不懂的是 究竟是怎樣產生迴圈效果 讓他可以不斷執行 後面這行: Console.WriteLine(" Contains text of contro:"+ editText); 程式是用XP的 音量控制 來測試的 程式碼: using System; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace user32_api_test1 { public partial class Form1 : Form { [DllImport("User32.dll")] public static extern Int32 FindWindow(String lpClassName, String lpWindowName); [DllImport("User32.dll")] public static extern Boolean EnumChildWindows(int hWndParent, Delegate lpEnumFunc, int lParam); [DllImport("User32.dll")] public static extern Int32 GetWindowText(int hWnd, StringBuilder s, int nMaxCount); [DllImport("User32.dll")] public static extern Int32 GetWindowTextLength(int hwnd); [DllImport("user32.dll", EntryPoint = "GetDesktopWindow")] public static extern int GetDesktopWindow(); int hWnd; public delegate int Callback(int hWnd,int lParam); public Form1() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { }// private void button1_Click(object sender, EventArgs e) { Callback myCallBack = new Callback(EnumChildGetValue); hWnd = FindWindow(null, "主音量"); if(hWnd == 0) { MessageBox.Show("Please Start Calling Window Application"); } else { EnumChildWindows(hWnd,myCallBack,0); } } public int EnumChildGetValue(int hWnd,int lParam) { StringBuilder formDetails = new StringBuilder(256); int txtValue; string editText=""; txtValue =GetWindowText(hWnd,formDetails,256); editText = formDetails.ToString().Trim(); Console.WriteLine(" Contains text of contro:"+ editText); return 1; } }// } Thanks in advance for any help -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.145.193