怎么重新启动程序啊?

笑里春秋多少泪 2009-07-20 04:24:47
程序正在运行,我想点击画面的按钮使程序关闭并重新打开
好比重新启动计算机一样,能不能实现啊?
...全文
190 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2009-07-24
  • 打赏
  • 举报
回复
批处理调用另一个程序建议用start命令,否则cmd进程会一直伴随着你调用的程序存在,call命令也是这样
jp0077777 2009-07-23
  • 打赏
  • 举报
回复
..............
有心人问道 2009-07-23
  • 打赏
  • 举报
回复
好法子啊!!!
simon__sun 2009-07-23
  • 打赏
  • 举报
回复
用BAT,或者后台做个服务
Private Sub Command1_Click()
bat '调用“bat”,生成一个bat文件
Call Shell("r.bat", vbHide) '启动bat文件
End '退出程序
End Sub

'下面是生成bat文件的代码
Sub bat()
Dim sFilePath As String
sFilePath = (App.Path & "\r.bat")
Open sFilePath For Output As #1
Print #1, " "; App.EXEName; ".exe"
Print #1, "del %0"
Close #1
End Sub
whang321 2009-07-22
  • 打赏
  • 举报
回复
Private Declare Function exitwindows Lib "User" (ByVal dwReturnCode As Long, ByVal wReserved As Integer) As Integer
Dim myval As Integer

Private Sub Command1_Click()
'重新启动计算机
myval = exitwindows(&H43, 0)
End Sub

Private Sub Command2_Click()
'关闭计算机
myval = exitwindows(&H42, 0)
End Sub
贝隆 2009-07-20
  • 打赏
  • 举报
回复
1、关闭程序,用:Taskkill命令。
2、启动进程,用:Shell命令。
fzx4936 2009-07-20
  • 打赏
  • 举报
回复
我用
shell app.exename:end
重载Dll
还没出现过 2个实例同时存在的时候.即使有这个可能也没有问题 第1个瞬间就end 了.
cqq_chen 2009-07-20
  • 打赏
  • 举报
回复
...
无·法 2009-07-20
  • 打赏
  • 举报
回复
使用外部程序是个好方法,比如写个专门的exe负责kill和shell,可以以参数的形式传入,然后直接调用shell "restart.exe test.exe"

2楼的那个可能会不同步,比如bat运行了可能程序还没来得及关掉,建议直接将所有内容写到bat中,比如:
@echo off
taskkill /f /im notepad.exe
start notepad.exe
del %0
神马都能聊 2009-07-20
  • 打赏
  • 举报
回复
再写一个程序,用新的程序运行当前程序
打死不掉牙 2009-07-20
  • 打赏
  • 举报
回复
例如用批处理实现:

Option Explicit
Dim blnReset As Boolean

Private Sub Command1_Click()
Dim intFileNum As Integer
intFileNum = FreeFile

Open App.Path & "\1.bat" For Output As #intFileNum
Print #intFileNum, "@echo off"
Print #intFileNum, "Start " & App.EXEName & ".exe"
Print #intFileNum, "del 1.bat"
Close #intFileNum

blnReset = True

Unload Me
End Sub

Private Sub Form_Unload(Cancel As Integer)
If blnReset Then Call Shell(App.Path & "\1.bat", vbHide)
End Sub
打死不掉牙 2009-07-20
  • 打赏
  • 举报
回复
简单的方法就是创建一个reset窗体,当点击这个重启按钮后,调用reset.show,可将该窗体隐藏。在reset窗体中卸载除自己以外的所有窗体,然后再启动主窗体,比如form1.show。最后unload me。
或者用批处理实现,重启按钮点击时直接unload me和卸载所有窗体。在unload事件产生生成一个能运行自己的批处理1.bat,比如:
@echo off
abc.exe
del 1.bat

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧