Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > движение курсора вне форм


Автор: viktornk 4.7.2008, 22:01
Здравствуйте, подскажите пожалуйста как заставить курсор мыши двигать вне формы на рабочем столе. Допустим передвинул курсор в точку и сочетанием клавишь запомнил даную позицию. После этого отодвинул мышь в другую точку и сочетанием других клавишь заставил курсор переместится в ту позицию которую запомнили.

P.S. Изучаю возможности языка. Заранее благодарен за помощ

Автор: THandle 4.7.2008, 22:03
Цитата(viktornk @  4.7.2008,  23:01 Найти цитируемый пост)
P.S. Изучаю возможности языка. Заранее благодарен за помощ 


Запоминаешь позиции курсора в  том же типе TPoint. Потом, когда требуется, передвигаешь на это место функцией SetCursorPos.

Добавлено через 1 минуту и 35 секунд
Вижу что не первая тема твоя по данной теме(ну написал...), если что-то не понятно, то уточняй.

Автор: viktornk 4.7.2008, 22:12
Дело в том что я пока что чайник в дельфи. Хотел на примере увидеть как можно управлять курсором без всяких форм. И возможно ли чтобы программа следила за мышью, и перемещала курсор туда куда бы ты захотел независимо что загружено, ехплорер или другая программа.
Спасибо за ответ.

Автор: THandle 4.7.2008, 22:18
ОК. Вот пример самый элементарный:

Положи на форму таймер(закладка System, TTimer). Щелкни на нем дважды. В появившемся обработчике пиши:

Код

SetCursorPos(Random(1280), Random(1024));


Вид обработчика полностью:

Код

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  SetCursorPos(Random(1280), Random(1024));
end;


Запускай программу.

Каждую секунду курсор будет помещаться в случайную точку экрана.

Уже отсюда отталкиваясь делаем то что требуется дальше. Что-то не понятно - спрашивай тут.


Цитата(viktornk @  4.7.2008,  23:12 Найти цитируемый пост)
Дело в том что я пока что чайник в дельфи.


Тогда надо почитать книжку. лично я советую:

http://www.delphilab.ru/content/view/17/46/

Автор: viktornk 4.7.2008, 22:28
Цитата(THandle @ 4.7.2008,  22:18)
ОК. Вот пример самый элементарный:

Положи на форму таймер(закладка System, TTimer). Щелкни на нем дважды. В появившемся обработчике пиши:

Код

SetCursorPos(Random(1280), Random(1024));


Вид обработчика полностью:

Код

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  SetCursorPos(Random(1280), Random(1024));
end;


Запускай программу.

Каждую секунду курсор будет помещаться в случайную точку экрана.

Уже отсюда отталкиваясь делаем то что требуется дальше. Что-то не понятно - спрашивай тут.


Цитата(viktornk @  4.7.2008,  23:12 Найти цитируемый пост)
Дело в том что я пока что чайник в дельфи.


Тогда надо почитать книжку. лично я советую:

http://www.delphilab.ru/content/view/17/46/

Огромное спасибо. Пример  интересен. Но опять же объект создан на форме. А можно даное проделать вне формы путем написания чистого кода?

Автор: THandle 4.7.2008, 22:35
viktornk, сделать можно все. Например:
Код


program Project1;

uses Windows, Messages;

procedure Timer;
begin
  SetCursorPos(Random(1280), Random(1024));
end;

var
  Msg : TMsg;
begin
  SetTimer(0, 0, 1000, @Timer);
  while GetMessage(Msg, 0, 0, 0) do
    DispatchMessage(Msg);
end.


Но смысл?

Если это так:
Цитата(viktornk @  4.7.2008,  23:12 Найти цитируемый пост)
Дело в том что я пока что чайник в дельфи. 


то пока не стоит рассматривать такие примеры, так как они могут быть не совсем понятны...
Можно и с использованием обычного TTimer, только динамически созданного...
Была тут тема... Сейчас найду...

Добавлено через 1 минуту и 15 секунд
Вот, посмотри там примеры и прикрути к ним SetCursorPos:

http://forum.vingrad.ru/forum/topic-206569.html

Автор: viktornk 4.7.2008, 22:41
Огромное спасибо, пробую.

Автор: THandle 7.7.2008, 05:46
Лиходей, уж тогда лучше нашу, родную:

http://drkb.ru

 smile 

Автор: VICTAR 7.7.2008, 10:13
THandle, а ты где здесь Лиходейя то увидел?  smile  smile 

Автор: ЛЕФ 9.7.2008, 12:45
есть две АПИшки SetCursorPos(x,y) -  устанавливает курсор в точку х,у
и GetCursorPos - которая возвращает текущее положение курсора. Стало быть план действий таков - сначало возвращаеш координаты курсора в переменые х и у, а потом  устанавливаеш курсор по этим переменным, все просто. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)