[ 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. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    юзай обработку исключений. Под отладчиком (запуск из под делфи) ошибка будет светиться, но ты просто нажимай продолжить выполнение. А в уже нормально запущенной проге тогда не будет светиться она
    Code:
    try
     Memo1.Text:= IdHTTP1.Get('http://lofgdl.ru');
    except 
    // этот код выполнится если будет исключение (ошибка)
     showmessage('er'); // можно убрать, тогда ничего не будет происходить
    end;
    
     
    1 person likes this.
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    вообще через эту конструкцию обрабатываются любые исключения возвникающие в ходе выполнения какого либо кода.
    В частности URLDownloadToFile смотри что возвращает функция. Если вернула 0 - значит удачно скачался файл, любой другой ответ - код ошибки
     
  3. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    Form1.Close

    Столкнулся с проблемой когда выходишь из программы она закрывается не успевая воспроизвести звук как быть ?

    имеем такое :

    Code:
    PlaySound('SND4', 0, SND_RESOURCE or SND_ASYNC);
    form1.close;
     
  4. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    поставь SND_SYNC вместо SND_ASYNC чтобы прожка ждала когда отзвучит до конца звук.
    Или как вариант юзая SND_ASYNC - в событии CanClose или Close поставь паузу чтобы звук хоть чуть поиграл
     
  5. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    slesh ты великий человек !
     
    1 person likes this.
  6. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    Indy

    Как оказалось у меня в дельфи нет библиотеки indy у меня седьмая версия никак не могу найти в инете эту библиотеку кто может укажите откуда скачивать буду много благодарен
     
  7. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Они есть в 7 версии, но бывают не установленными. Для их установки сделаю следующее в меню:
    Component -> Install Packages...-> Add -> в папке delphi\bin выбирай и устанавливай bpl файлы. Там должны быть типа dclindy70.bpl
     
  8. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    Как получить список параметров нужного ключа по средствам Api?

    http://msdn.microsoft.com/en-us/library/ms724909(VS.85).aspx
    примеров не даёт
     
  9. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    т.е. тебе нужно поглядеть все значения ветки?
    Тебе случаем не эти функции нужны?
    RegEnumKey() - перечисление ключей
    RegEnumValue() - перечисление значений
     
    #2649 slesh, 5 Feb 2009
    Last edited: 5 Feb 2009
  10. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    slesh
    например я знаю имя ключа
    HKEY_CURRENT_USER\Software\WinRAR SFX

    нужно получить список его параметров

    тоесть
    D%%Program Files%WinRAR и
    D%%WINDOWS%system
     
  11. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    Всем здрасьте!
    Подскажите люди добрае как мне отследить запуск какого либо приложения в системе(не важно консольного или оконного), узнать его местонахождение и приостановить на некоторое время!
    Буду благодарен за пример, ибо про перехват функций в инете написанно очень много, но слишком много ненужных в моем случае букаф, которые мешают уловить суть!
     
  12. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Когдато я писал подобные вещи. Для 100% работы нужно писать драйвер. Это единственынй нормальный метод.
    Суть состоит в том, чтобы система сама уведомляла тебя о запуске процесса.
    Для этого делается следующе:

    VOID CreateProcessNotifyRoutine(IN HANDLE ParentId, IN HANDLE ProcessId, IN BOOLEAN Create)
    {
    ....-.-.-.-.-.........
    }
    PsSetCreateProcessNotifyRoutine(*CreateProcessNotifyRoutine, TRUE);
     
  13. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Ну, видимо
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     Key	: HKey;
     Buf	: array[0..1000] of char;
     Err, index	: longint;
     BufSize: Cardinal;
     begin
    BufSize := 1024;
    index:=0;
    Err:=RegOpenKey(HKEY_CURRENT_USER,
    'Software\WinRAR SFX',Key);
    while err=ERROR_SUCCESS  do  
    memo1.lines.add(strpas(Buf));
    inc(index);
    Err:=RegEnumValue(KEY, index, buf,BufSize, nil, nil, nil, nil);
    end;
     
    1 person likes this.
  14. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    FindeR, речь идет не о конкретных приложениях, а обо всех!
    slesh, спасибо погуглю в эту сторону!
     
  15. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    эм...я ZET36 отвечал
     
  16. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    FindeR, сорь видимо не очень внимательно прочитал!)
     
  17. ZET36

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

    Joined:
    8 Oct 2007
    Messages:
    250
    Likes Received:
    49
    Reputations:
    0
    FindeR Огромное спасибо, смысл понятен, немножко подправил код
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Key	: HKey;
    Buf	: array[0..1000] of char;
    Err, index	: longint;
    BufSize: Cardinal;
    zz: string;
    begin
    BufSize := 1024;
    index:=0;
    Err:=RegOpenKey(HKEY_CURRENT_USER,
    'Software\WinRAR SFX',Key);
    while err=ERROR_SUCCESS do
    begin
    if strpas(Buf)<>'' then memo1.lines.add(strpas(Buf));
    Err:=RegEnumValue(KEY, index, buf,BufSize, nil, nil, nil, nil);
    inc(index);
    end;
    end;
    
     
  18. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    Socket

    подскажите пожалуйста как мне отправить текст из memo1 с помощью UdpSocket1

    Code:
    UdpSocket1.SendTo:=(memo1.text)
    P.S так вот невыходит что то почемуто
     
  19. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    write, writeln...
    socket.send...
     
    1 person likes this.
  20. noveek

    noveek New Member

    Joined:
    29 Dec 2008
    Messages:
    45
    Likes Received:
    4
    Reputations:
    1
    Socket

    а можно немного попонятнее а то я только целиком коды понимаю
     
    1 person likes this.
Thread Status:
Not open for further replies.