Посл.ответ |
Сообщение |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 29 марта 2007 17:29 · Личное сообщение · #1
 Здаров крэкеры !!!
У меня тут один вопрос ,как узнать количество запущенных одинаковых приложений в системе . Дело в том ,что определить есть ли такое же приложение можно с помощью API функции FindWindow(...),а вот определить количество ...
С уважением ZX-CodeR...
| Сообщение посчитали полезным: |
|
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 29 марта 2007 17:39 · Личное сообщение · #2
CreateToolHelpSnapshot, далее проходишься по процессам с пом. Process32Next.
| Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.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.03↘0 Статус: Участник
|
Создано: 29 марта 2007 17:47 · Личное сообщение · #4
попробуй поискать по количеству одинаковых процессов в системе
| Сообщение посчитали полезным: |
Ранг: 260.2 (наставник) Активность: 0.19↘0 Статус: Участник
|
Создано: 29 марта 2007 18:00 · Личное сообщение · #5
ZX-CodeR
wasm.ru/article.php?article=1021003 =)
| Сообщение посчитали полезным: |
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 29 марта 2007 20:19 · Личное сообщение · #6
R ZX-CodeR, как и написал народ, тут два ответа. Зависит от того что ты хочешь делать. Если узнать загружена ли твоя апликуха (изнутри то-есть) - то делай системный mutex. Если найти все процессы какой-то проги - то через ToolHelp.
| Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 29 марта 2007 20:24 · Личное сообщение · #7
Ты бы хоть написал на каком языке кодишь...
Если на дельфях, по в делфи ворлд было несколько статей...я точно помню...
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 29 марта 2007 21:48 · Личное сообщение · #8
А если задача состоит в том ,что найти все одинаковые приложения у которых уже созданы окна, ведь процессов может быть 10, а окон 5, так как же их сосчитать?
Да и ещё , я на сях код пишу.
С уважением ZX-CodeR...
PS: Sprectrum forever
| Сообщение посчитали полезным: |
 Ранг: 68.0 (постоянный), 6thx Активность: 0.06↘0 Статус: Участник
|
Создано: 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.22↘0 Статус: Участник UPX Killer -d
|
Создано: 30 марта 2007 16:41 · Личное сообщение · #10
ZX-CodeR пишет:
А если задача состоит в том ,что найти все одинаковые приложения у которых уже созданы окна, ведь процессов может быть 10, а окон 5, так как же их сосчитать?
В Дас Виндасе теоритически каждая апликуха имеет окошко, поэтому енумь окошки, получай пиды
(EnumWindows, GetWindowThreadId и т.п. посмотри сурцы Процесс-Вьюверов).
----- Я медленно снимаю с неё UPX... *FF_User* | Сообщение посчитали полезным: |
Ранг: 23.1 (новичок), 3thx Активность: 0.01↘0 Статус: Участник
|
Создано: 30 марта 2007 20:06 · Личное сообщение · #11
AlexZ спасиб те друг...
| Сообщение посчитали полезным: |