bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

vb.net檢測(cè)程序運(yùn)行,c語(yǔ)言檢測(cè)程序運(yùn)行

(VB)如何檢查自身程序已經(jīng)運(yùn)行?

Private Sub Form_Load()

十年的峨山縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整峨山縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“峨山縣網(wǎng)站設(shè)計(jì)”,“峨山縣網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

If App.PrevInstance Then

End

End If

End Sub

用DDE實(shí)現(xiàn)窗體防止運(yùn)行多個(gè)實(shí)例并傳遞命令

上網(wǎng)的朋友一定都用過(guò)網(wǎng)絡(luò)螞蟻(Net Ants)的吧?不知你在使用過(guò)程中有沒(méi)有注意過(guò),那就是如果你想調(diào)動(dòng)兩個(gè)“螞蟻”為您效力是不可能的——它總會(huì)把新運(yùn)行的關(guān)閉。這點(diǎn)在VB中很容易實(shí)現(xiàn):

Private Sub Form_Load()

If App.PrevInstance Then

MsgBox "你已經(jīng)運(yùn)行這個(gè)應(yīng)用程序了"

End ' 退出新運(yùn)行的程序

End If

End Sub

這樣如果你運(yùn)行這個(gè)程序后在運(yùn)行它,它會(huì)彈出一個(gè)消息框并拒絕再次運(yùn)行。這非常容易。 而“螞蟻”程序的妙處就在于:在重復(fù)運(yùn)行“螞蟻”時(shí)它不僅拒絕運(yùn)行,而且能把已經(jīng)運(yùn)行的“螞蟻”激活,這樣用上面的程序就無(wú)能為力了。但事實(shí)上實(shí)現(xiàn)拒絕運(yùn)行并激活已運(yùn)行的

程序有多種方法:

1、用FindWindow函數(shù)得到已經(jīng)運(yùn)行窗體的句柄(HWND),然后用SetActiveWindow等API函數(shù)將其激活。其缺點(diǎn)也很明顯,那就是沒(méi)法傳遞參數(shù)。

2、用FindWindow函數(shù)得到已運(yùn)行窗體的句柄后用SendMessage的方法給窗體傳送一個(gè)自定義消息(附帶參數(shù)),然后在窗體中攔截并進(jìn)行處理,但這樣做要修改窗體的標(biāo)準(zhǔn)消息處理程序,用在VC,BC或DELPHI編寫的程序中還行,但在VB中工作量太大,并且容易發(fā)生“一般保護(hù)行錯(cuò)誤”使VB崩潰,不太可取(當(dāng)然,如果你有足夠的信心和不怕崩潰的精神,也可以試一下 ^_^ )。

3、使用DDE技術(shù)。

所謂DDE技術(shù),就是動(dòng)態(tài)數(shù)據(jù)交換技術(shù)。也許你很奇怪,這與本文所討論的內(nèi)容有什么相干的?

且聽(tīng)我慢慢講來(lái)。

為了實(shí)現(xiàn)拒絕運(yùn)行并把已經(jīng)運(yùn)行的程序激活并實(shí)現(xiàn)各種功能,我們可以先用本文開頭提到的方法,檢測(cè)一下程序有沒(méi)有被運(yùn)行過(guò),如果沒(méi)有,就正常運(yùn)行,如果已經(jīng)被運(yùn)行過(guò),就打通與它的DDE通道,傳給它一個(gè)(或一些)數(shù)據(jù),然后由已經(jīng)運(yùn)行的程序?qū)?shù)據(jù)進(jìn)行處理,再去實(shí)現(xiàn)各種“意想不到”的功能,這時(shí)也許就有人對(duì)這你的程序喊:“酷、酷……” ^_^

好了,耳聽(tīng)為虛,眼見(jiàn)為實(shí),下面讓我們動(dòng)點(diǎn)真格的。

打開VB,新建一個(gè)工程,選擇菜單中的“工程-工程1 屬性”,把工程名稱改為“P1”(我愛(ài)偷懶,能短則短 ^_^ ),把已有的一個(gè)窗體的“LinkTopic”屬性改為“FormDDE”,把“LinkMode”屬性改為“1 - Source”,添加一個(gè)PictureBox控件作為DDE執(zhí)行控件,命名為picDDE。然后添加一個(gè)TextBox控件,命名為“txtInfo”,并把“MultiLine”屬性設(shè)置為“True”,以便顯示多行文本,作為消息顯示控件。

最后在窗體代碼區(qū)輸入以下代碼:

Const COMMANDLINE = "CommandLine=" ' 還是為了省事,定義一個(gè)常量

Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)

Static lngCount As Long

Dim Info As String

Info = txtInfo.Text ' 保留原有信息

Select Case CmdStr ' CmdStr 是DDE程序傳送過(guò)來(lái)的參數(shù)

Case "Max"

Me.WindowState = 2

Info = Info + vbNewLine + "窗體已被最大化"

Case "ShowTime"

Info = Info + vbNewLine + "最后一次運(yùn)行這個(gè)程序的時(shí)間是:" + Str(Now)

Case "Count"

lngCount = lngCount + 1

Info = Info + vbNewLine + "你已經(jīng)第" + Str(lngCount) + "次重復(fù)調(diào)用這個(gè)程序。" _

+ vbNewLine + "但怕您不多給工資,所以只運(yùn)行了一個(gè) ^_^"

End Select

If Left(CmdStr, Len(COMMANDLINE)) = COMMANDLINE Then

Info = Info + vbNewLine + "新程序曾以命令行形式運(yùn)行" + vbNewLine + "命令行為:" _

+ vbNewLine + Right(CmdStr, Len(CmdStr) - Len(COMMANDLINE))

End If

txtInfo.Text = Info ' 把信息顯示出來(lái)

Cancel = False

End Sub

Private Sub LinkAndSendMessage(ByVal Msg As String)

Dim t As Long

picDDE.LinkMode = 0 '--

picDDE.LinkTopic = "P1|FormDDE" ' |______連接DDE程序并發(fā)送數(shù)據(jù)/參數(shù)

picDDE.LinkMode = 2 ' | “|”為管道符,是“退格鍵”旁邊的豎線,

picDDE.LinkExecute Msg '-- 不是字母或數(shù)字!

t = picDDE.LinkTimeout '--

picDDE.LinkTimeout = 1 ' |______終止DDE通道。當(dāng)然,也可以用別的方法

picDDE.LinkMode = 0 ' | 這里用的是超時(shí)強(qiáng)制終止的方法

picDDE.LinkTimeout = t '--

End Sub

Private Sub Form_Load()

If App.PrevInstance Then ' 程序是否已經(jīng)運(yùn)行

Me.LinkTopic = "" ' 這兩行用于清除新運(yùn)行的程序的DDE服務(wù)器屬性,

Me.LinkMode = 0 ' 否則在連接DDE程序時(shí)會(huì)出亂子的

LinkAndSendMessage "Max" '--

LinkAndSendMessage "Count" ' |-----連接DDE接受程序并傳送數(shù)據(jù)/參數(shù)

LinkAndSendMessage "ShowTime" '--

If Command "" Then ' 如果有命令行參數(shù),就傳遞過(guò)去

LinkAndSendMessage COMMANDLINE + Command

End If

End ' 結(jié)束新程序的運(yùn)行

End If

End Sub

測(cè)試一下:

把工程“P1”編譯成EXE文件(設(shè)名稱為 P1.EXE )

1、打開“我的電腦”,找到 P1.EXE 并執(zhí)行。可以看到程序正常運(yùn)行了。

2、再運(yùn)行一次,這次新程序沒(méi)有運(yùn)行成功,而原來(lái)運(yùn)行的程序卻被最大化了,而且文本框中有以下

字符:

窗體已被最大化

你已經(jīng)第 1次重復(fù)調(diào)用這個(gè)程序。

但怕您不多給工資,所以只運(yùn)行了一個(gè) ^_^

最后一次運(yùn)行這個(gè)程序的時(shí)間是:00-2-6 7:11:01

3、打開 MS-DOS方式 ,用命令行方式再次運(yùn)行程序,如 “P1 How Are You?”

這時(shí)原來(lái)運(yùn)行的程序文本框中又多了幾行字:

窗體已被最大化

你已經(jīng)第 2次重復(fù)調(diào)用這個(gè)程序。

但怕您不多給工資,所以只運(yùn)行了一個(gè) ^_^

最后一次運(yùn)行這個(gè)程序的時(shí)間是:00-2-6 7:14:32

新程序曾以命令行形式運(yùn)行

命令行為:

How Are You?

OK,運(yùn)行完全正確,然后你就可以把它應(yīng)用的你的程序中了。

vb.net 怎么判斷當(dāng)前程序是否正在運(yùn)行?

Imports System.Runtime.InteropServices

Module Module1

Sub Main()

Dim instance As Process = RunningInstance()

If instance IsNot Nothing Then

ShowWindowAsync(instance.MainWindowHandle, 3) '調(diào)用api函數(shù),正常顯示窗口

Return

End If

Dim F1 As New Form1

Application.Run(F1) '顯示窗體

End Sub

DllImport("User32.dll")

Public Function ShowWindowAsync(ByVal hWnd As System.IntPtr, ByVal cmdShow As Integer) As Boolean

End Function

Private Function RunningInstance() As Process '返回進(jìn)程中已經(jīng)打開的程序

Dim current As Process = Process.GetCurrentProcess()

Dim processes As Process() = Process.GetProcessesByName(current.ProcessName)

For Each process As Process In processes

If process.Id current.Id Then

If process.MainModule.FileName = current.MainModule.FileName Then

Return process

End If

End If

Next

Return Nothing

End Function

End Module

vb.net 檢查程序已運(yùn)行

這個(gè)提供進(jìn)程即可以判斷程序是否已經(jīng)啟動(dòng)

這個(gè)是最一般的方法了

希望能幫到你

VB.net獲取程序運(yùn)行狀態(tài)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim MyInfo As String = "系統(tǒng)正在運(yùn)行的程序" + vbCrLf

Dim MyProcesses() As Process = Process.GetProcesses()

For Each MyProcess As Process In MyProcesses

If (MyProcess.MainWindowTitle.Length 0) Then

MyInfo += MyProcess.MainWindowTitle + vbCrLf

End If

Next

Me.Label1.Text = MyInfo

End Sub

VB.NET怎樣判斷一個(gè)應(yīng)用程序是否在運(yùn)行

用process.GetProcesses()

或者process.GetProcessByid() 獲取進(jìn)程信息,

標(biāo)題名稱:vb.net檢測(cè)程序運(yùn)行,c語(yǔ)言檢測(cè)程序運(yùn)行
URL地址:http://vcdvsql.cn/article32/hsecpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)網(wǎng)站設(shè)計(jì)標(biāo)簽優(yōu)化商城網(wǎng)站外貿(mào)網(wǎng)站建設(shè)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)