Title: How to know if your application is running in SafeMode
Question: Sometimes an application uses resources that doesnt exist when windows is running in SafeMode, so how do you detect this situation?
Answer:
Use Windows API GetSystemMetrics with SM_CLEANBOOT parameter, this specifies how the system was started, in your projects code use:
program Project1;
uses
Forms,
Windows,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
case GetSystemMetrics(SM_CLEANBOOT) of
1: begin
ShowMessage('Running in Safe Mode: Fail-Safe Boot');
Application.Terminate;
end;
2: begin
ShowMessage('Running in Safe Mode: Fail-safe with network boot');
Application.Terminate;
end;
end;
Application.Run;
end.
This way you can prevent the user to use your application and avoid havoc!