jjzjj

TerminateProcess

全部标签

python - 在使用 Python 的 Windows 中,如何终止我的进程?

编辑:看起来像是重复的,但我向你保证,它不是。我希望彻底终止当前正在运行的进程,而不是终止一个单独的进程。问题是我正在终止的进程不是由子进程或exec产生的。它基本上是在试图自杀。场景如下:程序在退出时进行清理,但有时这会花费太长时间。我确信我可以终止程序,因为退出的第一步保存了数据库。我该怎么做?不能使用taskkill,因为它在某些Windows安装中不可用,例如家庭版XPtskill也不起作用win32api.TerminateProcess(handle,0)有效,但我担心它可能会导致内存泄漏,因为我没有机会关闭句柄(程序在之后立即停止调用TerminateProcess)。注

c - 42 传递给 TerminateProcess,有时 GetExitCodeProcess 返回 0

在获得CreateProcess返回的句柄后,我调用TerminateProcess,为进程退出代码传递42。然后,我使用WaitForSingleObject终止进程,最后调用GetExitCodeProcess。函数调用均未报告错误。子进程是一个无限循环,不会自行终止。问题是,有时GetExitCodeProcess返回42作为退出代码(它应该如此),有时返回0。知道为什么吗?#include#include#include#include#includevoidcheck_call(boolresult,charconst*call);#defineCHECK_CALL(call

c++ - TerminateProcess 不适用于已验证的进程 ID

我正在开发应该终止具有给定名称的进程的应用程序。我使用的操作系统是Windows7。问题是,对于任务管理器中列出的所有具有非空白用户名字段的进程,它工作正常。但是,当一个进程的用户名为空时,即使任务管理器也无法将其终止。谁能告诉我为什么有些进程没有用户名。在我的例子中,它是csrss.exewinlogon.exe,不幸的是我想杀死一个旧应用程序。我检查的所有其他进程都有正确的用户名。有什么方法可以将用户名添加到现有流程吗?任何人都可以推荐我更好的解决方案来杀死应用程序而不是终止进程()? 最佳答案 无法终止这些进程,因为您没有这样

c++ - TerminateProcess 上的 ERROR_INVALID_HANDLE (VS C++)

免责声明:这是程序要求的一部分,因此没有任何不良意义。如果您发现任何误用,请随时指出。我是C++的初学者。基本上,我正在尝试使用C++在Windows上重新启动Outlook.exe。这是我用来重启Outlook的代码。#includevoidRestartOutlook(){PROCESSENTRY32Pc={sizeof(PROCESSENTRY32)};HANDLEhSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);MODULEENTRY32Mo={sizeof(MODULEENTRY32)};if(Process32Firs

c++ - 防止进程在任务管理器中关闭

我正在开发一个小程序来提高工作效率。它应该在预设的分钟数后断开用户与Internet的连接或关闭您的计算机。该程序不应使用任务管理器关闭。我可以编译程序并运行,但我可以用任务管理器关闭它。我的灵感来自thispage:#include#include#include#include#include#include"shutdown.cpp"#include"disconnect.cpp"staticconstboolProtectProcess(){HANDLEhProcess=GetCurrentProcess();EXPLICIT_ACCESSdenyAccess={0};DWOR

C++ TerminateProcess 函数

我一直在搜索Win32APIC++函数的示例TerminateProcess()但找不到。一般来说,我对Win32API不是很熟悉,所以我想问问这里是否有比我更擅长的人可以给我举个例子,通过PID检索进程句柄需要终止它,然后用它调用TerminateProcess。如果您不熟悉C++,C#等价物也会有所帮助。 最佳答案 要回答最初的问题,为了通过PID检索进程句柄并调用TerminateProcess,您需要如下代码:BOOLTerminateProcessEx(DWORDdwProcessId,UINTuExitCode){DWO

c++ - 使用 TerminateProcess 终止 "mstsc.exe"进程时出现错误代码 (5) 访问被拒绝

我使用CreateProcess()函数通过“mstsc.exe”启动rdp客户端应用程序。之后,我想终止它,所以我使用了TerminateProcess()函数,但它失败了,错误代码为5。如果我用“notepad.exe”替换“mstsc.exe”,终止功能有效。代码如下:TCHARszCommandLine[]=TEXT("mstsc.exe");STARTUPINFOsi={sizeof(si)};PROCESS_INFORMATIONpi;BOOLbResult=CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,NORMAL_PR

windows - 使用 TerminateProcess 时到底有什么风险?

我的Win32控制台应用程序使用第三方库。在它退出WinMain全局对象后,破坏开始并且AV发生在内部深处的某个地方。我真的很想写TerminateProcess(GetCurrentProcess(),0);WinMain末尾附近的某个地方。如果我这样做,应用程序将正常结束。但是MSDNsays这样做会损害由动态链接库(DLL)维护的全局数据的状态,这一点尚不清楚。我知道如果我有一些全局对象,它的析构函数不会运行,我就有可能无法完成数据库连接或类似的事情。我的程序中没有类似的东西。使用TerminateProcess到底有什么风险?如何确定我是否可以将其用于我的目的?

windows - TerminateProcess 与 Ctrl+C

我有一个使用SQLite3维护数据库文件的控制台模式程序。执行需要一段时间,但假设数据库写入发生,在任何时候取消都应该是安全的。(这都是Windows下的)从正在运行的程序的角度来看,在控制台中按CtrlC是否比让另一个程序对其调用TerminateProcess更安全?我注意到,如果调用TerminateProcess,我可能会损坏数据库-我认为这是因为程序没有机会完成写入。我的猜测是CtrlC更好,因为程序收到信号并自行终止,而不是操作系统杀死它。请注意,该程序实际上并不处理信号(除非SQLite处理);我说的是Win32可执行文件的内置默认机制来处理CtrlC信号。澄清/简化问题

windows - TerminateProcess() 返回 EINVAL

我正在尝试调试一个问题,但我不明白。funcBackgroundProcess(lpCommandLinestring)(error){varlpProcessAttrswindows.SecurityAttributesvarlpThreadAttrswindows.SecurityAttributesvarlpProcInfowindows.ProcessInformationvarlpStartupwindows.StartupInformation//converttonullterminatedlpCli,err:=StringToLpStr(lpCommandLine)if
12