Hier noch das Beispiel mit dem eigenen selbsterstellten Environment-Block (
Unicode!):
Delphi-Quellcode:
(******************************************************************************
Hier erstellen wir mal frisch fröhlich ein eigenes Environment, nur um zu
zeigen wie das geht. Hier wird WideString benutzt, weil wir in unserem Wrapper
*immer* Unicode-Environments erwarten ...
******************************************************************************)
Writeln('
-----------------------------------------------------------------------');
Writeln('
Mit Pfriemelei (eigenes Environment) ...');
(* WICHTIG: Am Ende muß immer 2x die #0 stehen! Das ist quasi der END-Marker *)
env:= '
USERNAME=SONSTWAS' + #0 + '
PATH=C:\Blabla\bla\blubb' + #0 + #0;
lpEnvironment := @env[1];
if (CreateProcessWithLogonWrapper(
'
ottokar',
nil,
'
das fruechtchen',
'
cmd.exe',
'
/E:ON /K SET USERNAME',
CREATE_NEW_CONSOLE,
lpEnvironment
))
then
Writeln('
Guck mal an, es funzt ja doch')
else
Writeln('
FEHLER: Es ist ein Fehler aufgetreten (', GetLastError(), '
)');
// Wait for input
Writeln('
ENTER druecken um fortzufahren ...');
Readln;
Werde das gleich im Anhang des Beitrags obendrüber ändern ...
Hier sieht man mal den Vorteil von Delphi-Strings