@TUX_der_Pinguin
Schau doch mal in deinem Delphi in der Windows
Unit nach, wie Emba diese Umleitung der
API-Calls macht (
Ansi/
Unicode). Das ist dort wesentlich eleganter gelöst

Vielen dank für den Tipp Sir Rufo, dass wirkt in der Tat etwas eleganter
Delphi-Quellcode:
function InitiateShutdown(lpMachineName, lpMessage: PWideChar; dwGracePeriode, dwShutdownFlags, dwReason: DWORD): DWORD; stdcall;
{$EXTERNALSYM InitiateShutdown}
function InitiateShutdownA(lpMachineName, lpMessage: PAnsiChar; dwGracePeriode, dwShutdownFlags, dwReason: DWORD): DWORD; stdcall;
{$EXTERNALSYM InitiateShutdownA}
function InitiateShutdownW(lpMachineName, lpMessage: PWideChar; dwGracePeriode, dwShutdownFlags, dwReason: DWORD): DWORD; stdcall;
{$EXTERNALSYM InitiateShutdownW}
implementation
function InitiateShutdown; external advapi32 name 'InitiateShutdownW';
function InitiateShutdownA; external advapi32 name 'InitiateShutdownA';
function InitiateShutdownW; external advapi32 name 'InitiateShutdownW';