方法一:通過Diagnostics.Process.GetProcessesByName函數(shù)來檢測程序是否已經(jīng)啟動(dòng)
目前創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、珠山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Imports System.Windows.Forms
Module Module1
Sub Main()
'檢測多重啟動(dòng)
If Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName).Length 1 Then
MessageBox.Show("已經(jīng)一個(gè)實(shí)例的本程序正在運(yùn)行。")
Return
End If
Application.Run(New Form())
End Sub
End Module
不過這個(gè)方法有個(gè)缺點(diǎn),如果用戶改了下exe的名字就檢測不到了,所以更好的方法如下
方法2:使用Mutex
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim createdNew As Boolean
' 創(chuàng)建mutex
Dim mutex As System.Threading.Mutex = _
New System.Threading.Mutex(True, "YourAppName", createdNew)
If createdNew = False Then
MessageBox.Show("已經(jīng)一個(gè)實(shí)例的本程序正在運(yùn)行。")
Return
End If
Application.Run(New Form())
' 釋放mutex
mutex.ReleaseMutex()
End Sub
End Module
MSI 不是可執(zhí)行程序呀
這么運(yùn)行: msiexec accessrt.msi
具體你應(yīng)該知道怎么弄吧.
假如指定的lisp程序存入"e:\abcd.lsp",其中有函數(shù)gczd4-1帶有三個(gè)參數(shù)即(gczd4-1 X1 X2 X3)和命令cc,則VB.NET調(diào)用程序如下:
Dim AcadApp As Object
Dim AcadDoc As Object
AcadApp = GetObject(, "AutoCAD.Application")
AcadDoc = AcadApp.ActiveDocument
AcadDoc.SendCommand("(load " Chr(34) "e:\\abcd.lsp" Chr(34) ") ")
AcadDoc.SendCommand("(gczd4-1 " Chr(34) X1 Chr(34) Chr(34) X2 Chr(34) Chr(34) X3 Chr(34) ") ")
AcadDoc.SendCommand("(c:cc) ")
AcadDoc = Nothing
AcadApp = Nothing