Показать сообщение отдельно
  #1  
Старый 16.04.2013, 08:40
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию [ Пример ] - Скрытие параметров запуска приложения

Как-то давным давно потребовалось решить проблему с сокрытием параметров запуска программы, ибо их можно было выпалить тем же ProcessExplorer'ом.
Решение:
Код:
// ф-я вычищает параметры запуска, оставляя только значение равное ParamStr(0)
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) // 2 - ибо в юникоде, по хорошему надо SizeOf(Char)
    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;
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием