Как-то давным давно потребовалось решить проблему с сокрытием параметров запуска программы, ибо их можно было выпалить тем же ProcessExplorer'ом.
Решение:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | procedure ClearCommandLine;
var
p: PChar ;
i, Len: Integer ;
begin
p := GetCommandLineW;
while True do
begin
while (P[ 0 ] <> # 0 ) and (P[ 0 ] <= ' ' ) do
Inc(P);
if (P[ 0 ] = '"' ) and (P[ 1 ] = '"' ) then
Inc(P, 2 )
else
Break;
end ;
while P[ 0 ] > ' ' do
begin
if P[ 0 ] = '"' then
begin
Inc(P);
while (P[ 0 ] <> # 0 ) and (P[ 0 ] <> '"' ) do
Inc(P);
if P[ 0 ] <> # 0 then
Inc(P);
end
else
Inc(P);
end ;
Len := lstrlenW(p);
for i := 0 to Pred(Len) do
begin
P^ := # 0 ;
Inc(P);
end ;
end ;
|