在winxp写的, 测试也没任何问题, 到win7机子里一用就报错, 程序是hook了其他程序在使用, 请问这个问题是哪方面的问题? 弹出问题窗口,以下是信息
问题签名:
问题事件名称: APPCRASH
应用程序名: pp.exe
应用程序版本: 1.0.3.3316
应用程序时间戳: 2a425e19
故障模块名称: KERNELBASE.dll
故障模块版本: 6.1.7601.18015
故障模块时间戳: 50b83b16
异常代码: 0eedfade
异常偏移: 0000812f
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 6e30
其他信息 2: 6e3095608dc28e1175d12910025d0eb4
其他信息 3: 1996
其他信息 4: 1996b64324e2ca16577c7b922cb1cf28这个窗口关闭后, 还有个对话框
显示 Exception EInOutError in module at pp.exe
file not found
问题签名:
问题事件名称: APPCRASH
应用程序名: pp.exe
应用程序版本: 1.0.3.3316
应用程序时间戳: 2a425e19
故障模块名称: KERNELBASE.dll
故障模块版本: 6.1.7601.18015
故障模块时间戳: 50b83b16
异常代码: 0eedfade
异常偏移: 0000812f
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 6e30
其他信息 2: 6e3095608dc28e1175d12910025d0eb4
其他信息 3: 1996
其他信息 4: 1996b64324e2ca16577c7b922cb1cf28这个窗口关闭后, 还有个对话框
显示 Exception EInOutError in module at pp.exe
file not found
这个线程就是执行了检查文件大小的代码
不是权限的关系获取文件大小
Function GetFileSize(fn : string): integer;
var
F: file of byte;
begin
Filemode:=0;
Assignfile(F, fn);
Reset(f);
Result:= Filesize(F);
Closefile(F);
end;线程里用了GetFileSize(Application.ExeName)而已
另外你试试用这个方法在线程中使用是否有问题function GetExeSize: Int64;
var
SearchRec: TSearchRec;
begin
Result := -1;
if FindFirst(Application.ExeName, faAnyFile, SearchRec) = 0 then
Result := SearchRec.Size;
end;
file not found好像是文件没找到,如果确定存在,那一般是权限不够了