[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Никто не читает 1 пост топика и не хочет/не может разделять понятия вопроса по синтаксису языка и вопроса по реализации. Так вот эта тема для вопросов по синтаксису! Не надо тут спрашивать как реализовать какой-либо алгоритм на дельфи и уж тем более про винапи и прочие языконезависимые конструкции.
     
  2. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    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# ;) )
     
    1 person likes this.
  3. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    > Сообщение от zl0y
    Подскажите как по имени процесса получить его Pid

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

    MagNomeTik Elder - Старейшина

    Joined:
    11 Jan 2007
    Messages:
    38
    Likes Received:
    45
    Reputations:
    1
    Вот тебе код

    Вводишь имя, получаешь Pid...
     
  5. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    не надо пиздить! возможно существование нескольких процессов с одним именем
    я отвечаю на конкретный вопрос. он некорректен.
     
  6. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,300
    Reputations:
    327
  7. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Объявляем тип:
    Code:
    TPIDs = array of DWORD;
    Code:
    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;
    Юзать:
    Code:
    ...........
    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;
    ....................
     
    #167 NetMan, 28 Jun 2007
    Last edited: 28 Jun 2007
  8. kuka

    kuka New Member

    Joined:
    19 Apr 2007
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Народ подскажите плиз как можно организовать перехват событий мышки в любом приложении?
     
  9. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
  10. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Code:
    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. Если удаление не удалось, то функция возвращает ноль, иначе не нулевое значение. В дальнейшем, под выражением "снять ловушку" будем подразумевать удаление функции-фильтра. 
    
    
    
     
  11. Gil

    Gil New Member

    Joined:
    17 Jun 2007
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    Люди, такой трабл, надо отправить мыло с компа через дельфи, юзаю инди библиотеку, вроде все прально, и примеры качал, а хер, всегда сокет еррор и все. Может есть еще какие-нибудь способы отправить, не через смтп. Ни у кого такого не было?
     
  12. Gil

    Gil New Member

    Joined:
    17 Jun 2007
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    Все мля перепробовал, все компоненты, готовые исходники, уже скомпиленные проги, ниче не помогает, все сокет еррор и все, ну не коннектиться к серваку... может кто писал для себя, поделитесь....
     
  13. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    держи... своего рода трой... написан на api + используется комп. coban2k'a - RASDescrypt
    мыло шлет! ))
    http://slil.ru/24579115
    сорцы...
     
  14. Gil

    Gil New Member

    Joined:
    17 Jun 2007
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    Рульная кстати вещь, пасиб W!z@rD ;)
     
  15. Delphi07

    Delphi07 New Member

    Joined:
    26 Jun 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Помогите плиз. Как из Edit1, в котором находиться URL файла, допустим http://site.ru/file.exe достать текст имя файла, в данном случае file.exe , и прописать в Edit2.
     
  16. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
  17. Delphi-X

    Delphi-X Banned

    Joined:
    20 May 2007
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    а как сделать например если со страницы мне приходит

    <h>tra tra tra</h>

    а в проге вылазило бы окошко. к примеру: вы ввели неверные данные!
     
  18. Gil

    Gil New Member

    Joined:
    17 Jun 2007
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0
    Ну это по-моему чисто со строкой надо работать(вырезаешь, проверяешь), прописывать какие комбинации неверны, а лучше, если ты скажем пишешь что-то типа хоумсайта то забить готовые теги, и чтоб они выдавались тебе тогда когда начинаешь писать. и вообще как понять со страницы приходят? ты написал прогу, которая тебе выдает исходник страницы чтоль?
     
  19. Akelth

    Akelth New Member

    Joined:
    27 Apr 2007
    Messages:
    10
    Likes Received:
    3
    Reputations:
    0
    W!z@rD, ответь на вопрос в аське плз!
     
  20. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    для начала неплохо бы было четко описать что тебе нужно, если я правильно понял тебе нужен обычный парсер строк.
     
Thread Status:
Not open for further replies.