[ 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. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Карась тут выкладывал контрол для работы с этим протоколом, все исходные коды в архиве...
    но правда он пишет на VB:)
     
    1 person likes this.
  2. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    ммм VB не очень люблю) хотелось бы на Delphi искал но ничего хорошего не нашел(


    все нашел) кому надо вот: http://forum.asechka.ru/showthread.php?t=97186
    там огромная темка про ето множество реализаций)
     
    _________________________
    #2122 KIR@PRO, 28 Sep 2008
    Last edited: 28 Sep 2008
  3. Larionich

    Larionich Member

    Joined:
    21 Sep 2008
    Messages:
    15
    Likes Received:
    5
    Reputations:
    0
    KIR@PRO, есть очень хорошая статься (10 уроков) по написанию icq2000 в делфи http://www.delphisources.ru/pages/faq/base/icq2000_1.html . Реализация на компонентах http://www.delphiexpert.ru/view_download.php?id=89 . Так же прочитай, много полезного пишут http://forum.asechka.ru/showthread.php?t=97186
     
  4. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    спасибо но возикает вопрос а там предусмотрено то что протокол Icq опять изменён???
     
    _________________________
  5. Twiddle

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

    Joined:
    6 Sep 2006
    Messages:
    13
    Likes Received:
    9
    Reputations:
    0
    Попробывал сделать с хотки но все бы хорошо но с игрой не работает. Блокнот закрывает. Все закрывает, но как только запускаешь игру - не хочет работать. Вообще ни как не реагирует.
    В чем может быть дело? подскажите или придется все же делать хук? Тогда помогите с хуком ибо уже неделю не могу сделать.
    PHP:
    unit Unit1;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    Dialogs,
      
    Tlhelp32;



    type
      TForm1 
    = class(TForm)
        
    procedure FormCreate(SenderTObject);
        
    procedure FormDestroy(SenderTObject);

      private
        { Private 
    declarations }
          
    procedure WMHotKey(var MsgTWMHotKey); message WM_HOTKEY;

      public
        { Public 
    declarations }
      
    end;
        const
        
    hotkey1 ord ('1');
        
    hotkey2 ord ('2');
        
    hotkey3 ord ('3');
        
    hotkey4 ord ('4');
        
    hotkey5 ord ('5');
        
    hotkey6 ord ('6');
        
    hotkey7 ord ('7');
        
    hotkey8 ord ('8');
        
    hotkey9 ord ('9');
        
    hotkey10 ord('0');

    var
      
    Form1TForm1;



    implementation

    {$R *.dfm}


    function 
    KillTask(ExeFileNamestring): integer;
    const
      
    PROCESS_TERMINATE=$0001;
    var
      
    ContinueLoopBOOL;
      
    FSnapshotHandleTHandle;
      
    FProcessEntry32TProcessEntry32;
    begin
      result 
    := 0;

      
    FSnapshotHandle := CreateToolhelp32Snapshot
                         
    (TH32CS_SNAPPROCESS0);
      
    FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
      
    ContinueLoop := Process32First(FSnapshotHandle,
                                     
    FProcessEntry32);

      while 
    integer(ContinueLoop) <> do
      
    begin
        
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
             
    UpperCase(ExeFileName))
         or (
    UpperCase(FProcessEntry32.szExeFile) =
             
    UpperCase(ExeFileName))) then
          Result 
    := Integer(TerminateProcess(OpenProcess(
                            
    PROCESS_TERMINATEBOOL(0),
                            
    FProcessEntry32.th32ProcessID), 0));
        
    ContinueLoop := Process32Next(FSnapshotHandle,
                                      
    FProcessEntry32);
      
    end;

      
    CloseHandle(FSnapshotHandle);
    end;

        function 
    EnumMiniProc (WdHWndParamLongInt): Booleanstdcall// Îáÿçàòåëüíî stdcall !!! 
    Begin
     
    If  Wd<>Form1.Handle then // åñëè ýòî íå íàøà ïðîãðàììà 
            
    If  IsWindowVisible(WDthen  // åñëè îêíî âèäèìî
                
    If  not IsIconic(WDthen      // åñëè îêíî íå ñâåðíóòî
                  
    If  isWindow(WDthen      // è âîîáùå ýòî - îêíî.
                     
    ShowWindow(WDSW_MINIMIZE); // ñâåðíåì åãî.

    end;

    procedure TForm1.WMHotKey(var MsgTWMHotKey);
      
    begin
      EnumWindows 
    (@EnumMiniProc0); // îòðàáàòûâàåì ñâîðà÷èâàíèå îêîí.
     
    Sleep(1000);
    KillTask('CabalMain.exe');

    end;

    procedure TForm1.FormCreate(SenderTObject);
    begin
      RegisterHotKey
    (Form1.Handle1,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey1);
      
    RegisterHotKey(Form1.Handle2,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey2);
        
    RegisterHotKey(Form1.Handle3,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey3);
          
    RegisterHotKey(Form1.Handle4,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey4);
            
    RegisterHotKey(Form1.Handle5,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey5);
              
    RegisterHotKey(Form1.Handle6,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey6);
                
    RegisterHotKey(Form1.Handle7,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey7);
                  
    RegisterHotKey(Form1.Handle8,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey8);
                    
    RegisterHotKey(Form1.Handle9,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey9);
                    
    RegisterHotKey(Form1.Handle10,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey10);

    end;

    procedure TForm1.FormDestroy(SenderTObject);
    begin
      UnRegisterHotKey
    (Form1.Handle,1);
       
    RegisterHotKey(Form1.Handle2,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey2);
        
    RegisterHotKey(Form1.Handle3,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey3);
          
    RegisterHotKey(Form1.Handle4,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey4);
            
    RegisterHotKey(Form1.Handle5,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey5);
              
    RegisterHotKey(Form1.Handle6,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey6);
                
    RegisterHotKey(Form1.Handle7,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey7);
                  
    RegisterHotKey(Form1.Handle8,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey8);
                    
    RegisterHotKey(Form1.Handle9,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey9);
                    
    RegisterHotKey(Form1.Handle10,MOD_SHIFT  MOD_ALT MOD_CONTROL,hotkey10);

    end;

    end.
     
  6. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Как вариант просто игра может отрубать все хоткеи. Что часто и делается. По этому нужно копать в сторону снятие этой херни
     
  7. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Народ киньте плз исходники авто-регеров к примеру на любом дфиге без капчи

    (делфи)

    спасибо!
     
    1 person likes this.
  8. eNGi

    eNGi New Member

    Joined:
    26 Sep 2008
    Messages:
    5
    Likes Received:
    2
    Reputations:
    0
    У меня твой код работал со всеми установленными игрушками, так что проверяй версию, что твоя прога (game) устанавливает свои хоткеи или сбрасывает существующие
    А может хоткей срабатывает, а твоя прога просто приложение завершить не могет?
    По созданию глобального хука отправил пример в личку.
     
    1 person likes this.
  9. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    Прошу помочь в постижении азов программирвания. Сделать надо на Паскале, чем проще , тем лучше.
    Дано: ax^2 + bx +c =0
    Найти корни.

    Вот что получается:
    Code:
    Program discriminant;
      Var G, f, d, i, k, l,n: integer;      
            M,O: real; 
     Begin readln (G, f, d, i)    
        G:=SQR(b);     
        f:=4*a;      
        d:=f*c;    
        i:=g-d;     
        if g>d;    
     then     k:=-b;      
                 l:=K+SQRT(i;      
                 n:=K-SQRT(i;      
                 m:=l/2;      
                 o:=l/2;      
       writeln (M, O)      
    else writeln (No decision)      
    end.
    Пробовал прогонять сие безобразие в Pascal ABC. Пишет " Ошибка: ожидался идентификатор, но "G" не обнаружено. Прошу подсказать в чем ошибка.
     
  10. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    мда....
     
  11. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    инопланитяне отакуют!!!!!!!!!!

    Писал закрытыми глазами?
    Странно, что компилятор не лопнул....

    Итак начнем :D :

    1)После readln забыл точку с запятой...
    2) a,b,c: не описаны(var a,b,c:real или integer)
    3)После if g>d точку с запятой не надо...
    4)l:=K+SQRT(i; забыл скобку закрыть
    5)Дальше тоже чепуха...
     
    4 people like this.
  12. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    Только начал изучать и в первый раз :p

    1, 2, 3, 4 разобрался. Никак не могу воткнуть как правильно записать оператор ветвления :confused:

    Теперь компилятор ругается на ";" перед else в операторе if.

    Program discriminant;
    Var G, f, d, i, k, l, n, a, b, c, M, o: real;
    Begin readln (G, f, d, i);
    G:=SQR(b);
    f:=4*a;
    d:=f*c;
    i:=g-d;
    if g>d
    then
    k:=-b;
    l:=K+SQRT(i);
    n:=K-SQRT(i);
    m:=l/2;
    o:=l/2;
    writeln (M, O);
    else writeln (No decision)
    end.
     
    #2132 Syntaxys, 30 Sep 2008
    Last edited: 30 Sep 2008
  13. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    это потому что там не надо ";" как ни странно:))))
     
    1 person likes this.
  14. eNGi

    eNGi New Member

    Joined:
    26 Sep 2008
    Messages:
    5
    Likes Received:
    2
    Reputations:
    0
    Условие в общем случае описывается:
    Code:
    if (условие_истинно) then действие_1
    else действие_2;
    
    или в операторных скобках begin end, если необходимо выполнить несколько действий сразу:
    Code:
    if (условие_истинно) then 
     begin
      действие_1;
      действие_2;
      действие_3;
     end
    else
     begin
      действие_1;
      действие_3;
     end;
    Перед "else" " ; " не ставится, а если хочешь во "WriteLn(No decision)" вывести текст, то необходимо заключить его в кавычки
    Code:
    WriteLn('No decision');
    Это по синтаксису... Кажется так :) , а также задумайся о книжке по Паскалю.
    С математикой сам разберешься.
     
    1 person likes this.
  15. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    WinApi:
    необходимо переместить курсор в мемо на самую последнюю строку не зная заренее количество строк.
     
  16. mfcn

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

    Joined:
    2 Mar 2007
    Messages:
    42
    Likes Received:
    11
    Reputations:
    0
    Syntaxys
    ИМХО темой ошибся. Лучше, наверное было бы сюда

    Вот решение:
    Code:
    program descriminant;
    var a,b,c,D:real;
    begin
    writeln('Solving a*x^2+b*x+c=0');
    write('Input a=');
    readln(a);
     write('Input b=');
     readln(b);
      write('Input c=');
      readln(c);
      D:=b*b-4*a*c;
      if D<0 then writeln('D<0 where are no solutions')
      else if D=0 then writeln('Solution is x1=',-b/2/a)
      else
      begin
        writeln('First solution is x1=',(-b+sqrt(D))/2/a);
        writeln('Second solution is x2=',(-b-sqrt(D))/2/a);
      end;
    end.
    
     
    1 person likes this.
  17. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    вроде работает

    Code:
    SendMessage(memo1.Handle,EM_SETSEL,0,-1);
    SendMessage(memo1.Handle,EM_SETSEL,-1,0);
    SetFocus(memo1.Handle);
     
  18. omen-6-6-6

    omen-6-6-6 New Member

    Joined:
    21 Jun 2008
    Messages:
    2
    Likes Received:
    2
    Reputations:
    0
    как сделать на дэлфи чтобы из программы можно было отправлять сообщение на мыло?
     
    1 person likes this.
  19. Jes

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

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
  20. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    После первого end требует точки, которую, соответственно ставить нельзя.

    mfcn, спасибо большое, но мне нужно не готовое халявное решение, а разобраться самому + код чем проще тем лучше, можно за счет "техничности", размера и тд. То есть больше переменных меньше операторов. Другой свой вопрос задам по ссылке приведенной Вами выше.
     
    #2140 Syntaxys, 1 Oct 2008
    Last edited: 1 Oct 2008
Thread Status:
Not open for further replies.