原文c#中傳送訊息給指定的視窗,以及接收訊息
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public
class
note
long
result = sendmessage(window_handler, custom_message,
new
intptr(14), intptr.zero).toint64();
}
}
在協同標繪視窗裡攔截訊息的函式:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
protected
override
void
wndproc(
ref
system.windows.forms.message msg)
}
break
;
default
:
base
.wndproc(
ref
msg);
//呼叫基類函式處理非自定義訊息。
break
;
}
}
private
void
button1_click(
object
sender, eventargs e)
findwindow()函式的用法。要在c#裡使用該api,寫出findwindow()函式的宣告:
[dllimport("coredll.dll", entrypoint = "findwindow")]
private extern static intptr findwindow(string lpclassname, string lpwindowname);
這個函式有兩個引數,第乙個是要找的視窗的類,第二個是要找的視窗的標題,是窗體的text名字,不是name。在搜尋的時候不一定兩者都知道,但至少要知道其中的乙個。有的視窗的標題是比較容易得到的,如"計算器",所以搜尋時應使用標題進行搜尋。但有的軟體的標題不是固定的,如"記事本",如果開啟的檔案不同,視窗標題也不同,這時使用視窗類搜尋就比較方便。如果找到了滿足條件的視窗,這個函式返回該視窗的控制代碼,否則返回0。 看例子
1
2
3
4
5
6
7
8
9
intptr parenthwnd =
new
intptr(0);
parenthwnd = findwindow(
null
,
"word mobile"
);
//判斷這個窗體是否有效
if
(parenthwnd != intptr.zero)
else
messagebox.show(
"沒有找到視窗"
);
從上面的討論中可以看出,如果要搜尋的外部程式的視窗標題比較容易得到,問題是比較簡單的。可如果視窗的標題不固定或者根本就沒有標題,怎麼得到視窗的類呢?如果你安裝了visual c++,你可以使用其中的spy,在spy++中有乙個findwindow工具,它允許你使用滑鼠選擇視窗,然後spy++會顯示這個視窗的類。
在win32 api中還有乙個findwindowex,它非常適合尋找子視窗。
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。
c 中傳送excel到指定的郵箱
前兩天剛接觸到乙個傳送excel到客戶郵箱的任務 這是我寫的第一篇部落格寫的不合理的地方請多多指教 首先新增命名空間using system.net.mail mailmessage mail new mailmessage mail.from new mailaddress 設定電子郵件的傳送人位...
c 不同的程式間傳送訊息給對方按鈕
1 新建乙個對話方塊工程,在對話方塊上面放置乙個button,設定id為test idc button1,雙擊新增訊息處理 void ctestdlg onbnclickedbutton1 2 再新建乙個對話方塊工程,在對話方塊上面放置幾個按鈕,一下通過幾種方式發訊息給上乙個對話方塊工程裡的butt...
C 傳送訊息格式為JSON的http請求
json是類似於xml的一種用於資訊互動的輕量級資訊定義格式,可擴充套件性也很好。如何用c 寫的 來傳送http請求,訊息格式採用json呢?下面我一步一步介紹。所有步驟都經實際驗證,測試平台為linux系統。1.傳送http請求需要安裝curl庫。這個庫一般linux系統是自帶的。自己可以在系統目...