Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Paramstr(?)   Найти похожие ветки 

 
Cj ©   (2007-04-28 11:40) [0]

Всем привет. Как узнать с какими параметрами запущен процесс? Желательно с примером, заранее благодарен.


 
Cj ©   (2007-04-28 11:40) [1]

Конечно не мой а чужой


 
clickmaker ©   (2007-04-28 11:42) [2]

? = 1 и выше - параметры командной строки, разделенные пробелами
0 - путь к самому приложению

Может пора уже в хелп начать заглядывать, а?


 
Cj ©   (2007-04-28 11:46) [3]


> ? = 1 и выше - параметры командной строки, разделенные пробелами0
> - путь к самому приложениюМожет пора уже в хелп начать заглядывать,
>  а?


Действительно.Слушай а я и не знал. Круто. Вот это Да...
НЕТ! параметры у ЧУЖОГО процесса, как?


 
clickmaker ©   (2007-04-28 11:52) [4]


> Действительно.Слушай а я и не знал

день прожит не зря, значит )

внедрись в процесс и вызови там GetCommandLine()


 
Cj ©   (2007-04-28 12:00) [5]


> внедрись в процесс и вызови там GetCommandLine()


Насколько я знаю можно внедрить DLL но если есть другой способ (чтоб с собой был только один EXE-шник), то я-ламер ты-мастер и прошу кинуть примерчик plizzz


 
Сергей М. ©   (2007-04-28 12:02) [6]

http://www.codeproject.com/threads/CmdLine.asp?df=100&forumid=182386&exp=0&select=1415563&tid=1395207


 
Cj ©   (2007-04-28 12:05) [7]


> Сергей М. ©

-тебе бочку варенья
> clickmaker ©  

-тебе корзину печенья


 
Ketmar ©   (2007-04-28 12:59) [8]

вот только хотел сказать, что нафиг не надо никуда внедряться -- и тут опередили...


 
SLoW.AlfaMoon.Com   (2007-04-28 16:31) [9]


 function GetProcessPebAddress(ProcessHandle: THandle): PPeb;
   var InfoLen, InfoSize: DWORD;
       Info: PPROCESS_BASIC_INFORMATION;
       ns: ntstatus;
 begin
   result := nil;
   InfoLen := sizeof(_PROCESS_BASIC_INFORMATION);
   InfoSize := 0;

   Info := VirtualAlloc(nil,InfoLen,MEM_COMMIT or MEM_RESERVE, PAGE_READWRITE);

   ns := ZwQueryInformationProcess(ProcessHandle,ProcessBasicInformation, Info,
                                 InfoLen, @InfoSize);
   Result := Info.PebBaseAddress;
 end;

 function ReadProcessMem(hProcess: THandle; BaseAddress: PVoid; MemSize: DWORD; var Mem: PVoid; var AllocatedSize: DWORD): Boolean;
 begin
   Result := False;
   Mem := VirtualAlloc(nil,MemSize,MEM_COMMIT or MEM_RESERVE, PAGE_READWRITE);
   if ZwReadVirtualMemory(hProcess, BaseAddress,
                           Mem, MemSize, @AllocatedSize) = STATUS_SUCCESS then
   begin
     Result := True;
   end
   else
   begin
     VirtualFree(Mem, 0, MEM_DECOMMIT or MEM_RELEASE);
     Mem := nil;
     AllocatedSize := 0;
   end;
 end;


Этих двух функций вполне хватит. Получишь указатель на PEB процесса, прочитаешь кусок памяти по этому указателю длиной length(PEB), далее посмотришь по структуре. Целиковый код писать слегка лениво.


 
SLoW.AlfaMoon.Com   (2007-04-28 16:57) [10]

далее тебе надо прочитать структуру, указатель на которую в параметре
ProcessParameters

 _RTL_USER_PROCESS_PARAMETERS = record // not packed!
 (*000*)MaximumLength: ULONG;
 (*004*)Length: ULONG;
 (*008*)Flags: ULONG; // Bit 0: all pointers normalized
 (*00c*)DebugFlags: ULONG;
 (*010*)ConsoleHandle: HANDLE;
 (*014*)ConsoleFlags: ULONG;
 (*018*)StandardInput: HANDLE;
 (*01c*)StandardOutput: HANDLE;
 (*020*)StandardError: HANDLE;
 (*024*)CurrentDirectory: CURDIR;
 (*030*)DllPath: UNICODE_STRING;
 (*038*)ImagePathName: UNICODE_STRING;
 (*040*)CommandLine: UNICODE_STRING;
 (*048*)Environment: PVOID;
 (*04c*)StartingX: ULONG;
 (*050*)StartingY: ULONG;
 (*054*)CountX: ULONG;
 (*058*)CountY: ULONG;
 (*05c*)CountCharsX: ULONG;
 (*060*)CountCharsY: ULONG;
 (*064*)FillAttribute: ULONG;
 (*068*)WindowFlags: ULONG;
 (*06c*)ShowWindowFlags: ULONG;
 (*070*)WindowTitle: UNICODE_STRING;
 (*078*)DesktopInfo: UNICODE_STRING;
 (*080*)ShellInfo: UNICODE_STRING;
 (*088*)RuntimeData: UNICODE_STRING;
 (*090*)CurrentDirectories: array[0..31] of RTL_DRIVE_LETTER_CURDIR;
 end;

Какое тебе там нужно поле, я думаю, догадаешься. :))



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
9-1137053986
Ньюб2
2006-01-12 11:19
2007.05.20
Фейерверк в DelphiX


8-1157620564
ScoPal
2006-09-07 13:16
2007.05.20
Play List


1-1173960784
kyn66
2007-03-15 15:13
2007.05.20
Горячие клавиши на форме!


15-1177072285
Германн
2007-04-20 16:31
2007.05.20
Сколько можно наступать на грабли?


15-1176791637
WhiteBarin
2007-04-17 10:33
2007.05.20
Что с Kylix, его закрыли?