十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
方法一:通过Diagnostics.Process.GetProcessesByName函数来检测程序是否已经启动
建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。成都创新互联专业提供做网站、网站制作,网页设计,网站制作(企业站、响应式网站设计、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!
Imports System.Windows.Forms
Module Module1
Sub Main()
'检测多重启动
If Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName).Length 1 Then
MessageBox.Show("已经一个实例的本程序正在运行。")
Return
End If
Application.Run(New Form())
End Sub
End Module
不过这个方法有个缺点,如果用户改了下exe的名字就检测不到了,所以更好的方法如下
方法2:使用Mutex
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim createdNew As Boolean
' 创建mutex
Dim mutex As System.Threading.Mutex = _
New System.Threading.Mutex(True, "YourAppName", createdNew)
If createdNew = False Then
MessageBox.Show("已经一个实例的本程序正在运行。")
Return
End If
Application.Run(New Form())
' 释放mutex
mutex.ReleaseMutex()
End Sub
End Module
假如指定的lisp程序存入"e:\abcd.lsp",其中有函数gczd4-1带有三个参数即(gczd4-1 X1 X2 X3)和命令cc,则VB.NET调用程序如下:
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
首先你要知道vb和vb.net是完全不同的。
vb6.0(vb最后的一款编译器)编译的软件只要没有用到外在的ocx控件则可以在windows下顺利运行,否则需要把ocx控件也安装到对方电脑中。
vb.net则需要安装.net
framework(相当与安装虚拟机),否则无法运行。
20006年以后的vista都默认安装了.net
framework的。
MSI 不是可执行程序呀
这么运行: msiexec accessrt.msi
具体你应该知道怎么弄吧.
不行, fileopen是用来打开、读取或创建文件的,主要是文本类的文件。
应该用shell方法,如:
Shell("D:\mypath\abc.exe")
注意各种参数的设置,详查msdn