Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 18.06.2010, 20:38   #1
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию Получить параметры командной строки

Хочу автоматизировать создание ярлыков для Л2. Кто может подсказать как можно получить параметры командной строки другого приложения. Какие то существует для этого функции в WINAPI, а то гугл молчит как партизан?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 18.06.2010, 20:55   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

в аттаче
Вложения
Тип файла: zip NtQueryInformationProcess_test.zip (2.0 Кб, 62 просмотров)

Последний раз редактировалось alexteam, 20.06.2010 в 13:01. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 4 спасибками от:
Старый 18.06.2010, 21:26   #3
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Спасибо. А как можно программно узнать последовательность запуска процессов?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 18.06.2010, 22:48   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

отслеживая их запуск ? %)
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 19.06.2010, 03:27   #5
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

А не отслеживая? Разве нет какой нибудь иерархии вызовов и функций работы сними, что то вроде getprocparent ... ?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 19.06.2010, 03:29   #6
Новичок
 
Регистрация: 16.06.2010
Сообщений: 4
Сказал Спасибо: 2
Имеет 1 спасибку в 1 сообщении
lam пока неопределено
По умолчанию

по времени создания процесса?
_ttp://www.codeproject.com/KB/threads/getprocesstimes.aspx
lam вне форума   Ответить с цитированием
Старый 20.06.2010, 06:13   #7
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

lam, могут быть неоднозначности когда 2 процесса запускаются почти одновременно..
ProcessExplorer откуда то показывает точные сведения.

Добавлено через 26 минут
О что то нашел, используя Process32First, Process32Next ищем наш процесс. Когда найдем, в возращенной функцией структуре будет все нужное. Сейчас проверю.


typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
ULONG_PTR th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
TCHAR szExeFile[MAX_PATH];
} PROCESSENTRY32, *PPROCESSENTRY32;

Добавлено через 18 часов 5 минут
Все получилось. Вот рабочая функция, может кому пригодится.

delphi Код:
function GetParentProcessID(procID: cardinal): cardinal; var   hSnap: cardinal;   procEntry: tagPROCESSENTRY32; begin   Result:= 0;   hSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);   procEntry.dwSize:= SizeOf(procEntry);   if Process32First(hSnap, procEntry) then   begin     repeat       if procEntry.th32ProcessID = curProcID then       begin         Result:= procEntry.th32ParentProcessID;         break;       end;     until not Process32Next(hSnap, procEntry);   end   else   begin     ShowMessage(SysErrorMessage(GetLastError));   end;   CloseHandle(hSnap); end;
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 20.06.2010 в 06:15. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием
Старый 20.06.2010, 11:02   #8
Местный
 
Аватар для Prixmegently
 
Регистрация: 09.01.2010
Сообщений: 384
Сказал Спасибо: 60
Имеет 27 спасибок в 24 сообщенях
Prixmegently пока неопределено
По умолчанию

И как тебе ид парент процесса поможет узнать последовательность запуска процессов?
Prixmegently вне форума   Ответить с цитированием
Старый 20.06.2010, 12:36   #9
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Prixmegently, а что из функции не видно как?

procEntry.th32ParentProcessID

Добавлено через 25 минут
alexteam, что то твоя функция постоянно возвращает пустую строку. Ты её проверял?



LengthCmdLine := PWord(Longint(Buffer) + $42)^; возращает 2 хотя командная строка гораздо длиннее.

После выполнения PosCmdLine := Pointer(PLongint(Longint(Buffer) + $44)^); PosCmdLine = nil.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 20.06.2010 в 12:45. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием
Старый 20.06.2010, 12:50   #10
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

проверил GetProcessCmdLine
delphi Код:
MessageBox(0,pchar(GetProcessCmdLine(GetCurrentProcessID)),'',0);
и правда непашет

можеш изнутри процесса выцепить свои логин и пасс

delphi Код:
procedure LineageII_acc_manager; var   get_param,login,pass:string;   i:integer; begin     i:=1;     get_param:=ParamStr(1);     while (get_param[i]<>':') do Inc(i);     Inc(i);     while (get_param[i]<>char(0)) do     begin       login:=login+get_param[i];       Inc(i);     end;     i:=1;     get_param:=ParamStr(2);     while (get_param[i]<>':') do Inc(i);     Inc(i);     while (get_param[i]<>char(0)) do     begin       pass:=pass+get_param[i];       Inc(i);     end;   MessageBox(0,pchar(login),pchar(pass),0); end;
Morfik вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:37.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!