1楼的仁兄对API根本不了解,不懂就不要乱说哦~ API中是有终止进程的函数的,而且还不止一个,方法也很多。最简单的方法就是调用TerminateProcess函数。其他方法:比如强制卸载进程句柄、进程内存添添零、甚至可以注入进去,从内部生成一个异常,从而把进程挂掉…… API都实现不了、批处理怎么能实现?!明明是在开玩笑嘛!批处理内部本质上也要调用API的!
我十分赞同2楼仁兄的的代码,巧妙简洁。不过,如果给taskkill加参数/f会更好。呵呵~
下面是我的方法:(全部用API来实现,好让1楼的兄弟看看)
首先要获取QQ进程的PID,可以在任务管理器中看到,也可以用tasklist命令来得到。然后调用OpenProcess,最后一个参数添PID的值,该函数返回进程句柄。然后用返回的句柄作为参数来调用TerminateProcess就可以了。
具体代码如下:
int nPID = GetDlgItemInt(IDC_EDT_PID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, nPID);
TerminateProcess(hProcess, 0);
为了简单,我省略了出错处理代码,实际使用应加入错误处理程序。
上面的代码即可以用在MFC中,也可以用在SDK程序中。
写了一个例子,你看一下吧。
只要在你的代码中写上 AppCurrentShutdown();即可关闭应用程序了。我的机器上只有C#,Vb的用法与C#相同。
只要加一个按钮,在设计器上双击按钮,在事件处理程序中加入上述语句即可。
--------
<Window x:Class="WpfApplication1MainWindow"
xmlns=">
软糖来回答罗:通过SystemDiagnostics命名空间下的Process类来关闭程序的进程
Dim 进程集合 = ProcessGetProcessesByName("进程名称")For Each 进程 In 进程集合
进程Kill()
'进程Close() '或者使用关闭
Next
也可以先获取所有进程,再来判断这些进程的名称ProcessName
Dim 获取本地所有进程 = ProcessGetProcesses()For Each 进程 In 获取本地所有进程
If 进程ProcessName = "explorerexe" Then 进程Kill()
Next
3
windows
xp的关机是由shutdownexe程序来控制的,位于windows\system32文件夹中
。如果想让windows
2000也实现同样的效果,可以把shutdownexe复制到系统目录下。
比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at
22:00
shutdown
-s”,这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入“shutdownexe
-s
-t
3600”,这里表示60分钟后自动关机,“3600”代表60分钟。
设置好自动关机后,如果想取消的话,可以在运行中输入“shutdown
-a”。另外输入“shutdown
-i”,则可以打开设置自动关机对话框,对自动关机进行设置。
shutdownexe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如“-s”就表示关闭本地计算机,“-a”表示取消关机 *** 作,下面列出了更多参数,大家可以在shutdownexe中按需使用。
-f:强行关闭应用程序
-m
\\计算机名:控制远程计算机
-i:显示图形用户界面,但必须是shutdown的第一个选项
-l:注销当前用户
-r:关机并重启
-t时间:设置关机倒计时
-c
"消息内容":输入关机对话框中的消息内容(不能超127个字符)
可以用“taskkill /f /t /im”命令关闭应用程序。
1、同时按住键盘上“win”键+“R”键打开运行窗口,在运行窗口中输入“cmd”并按回车键打开cmd窗口:
2、右击需要关闭的应用程序,在展开的菜单中点击”属性“按钮进入属性界面:
3、在属性界面查看应用程序的文件名:
4、在cmd窗口输入“taskkill /f /t /im”+文件名,按下回车键,这时应用程序就会被关闭:
添加一个时钟,将其名称改为“时钟1”,再添加一个标签,将其名称改为“标签1”,以下为源码:
程序集 窗口程序集1
程序集变量 关闭热键, 整数型
子程序 __启动窗口_创建完毕
写注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, “这里写上本程序的路径”) ' 这个命令可以让本程序开机启动, 不想要的话可以去掉。
时钟1时钟周期 = 300 ' 这里决定多少时间禁止一次
关闭热键 = 注册热键 (_启动窗口取窗口句柄 (), 标签1取窗口句柄 (), 2, #F5键) ' 注册热键中的参数<3>的名称为“功能键”,类型为“整数型(int)”,初始值为“0”。可以为:0-无功能键;1-ALT键;2-CTRL键;4-SHIFT键或各键值之和。想要关闭本程序就必须按“CTRL键+F5键”。
子程序 __启动窗口_被激活
_启动窗口可视 = 假
_启动窗口在任务条中显示 = 假
子程序 _时钟1_周期事件
终止进程 (“这里写上需要禁止启动的程序的进程名”) ' 如果还要禁止其他程序的话还可以添加。
子程序 _标签1_反馈事件, 整数型
参数 参数一, 整数型
参数 参数二, 整数型
如果真 (参数一 = 关闭热键)
结束 ()
如果真结束
Private Declare Function FindWindows Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10
Private Sub Command1_Click()
'winhwnd = FindWindows("Windows 任务管理器", vbNullString) '知道窗口类名,关闭
winhwnd = FindWindows(vbNullString, "Microsoft Word") '知道窗口标题,关闭
Call PostMessage(winhwnd, WM_CLOSE, 0&, 0&)
End Sub
以上就是关于c++关闭程序代码全部的内容,包括:c++关闭程序代码、wpf里 怎样通过button关闭整个程序、怎样才能用VB.NET的代码来关闭一个在运行的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)