重慶分公司,新征程啟航
為企業(yè)提供網站建設、域名注冊、服務器等服務
為企業(yè)提供網站建設、域名注冊、服務器等服務
VB.net是帶平臺開發(fā)技術。目的是實現(xiàn)跨系統(tǒng)吧。C#同理
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、網絡空間、營銷軟件、網站建設、保靖網站維護、網站推廣。
VC++跟VB一樣的道理,只是不同編程語言
兩個進程都是你自己編寫的嗎?如果是,那就比較簡單,直接用DDE連接就可以了。
如果那個窗體不是你自己編的進程,那就只能用API函數了,比如用sendmessage,這需要學習WINDOWS編程,以便學習那個進程的控件可以接受哪些消息,還要受到那個進程是否用采WINDOWS標準控件的限制。
VB對于win32 API的支持還是不錯的。而且比起用C++來說還簡化了不少。建議你看些windows系統(tǒng)機制的資料,比如windows消息處理機制,windows窗口過程的實現(xiàn)等。最好是去看看MFC的教程,會讓你對win32 API有更深入的了解。推薦孫鑫的《VC++深入詳解》,給其他窗體發(fā)送消息,鉤子什么的都有詳細的解釋。
關于做鉤子,使用SetWindowsHookEx,UnhookWindowsHookEx,CallNextHookEx,CopyMemory四個win32 API函數,再加上一個自己寫的回調函數就可以實現(xiàn)。
控制別的窗體最小化,給其他窗體發(fā)送消息,首先用FindWindow函數找到目標窗體的句柄(對于VB自己的窗體來說Me.hwnd屬性),然后用SendMessage,PostMessage函數發(fā)送消息。還可以用SetWindowText但是windows消息有幾百種,各種消息的參數可能是不同的。要查MSDN搞懂你要使用的消息的參數結構。
代碼:關閉其他窗口:
模塊中的聲明:
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_CLOSE = H10 '定義消息常量
窗體中:
Dim hnd As Long '定義一個長整型變量儲存句柄
Private Sub Form_Load()
hnd = FindWindow(vbNullString, "test") '獲取目標窗體句柄,這里目標窗體的標題為"test"
SendMessage hnd, WM_CLOSE, 0, 0 '發(fā)送WM_CLOSE消息關閉窗體
End Sub