新聞中心
各們,請(qǐng)教怎么使用vb.net編寫(xiě)兩個(gè)進(jìn)程間消息
兩個(gè)方法
創(chuàng)新互聯(lián)建站專(zhuān)注于仙游企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,電子商務(wù)商城網(wǎng)站建設(shè)。仙游網(wǎng)站建設(shè)公司,為仙游等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
1.
要接收的窗口先使用FindWindow這個(gè)api獲得句柄
調(diào)用SetForegroundWindow使其獲得焦點(diǎn)并選中
調(diào)用.net方法:SendKeys.Send方法發(fā)送
2.使用API的SendInput
vb.net編程,如何使用 appdomain 實(shí)現(xiàn)某進(jìn)程DLL動(dòng)態(tài)加載和卸載?
由于你要求的是能夠動(dòng)態(tài)的加載與卸載,所以這里選用了appdomain的load方法來(lái)加載一個(gè)程序集(同樣的,卸載的時(shí)候調(diào)用appdomain的靜態(tài)方法Unload即可).
另外由于,在appdomain.load的時(shí)候remoting會(huì)試圖將程序集序列化到defaultdomain中去,這會(huì)產(chǎn)生問(wèn)題,通常以一個(gè)"FileNotFoundException"結(jié)束,因此采用了一種折中的辦法.
思路如下:
1.建立一個(gè)新的程序集,里面包含一個(gè)輕量的類(lèi)型,這個(gè)類(lèi)型只包含一個(gè)用來(lái)加載程序集的公共方法;
2.在你的主程序里面,用appdomain.load來(lái)加載上一步的程序集,接著實(shí)例化上一步的輕量的類(lèi)型;
3.而后就可以像操作通常的對(duì)象一樣,調(diào)用它上面的方法來(lái)加載你想要的程序集了;
源代碼已經(jīng)打包發(fā)給你了,
你看看吧~
如果有問(wèn)題,再找我哈
Vb.net中已知某程序的進(jìn)程id,如果激活該程序并最大化?
使用ShowWindow函數(shù),便可輕松控制窗口的顯隱,最小化,最大化。
概述
函數(shù)功能:該函數(shù)設(shè)置指定窗口的顯示狀態(tài)。
函數(shù)原型:BOOL ShowWindow(HWND hWnd, int nCmdShow);
*/第一個(gè)參數(shù)為句柄,第二個(gè)參數(shù)選下面的值
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
參數(shù)含義
hWnd:指窗口句柄。
nCmdShow:指定窗口如何顯示。如果發(fā)送應(yīng)用程序的程序提供了STARTUPINFO結(jié)構(gòu),則應(yīng)用程序第一次調(diào)用ShowWindow時(shí)該參數(shù)被忽略。否則,在第一次調(diào)用ShowWindow函數(shù)時(shí),該值應(yīng)為在函數(shù)WinMain中nCmdShow參數(shù)。在隨后的調(diào)用中,該參數(shù)可以為下列值之一:
SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使擁有窗口的線程被掛起也會(huì)最小化。在從其他線程最小化窗口時(shí)才使用這個(gè)參數(shù)。
SW_HIDE:隱藏窗口并激活其他窗口。
SW_MAXIMIZE:最大化指定的窗口。
SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一個(gè)頂層窗口。
SW_RESTORE:激活并顯示窗口。如果窗口最小化或最大化,則系統(tǒng)將窗口恢復(fù)到原來(lái)的尺寸和位置。在恢復(fù)最小化窗口時(shí),應(yīng)用程序應(yīng)該指定這個(gè)標(biāo)志。
SW_SHOW:在窗口原來(lái)的位置以原來(lái)的尺寸激活和顯示窗口。
SW_SHOWDEFAULT:依據(jù)在STARTUPINFO結(jié)構(gòu)中指定的SW_FLAG標(biāo)志設(shè)定顯示狀態(tài),STARTUPINFO 結(jié)構(gòu)是由啟動(dòng)應(yīng)用程序的程序傳遞給CreateProcess函數(shù)的。
SW_SHOWMAXIMIZED:激活窗口并將其最大化。
SW_SHOWMINIMIZED:激活窗口并將其最小化。
SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然維持激活狀態(tài)。
SW_SHOWNA:以窗口原來(lái)的狀態(tài)顯示窗口。激活窗口仍然維持激活狀態(tài)。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和狀態(tài)顯示窗口。激活窗口仍然維持激活狀態(tài)。
SW_SHOWNORMAL:激活并顯示一個(gè)窗口。如果窗口被最小化或最大化,系統(tǒng)將其恢復(fù)到原來(lái)的尺寸和大小。應(yīng)用程序在第一次顯示窗口的時(shí)候應(yīng)該指定此標(biāo)志。
不過(guò)順便說(shuō)一句,SendKeys會(huì)偶爾造成指令丟失,不可避免。不管你激活窗口還是最大化窗口或者鎖定都沒(méi)辦法完全避免。
vb.net 怎么結(jié)束進(jìn)程
好像不難吧?
我放進(jìn)了Button1的Click事件里。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error GoTo Errmessages '在做系統(tǒng)操作時(shí)加排錯(cuò)標(biāo)簽是個(gè)好習(xí)慣
Dim TargetName As String = "ibmdict" '存儲(chǔ)進(jìn)程名為文本型,注:進(jìn)程名不加擴(kuò)展名
Dim TargetKill() As Process = Process.GetProcessesByName(TargetName) '從進(jìn)程名獲取進(jìn)程
Dim TargetPath As String '存儲(chǔ)進(jìn)程路徑為文本型
If TargetKill.Length 1 Then '判斷進(jìn)程名的數(shù)量,如果同名進(jìn)程數(shù)量在2個(gè)以上,用For循環(huán)關(guān)閉進(jìn)程。
For i = 0 To TargetKill.Length - 1
TargetPath = TargetKill(i).MainModule.FileName
TargetKill(i).Kill()
Next
ElseIf TargetKill.Length = 0 Then '判斷進(jìn)程名的數(shù)量,沒(méi)有發(fā)現(xiàn)進(jìn)程直接彈窗。不需要的,可直接刪掉該If子句
MsgBox("沒(méi)有發(fā)現(xiàn)進(jìn)程!")
Exit Sub
ElseIf TargetKill.Length = 1 Then '判斷進(jìn)程名的數(shù)量,如果只有一個(gè),就不用For循環(huán)
TargetKill(0).Kill()
End If
MsgBox("已終止" TargetKill.Length "個(gè)進(jìn)程") '彈窗提示已終止多少個(gè)進(jìn)程
Errmessages: ‘定義排錯(cuò)標(biāo)簽
If Err.Description Nothing Then ’判斷有無(wú)錯(cuò)誤,如果有,則 ↓
MsgBox(Err.Description) '當(dāng)出現(xiàn)錯(cuò)誤時(shí),彈窗提示
End If
End Sub
可根據(jù)需要自行修改,這個(gè)備注夠完善了吧?不會(huì)的再Hi我。
網(wǎng)頁(yè)標(biāo)題:vb.net編程進(jìn)程 vbnet function
文章出自:http://fisionsoft.com.cn/article/dopsjcp.html