Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Нужно при щелчке на рабочем столе вывести звезду   Найти похожие ветки 

 
_student   (2004-06-27 12:30) [0]

Ну нарисовать звезду на рабочем столе я смог. А как сделать чтобы именно в том месте где я щелкнул. А? Дяденьки, не откажите бедному студенту.


 
Anatoly Podgoretsky ©   (2004-06-27 12:40) [1]

Ну у тебя и учебные задания, а учиться не пробовал?


 
DrPass ©   (2004-06-27 15:08) [2]


> Нужно при щелчке на рабочем столе вывести звезду

А серп и молот слабо?


 
SammIk ©   (2004-06-27 15:26) [3]

Хук


 
jack128 ©   (2004-06-27 16:26) [4]


> Хук
Апперкорт


 
Cardinal ©   (2004-06-27 18:08) [5]

ammIk ©   (27.06.04 15:26) [3]

А потом при рисовании прибавляй полученные координаты к координатам при рисовании звезды


 
connect   (2004-06-27 18:21) [6]

Плохие дяденьки попались


 
Ajax ©   (2004-06-27 22:34) [7]

Я чего-то не понимаю в чем проблема??? Звезду свою ты вроде уже нарисовал... Координаты мыши получить - если так, то GetCursorPos тебе поможет... Все равно не монимаю затруднения...


 
Sliski Slimak   (2004-06-27 22:39) [8]

Или тебе сразу готовый код написать? Тогда опубликуй свою звезду...


 
VID ©   (2004-06-27 23:13) [9]

GetCursorPos


 
connect   (2004-06-28 20:53) [10]

Я тут кое-что наваял. Можно ли эту бредятину как-нибудь оптимизировать?
Спасибо

dll-ка
library Project1;

uses
 windows,
 messages;

var   h : THandle;

function hook(c, wParam, lParam : integer): Lresult; stdcall;
const r1=10;
     r2=20;
var
 w:THandle;
 hw:hwnd;
 dc:hdc;
 points:TPoint;
 a:real;
 i,x1,y1,x2,y2,xc,yc,r3:integer;

begin
   if c >= 0
     then
       begin
         if wparam=WM_LBUTTONUP
           then
             begin
               dc:=getdc(0);
               GetCursorPos(points);
               x1:=round(cos(0*pi/180)*r2);
               y1:=round(sin(0*pi/180)*r2);
               MoveToEx(dc,points.x,points.y,0);
               for i:=1 to 10 do
                  begin
                    a:=i*(360/(10));
                    if not odd(i) then r3:=r2 else r3:=r1;
                    x2:=round(cos(a*pi/180)*r3);
                    y2:=round(sin(a*pi/180)*r3);
                    LineTo(dc,450+x2,250+y2);
                  end;
             end;
       end
     else
       begin
         result := CallNextHookEx(h,c,wParam,lParam);
         exit;
       end;
   result := CallNextHookEx(h,c,wParam,lParam);
end;

procedure sethook;
begin
 h:= SetWindowsHookEx(WH_MOUSE, @hook, hInstance, 0);
end;

procedure removehook;
begin
 UnhookWindowsHookEx(H);
end;

exports
 sethook    index 1  name "sethook",
 removehook index 2  name "removehook";
end.


Программа

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure FormPaint(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure sethook; far; external "project1.dll";
procedure removehook; far; external "project1.dll";

procedure TForm1.FormCreate(Sender: TObject);
begin
 sethook;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 removehook;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
Hide;
end;

end.


 
Rouse_ ©   (2004-06-28 21:09) [11]

Первоначально не мешало бы почитать вот это
http://www.delphimaster.ru/articles/hooks/index.html
и понять, почему ТАК писать нельзя...



Страницы: 1 вся ветка

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
14-1088395865
ИМХО
2004-06-28 08:11
2004.07.18
Еще раз о спаммерах


3-1088270520
YA
2004-06-26 21:22
2004.07.18
Ограничение доступа к записи таблицы


1-1089185904
Ларра
2004-07-07 11:38
2004.07.18
Передача данных из базы данных в EXCEL


1-1088754663
NeyroSpace
2004-07-02 11:51
2004.07.18
Можно ли при помощи TApplication организовать главный цикл


14-1088509025
blackweber
2004-06-29 15:37
2004.07.18
Win98 - сеть - WinXP