我想用以下代码实现先判断系统版本,如果是WIN 9X则用RegisterServiceProcess隐藏进程,但是,当我在Win XP上运行时没有对话框跳出来说“OK”却也提示
无法定位程序输入点RegisterServiceProcess于动态链接库KERNEL32.DLL
好像if... then...被忽略了
而在Win98下运行一切正常
=============================================
type
TOSVersion = (osUnknown, os95, os98, osME, osNT3, osNT4, os2K, osXP);
function GetOS: TOSVersion;
var
OS: TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize := SizeOf(OS);
GetVersionEx(OS);
if (((OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 0)) or
((OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 10)) or
((OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 90))) then
begin
ShowMessage('ok');
RegisterServiceProcess(GetCurrentProcessID, 1);
end;
end;
无法定位程序输入点RegisterServiceProcess于动态链接库KERNEL32.DLL
好像if... then...被忽略了
而在Win98下运行一切正常
=============================================
type
TOSVersion = (osUnknown, os95, os98, osME, osNT3, osNT4, os2K, osXP);
function GetOS: TOSVersion;
var
OS: TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize := SizeOf(OS);
GetVersionEx(OS);
if (((OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 0)) or
((OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 10)) or
((OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 90))) then
begin
ShowMessage('ok');
RegisterServiceProcess(GetCurrentProcessID, 1);
end;
end;
if(OS.dwPlatformId <> VER_PLATFORM_WIN32_NT) {这样就能达到你要的效果}
then ...
else ...
就可以了
================================================
procedure TForm1.btn1Click(Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessId,1);
end;