全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5402
推到 Plurk!
推到 Facebook!

C#, GetWindowText, 如何得到 text 的字串

答題得分者是:sryang
xiaolaba
一般會員


發表:10
回覆:17
積分:5
註冊:2010-05-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-03-30 12:35:16 IP:1.164.xxx.xxx 訂閱


// http://www.brainbell.com/tutors/C_Sharp/Using_Callback_Functions_with_C.htm
// 2013-03-30

C# 的源碼是從這個網站抄來的, 試驗過, 確實可以引用 WINDOWS CALLBACK 的功能, 得到每個 WINDOW 的 HANDLE
當然, 每個 WINDOWS 的 CAPTION 也是可以全部列印出來.

俺嘗試改了一下, 希望過濾這個 WINDOWS 的 CAPTION, 找到屬於俺自己寫的一個小工具的 WINDOW, 然後記住他的 HANDLE 供後面的動作使用
可是 GetWindowText(hWnd, text, 255) 的第二個參數, 根據 WIN32 API 的描述是 lpString, 意思就是一個 POINTER
俺用 WIN32ASM 很容易, 只要直接寫成存取 OFFSET, 就得到內容
不過 C# 是試了好一陣子都不得要領. 請教 如果 用 C# 的語法, 得到這個 POINTER 指向的內容呢,
謝謝


[code c#]

// http://www.brainbell.com/tutors/C_Sharp/Using_Callback_Functions_with_C.htm
// 2013-03-30, xiaolaba

using System;
using System.Runtime.InteropServices;
using System.Text;
class CallbackApp
{
[DllImport("user32.dll")]
static extern int GetWindowText(int hWnd, StringBuilder text, int
count);
delegate bool CallbackDef(int hWnd, int lParam);
[DllImport("user32.dll")]
static extern int EnumWindows (CallbackDef callback, int lParam);

static bool PrintWindow(int hWnd, int lParam)
{

string mystring;

StringBuilder text = new StringBuilder(255);
GetWindowText(hWnd, text, 255);

mystring <-*text; // 編譯錯誤, 無法得到 text 包含的字串

Console.WriteLine("Window caption: {0}, Handle {1}", text, hWnd);
Console.WriteLine("hWnd - Window Handle = {0}", hWnd);

return true;

}

static void Main()
{
CallbackDef callback = new CallbackDef(PrintWindow);
EnumWindows(callback, 0);
}
}

[/code]



------
http://xiaolaba.wordpress.com
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-03-30 15:11:45 IP:114.35.xxx.xxx 訂閱
text.ToString()
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
xiaolaba
一般會員


發表:10
回覆:17
積分:5
註冊:2010-05-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-03-30 18:50:17 IP:1.164.xxx.xxx 訂閱

===================引 用 sryang 文 章===================
text.ToString()


謝謝
搞定了
------
http://xiaolaba.wordpress.com
系統時間:2024-03-28 18:31:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!