Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Количество запусков
Посл.ответ Сообщение

Ранг: 23.1 (новичок), 3thx
Активность: 0.010
Статус: Участник

Создано: 29 марта 2007 17:29
· Личное сообщение · #1

Здаров крэкеры !!!
У меня тут один вопрос ,как узнать количество запущенных одинаковых приложений в системе . Дело в том ,что определить есть ли такое же приложение можно с помощью API функции FindWindow(...),а вот определить количество ...
С уважением ZX-CodeR...




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 29 марта 2007 17:39
· Личное сообщение · #2

CreateToolHelpSnapshot, далее проходишься по процессам с пом. Process32Next.



Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 29 марта 2007 17:41 · Поправил: v0id2k
· Личное сообщение · #3

Если пишешь свою прогу:

CreateMutex для создания мутекса
OpenMutec для проверки

Пример:
if OpenMutex(MUTEX_ALL_ACCESS, TRUE, 'TestMutex') <> 0 then
begin
MessageBox(0, 'Only one copy can be run!', 'TestProject', MB_OK + MB_ICONWARNING);
Application.Terminate;
end;
CreateMutex(0, TRUE, 'TestMutex');

-----
xchg dword [eax], eax




Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 29 марта 2007 17:47
· Личное сообщение · #4

попробуй поискать по количеству одинаковых процессов в системе



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 29 марта 2007 18:00
· Личное сообщение · #5

ZX-CodeR
wasm.ru/article.php?article=1021003 =)




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 29 марта 2007 20:19
· Личное сообщение · #6

RZX-CodeR, как и написал народ, тут два ответа. Зависит от того что ты хочешь делать. Если узнать загружена ли твоя апликуха (изнутри то-есть) - то делай системный mutex. Если найти все процессы какой-то проги - то через ToolHelp.




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 29 марта 2007 20:24
· Личное сообщение · #7

Ты бы хоть написал на каком языке кодишь...
Если на дельфях, по в делфи ворлд было несколько статей...я точно помню...

-----
iNTERNATiONAL CoDE CReW




Ранг: 23.1 (новичок), 3thx
Активность: 0.010
Статус: Участник

Создано: 29 марта 2007 21:48
· Личное сообщение · #8

А если задача состоит в том ,что найти все одинаковые приложения у которых уже созданы окна, ведь процессов может быть 10, а окон 5, так как же их сосчитать?
Да и ещё , я на сях код пишу.
С уважением ZX-CodeR...

PS: Sprectrum forever




Ранг: 68.0 (постоянный), 6thx
Активность: 0.060
Статус: Участник

Создано: 29 марта 2007 21:57 · Поправил: Dr3d
· Личное сообщение · #9

Приведу пример для вывода в Memo всех процессов (почти всех, кто хочет спрятаться, тот спрятается)
На форму кладешь Memo и Button
По нажатии не кнопке, Memo заполняется именами процессов. При желании можно вывести и pID и т.д. и т.п.
//-------------------------------------------------------------------- -------

#include <vcl.h>
#include <tlhelp32.h>
#pragma hdrstop

#include "Unit1.h"
//-------------------------------------------------------------------- -------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-------------------------------------------------------------------- -------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//-------------------------------------------------------------------- -------
void __fastcall TForm1::Button1Click(TObject *Sender)
{

HANDLE hSnapshot;
PROCESSENTRY32 Entry;

hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
Entry.dwSize = sizeof(Entry);
Process32First(hSnapshot, &Entry);
while(Process32Next(hSnapshot, &Entry))
{
Memo1->Lines->Add(Entry.szExeFile);
}
}
//---------------------------------------------------------------------------




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 30 марта 2007 16:41
· Личное сообщение · #10

ZX-CodeR пишет:
А если задача состоит в том ,что найти все одинаковые приложения у которых уже созданы окна, ведь процессов может быть 10, а окон 5, так как же их сосчитать?

В Дас Виндасе теоритически каждая апликуха имеет окошко, поэтому енумь окошки, получай пиды
(EnumWindows, GetWindowThreadId и т.п. посмотри сурцы Процесс-Вьюверов).

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 23.1 (новичок), 3thx
Активность: 0.010
Статус: Участник

Создано: 30 марта 2007 20:06
· Личное сообщение · #11

AlexZ спасиб те друг...


 eXeL@B —› Программирование —› Количество запусков
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати