delphi exe异常关闭,怎么获取异常关闭状态
杀进程。
KillTask ('excel.exe');
下面是这个函数。
function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);
while integer(ContinueLoop) 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
不用那么麻烦,你按下键盘上的组合键(Ctrl+Alt+Delete)调处任务管理器,在进程里找到explorer.exe,结束它。然后点文件-新建任务后输explorer.exe,确定就重启了explorer.exe进程。
用下面的例程去调用delphi.exe(找一台运行delphi没问题的机器调试好含下面例程的程序)。function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;
var
zAppName: array[0..512] of char; //存放应用程序名
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
exitCode: Dword;
aVisibility: integer;
begin
StrPCopy(zAppName, FileName);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
//给StartupInfo结构体赋值
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
if Visibility then
aVisibility := 1
else
aVisibility := 0;
StartupInfo.wShowWindow := aVisibility;
//调用CreateProcess 创建进程,执行指定的可执行文件
if not CreateProcess(nil, zAppName, nil, nil, false
, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS
, nil, nil, StartupInfo, ProcessInfo) then
Result := -1
else
begin
//等待可执行文件退出
WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
//得到进程终止状态码
GetExitCodeProcess(ProcessInfo.hProcess, exitCode);
result := Exitcode;
end;
end;
安装EurekaLog,这个控件可以清楚的告诉你那里出错了
delphi exe异常关闭,怎么获取异常关闭状态
用下面的例程去调用delphi.exe(找一台运行delphi没问题的机器调试好含下面例程的程序)。function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;var zAppName: array[0..512] of char; \/\/存放应用程序名 StartupInfo: TStartupInfo;ProcessInfo: TProcessInformation;exitCode:...
delphi关闭窗口问题
第一个十六进制数0043F193是发生Access violation的编译代码(Project1.exe)的运行期错误的地址。在IDE里选择菜单项“Search|Find Error…”,在对话框里输入错误发生的地址(0043F193)后点击“OK”按钮。Delphi将会重新编译你的工程文件,然后显示发生运行期错误的那一行代码,这里就是BadForm.Refresh这一行了。下面列出...
我的电脑总出现Explorer.EXE遇到问题需要关闭.这是怎么回事?
4、根据灰鸽子原理分析我们知道,如果Game_Hook.DLL是灰鸽子的文件,则在操作系统安装目录下还会有Game.exe和Game.dll文件。打开Windows目录,果然有这两个文件,同时还有一个用于记录键盘操作的GameKey.dll文件。
delphi 写的EXE程序正在运行,突然停电了,如何捕获这种异常,大虾们来...
唯一的就是程序中,定时保存当前程序状态或部分参数,一旦停了,能知道从哪里再开始。--- 客户端EXE程序要定时向服务端的数据表中写当前服务器的时间(SQL中可以写 服务端时间而不是客户端时间),服务端一旦检测客户端写入的时间已与实际时间 严重超时(超周期),表示已登出,要重新登录。这是最简单...
delphi 关闭异常抛出,raise ,exception
智能一步一步跟踪到出错的代码,一般这类代码是内存溢出了,访问了错误的地址空间。
EXE电子书电脑打不开
需要明确的是,Access Violation与Microsoft Access无关。在使用Delphi开发程序时,我们可以将遇到的Access Violation错误分为两类:设计期和运行期。设计期的Access Violation错误可能由硬件原因引起。例如,在启动或关闭Delphi IDE以及编译一个Delphi工程时,可能会出现设计期的Access Violation。这种情况可能是由系统BIOS、操作...
delphi try命令
{$I-}{此编译器指令关闭I\/O检测} Assign(InFile,InputName);Reset(InFile);{$I+}{此编译器指令恢复I\/O检测} If IOResult0 then {错误处理代码};使用异常进行错误处理 结构化异常处理是Delphi语言内建的特性.为我们处理异常提供了方便.处理异常有两方面:1 异常处理可确保适当地恢复在应用程序中...
重装系统后不能安装迅雷看看显示错误
设计期的错误可能由硬件原因引起。比如,在启动或关闭Delphi IDE以及编译某个Delphi工程时,可能会出现设计期的Access Violation。计算机中的每一张卡都有它的设备驱动程序,不同制造商、不同版本的Windows或Delphi可能会遇到不同的问题。以下是一些可能帮助你解决问题的步骤:1. 确保驱动程序之间没有冲突。...
图片描述的是什么意思?怎么解决这种问题?
第一个十六进制数0043F193访问冲突发生运行时错误地址的汇编代码(成Project1.exe)。在IDE中,选择菜单项|后“搜索查找错误...”,输入错误发生在该对话框中单击“确定”按钮的地址(0043F193)。德尔福将重新编译你的项目文件,然后显示发生运行的代码行的错误,这里是BadForm.Refresh这条线。 下面列出了Delphi环境中最...
怎样预防盗号
这种状况虽然明显,但是解决起来不简单(spoolsv.exe可以关闭,但是expolrer.exe不可以)。一般杀毒软件大多数情况下解决不了这种问题(以笔者的经验看,这种情况杀毒是解决不了的)。还是那句话,这里不是计算机学堂,有关计算机专业的东西以后详细谈。过去,这样的木马一般不会对用户的账户造成影响,它的作用是影响系统而非...