...check if Softice is loaded?

Author: Simon Grossenbacher
Homepage: http://www.swissdelphicenter.ch

Category: System

//SoftIce in W9x OS

function IsSoftIce95Loaded: Boolean;
var
  
hFile: THandle;
begin
  
Result := False;
  hFile  := CreateFileA('\.SICE', GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then 
  begin
    
CloseHandle(hFile);
    Result := True;
  end;
end;



// SoftIce in NT/2000 OS
function IsSoftIceNTLoaded: Boolean;
var
  
hFile: THandle;
begin
  
Result := False;
  hFile  := CreateFileA('\.NTICE', GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then 
  begin
    
CloseHandle(hFile);
    Result := True;
  end;
end;




procedure TForm1.Button1Click(Sender: TObject);
begin
  if 
IsSoftIce95Loaded or IsSoftIceNTLoaded then
  begin
    
//Do something if Softice is loaded
  
end;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base