HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #161  
Старый 25.06.2007, 11:27
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Никто не читает 1 пост топика и не хочет/не может разделять понятия вопроса по синтаксису языка и вопроса по реализации. Так вот эта тема для вопросов по синтаксису! Не надо тут спрашивать как реализовать какой-либо алгоритм на дельфи и уж тем более про винапи и прочие языконезависимые конструкции.
 
Ответить с цитированием

  #162  
Старый 27.06.2007, 23:53
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
Exclamation

Цитата:
Сообщение от k1m  
Вопрос:
Где скачать?
Учебник с примерами обезательно примеры (я начинающий)
И сам компилер и что там
www.delphiWorld.narod.ru -DelphiWorld
www.drkb.ru - Delphi Russian Knowleage Base

Где скачать не знаю... но советую:
А.Я. Архангельский Программирование в Delphi 7
И. Ю. БАЖЕНОВА Delphi 7 САМОУЧИТЕЛЬ ПРОГРАММИСТА
Культин Н. Б. Основы программирования в Delphi 7
С. И. Бобровский. Delphi 7. Учебный курс
Шпак Ю. А. Delphi 7 на примерах
И конечно же Библию Delphi...

И качай Delphi 7 (моя любимая версия ) borland.com

(совет: изучай лучше C# )
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #163  
Старый 28.06.2007, 02:56
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

> Сообщение от zl0y
Подскажите как по имени процесса получить его Pid

у нескольких процессов может быть одинаковое "имя", получить PID нескольких процессов нельзя.
 
Ответить с цитированием

  #164  
Старый 28.06.2007, 11:56
MagNomeTik
Познающий
Регистрация: 11.01.2007
Сообщений: 72
Провел на форуме:
538762

Репутация: 102
Отправить сообщение для MagNomeTik с помощью ICQ
По умолчанию

Цитата:
Сообщение от zl0y
Подскажите как по имени процесса получить его Pid
Вот тебе код

Цитата:
function GetProcessId(pName: PChar): dword;
var
Snap: dword;
Process: TPROCESSENTRY32;
begin
Result := 0;
Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if Snap <> INVALID_HANDLE_VALUE then
begin
Process.dwSize := SizeOf(TPROCESSENTRY32);
if Process32First(Snap, Process) then
repeat
if lstrcmpi(Process.szExeFile, pName) = 0 then
begin
Result := Process.th32ProcessID;
CloseHandle(Snap);
Exit;
end;
until not Process32Next(Snap, Process);
Result := 0;
CloseHandle(Snap);
end;
end;
Вводишь имя, получаешь Pid...
 
Ответить с цитированием

  #165  
Старый 28.06.2007, 14:39
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

не надо пиздить! возможно существование нескольких процессов с одним именем
я отвечаю на конкретный вопрос. он некорректен.
 
Ответить с цитированием

  #166  
Старый 28.06.2007, 14:52
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

:d
__________________


snow white world wide
 
Ответить с цитированием

  #167  
Старый 28.06.2007, 15:09
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
Post

Объявляем тип:
Код:
TPIDs = array of DWORD;
Код:
function GetProcessIDs(ProcessName:PChar):TPIDs;
var
     ResultLen,hSnapshot:DWORD;
     PE:TPROCESSENTRY32;
begin
Result:=nil;
hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if hSnapshot=INVALID_HANDLE_VALUE then exit;

PE.dwSize:=SizeOf(TPROCESSENTRY32);
if not Process32First(hSnapshot,PE) then exit;

ResultLen:=0;
repeat
        if lstrcmpi(PE.szExeFile,ProcessName)=0 then
                begin
                        inc(ResultLen);
                        SetLength(Result,ResultLen);
                        Result[ResultLen-1]:=PE.th32ProcessID;
                end;
until not Process32Next(hSnapshot,PE);
CloseHandle(hSnapshot);
end;
Юзать:
Код:
...........
var i:integer;
    PIDs:TPIDs;
begin
        PIDs:=GetProcessIDs('svchost.exe');
 if PIDs=nil then exit;
        lb.Items.Clear;
        for i:=0 to Length(PIDs)-1 do
         lb.Items.Add(IntToStr(PIDs[i]));
end;
....................

Последний раз редактировалось NetMan; 28.06.2007 в 15:50..
 
Ответить с цитированием

  #168  
Старый 29.06.2007, 09:18
kuka
Новичок
Регистрация: 19.04.2007
Сообщений: 3
Провел на форуме:
37368

Репутация: 1
По умолчанию

Народ подскажите плиз как можно организовать перехват событий мышки в любом приложении?
 
Ответить с цитированием

  #169  
Старый 29.06.2007, 11:21
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме:
1089794

Репутация: 134
По умолчанию

 
Ответить с цитированием

  #170  
Старый 29.06.2007, 23:59
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Код:
function SetWindowsHookEx(idHook: integer; lpfn: TFNHookProc;
hmod: HINST; dwThreadID: DWORD): HHOOK; stdcall;

 


idHook: описывает тип устанавливаемой ловушки. Данный параметр может принимать одно из следующих значений: 

Константа Описание 
WH_CALLWNDPROC Фильтр процедуры окна. Функция-фильтр ловушки вызывается, когда процедуре окна посылается сообщение. Windows вызывает этот хук при каждом вызове функции SendMessage. 
WH_CALLWNDPROCRET Функция-фильтр, контролирующая сообщения после их обработки процедурой окна приемника. 
WH_CBT В литературе встречаются следующие названия для этого типа фильтров: "тренировочный" или "обучающий". Данная ловушка вызывается перед обработкой большинства сообщений окон, мыши и клавиатуры. 
WH_DEBUG Функция-фильтр, предназначенная для отладки. Функция-фильтр ловушки вызывается перед любой другой ловушкой Windows. Удобный инструмент для отладки и контроля ловушек. 
WH_GETMESSAGE Функция-фильтр обработки сообщений. Функция-фильтр ловушки вызывается всегда, когда из очереди приложения считывается любое сообщение. 
WH_HARDWARE Функция-фильтр, обрабатывающая сообщения оборудования. Функция-фильтр ловушки вызывается, когда из очереди приложения считывается сообщение оборудования. 
WH_JOURNALPLAYBACK Функция-фильтр вызывается, когда из очереди системы считывается любое сообщение. Используется для вставки в очередь системных событий. 
WH_JOURNALRECORD Функция-фильтр вызывается, когда из очереди системы запрашивается какое-либо событие. Используется для регистрации системных событий. 
WH_KEYBOARD Функция-фильтр "обработки" клавиатуры. Наверное, наиболее часто используемый тип ловушки. Функция-фильтр ловушки вызывается, когда из очереди приложения считывается сообщения wm_KeyDown или wm_KeyUp. 
WH_KEYBOARD_LL Низкоуровневый фильтр клавиатуры. 
WH_MOUSE Функция-фильтр, обрабатывающая сообщения мыши. Функция-фильтр ловушки вызывается, когда из очереди приложения считывается сообщение мыши. 
WH_MOUSE_LL Низкоуровневый фильтр мыши. 
WH_MSGFILTER Функция-фильтр специального сообщения. Функция-фильтр ловушки вызывается, когда сообщение должно быть обработано диалоговым окном приложения, меню или окном приложения. 
WH_SHELL Фильтр приложения оболочки. Функция-фильтр ловушки вызывается, когда создаются и разрушаются окна верхнего уровня или когда приложению-оболочке требуется стать активным. 
    

Что бы упредить шквал писем в мой адрес, скажу сразу, что каждый, из вышеперечисленных, типов имеет свои особенности, о которых каждый может прочитать в SDK, MSDN или же найти их описание в Internet-e. 

lpfn : это адрес функции-фильтра, которая является функцией обратного вызова. Функция-фильтр имеет тип TFNHookProc, определение которого выглядит следующим образом: 



TFNHookProc = function (code: Integer; wparam: WPARAM;
lparam: LPARAM): LRESULT stdcall;

 


Значение каждого из параметров функции-фильтра ловушки изменяется в зависимости от типа устанавливаемой ловушки. За более подробными разъяснениями значений параметров обращайтесь к справке по Win32 API. 

hmod 
данный параметр должен иметь значение hInstance в EXE или DLL-файлах, в которых содержится функция-фильтр ловушки (напомню, что это функция обратного вызова). Если речь идёт о глобальных ловушках, то данный параметр может принимать только дескриптор DLL, из которой устанавливается ловушка. Причина очевидна - EXE-файл не может быть отображён на АП другого процесса, тогда как DLL-фалы специально созданы для этого. Подчеркну это обстоятельство ещё раз: глобальные ловушки могут располагаться только в DLL, но никак не в EXE файлах ! 
dwThreadID 
данный параметр идентифицирует поток, с которым будет связана ловушка. Мы ведём речь о глобальных ловушках, поэтому данный параметр будет всегда равен 0, что означает, что ловушка будет связана со всеми потоками в системе. 
Возвращаемое значение 
функция SetWindowsHookEx возвращает дескриптор установленной ловушки, именно этот дескриптор нам и надо будет сделать доступным ВСЕМ экземплярам отображаемой DLL. Как это сделать я расскажу после небольшого примера, показывающего на практике необходимость сохранять дескриптор ловушки для того, что бы суметь вызвать предыдущую ловушку в цепочке. 
Замечание: 

при установке двух ловушек разного типа, система создаст две цепочки ловушек. Т.е. каждому типу ловушки соответствует своя цепочка. Так при установке ловушки типа WH_MOUSE и WH_KEYBOARD обе эти ловушки будут находиться в разных цепочках и, соответственно, будут обрабатываться независимо друг от друга. 
Для удаления функции-фильтра из очереди необходимо вызвать функцию UnhookWindowsHookEx. Данная функция принимает дескриптор ловушки, полученный функцией SetWindowsHookEx. Если удаление не удалось, то функция возвращает ноль, иначе не нулевое значение. В дальнейшем, под выражением "снять ловушку" будем подразумевать удаление функции-фильтра.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ