Главная страница
    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.47 MB
Время: 0.035 c
1-1174544437
XsID
2007-03-22 09:20
2007.05.20
Противостояние принтера


15-1177046995
NewUser2
2007-04-20 09:29
2007.05.20
PHP


15-1177150699
ArtemESC
2007-04-21 14:18
2007.05.20
А как в PHP вывести нормально дату и время в строке?


6-1163400550
NovaC
2006-11-13 09:49
2007.05.20
Атрибут файла через Indy->IdFTP SOS!!!


2-1178187768
Marat
2007-05-03 14:22
2007.05.20
Округлить QRExpr





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский