|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
создание программы
помогите пожалуста
хочу написать прогу в delphi 7 а как незнаю в школе учили тока в паскале абс=) вот это полу паскаляСловестный код программы: Код:
program unity var c,n:real; r:integer; begin тут код праграмки которая узнаёт цвет пикселя который находиться под курсором мышки в момент нажатия и записыват код цвета в переменную: с; r:=1; while r=1 do //если верно то цикл делаеться, сделал так чтоб программа работала всегда while n=c do // будет ждать пока неизмениться цвет пикселя begin тут код програмы который узнаёт какой щас цвет у того пикселя (на который раньше кликнули мышкой) и записывает в переменную: n; end; while n<>c do //когда цвет пикселя изменился будет жать до тех пор пока он нестанет такимже begin тут код програмы который узнаёт какой щас цвет у того пикселя (на который раньше кликнули мышкой) и записывает в переменную: n; тут код програмки которая жмёт на кнопку (например на F1) end; end; end. вот описание программы которая мне нужна: программы жмёт на какуюто кнопку(например F1) (желательно чтоб эту кнопку можно было выбрать в окне программы , но можно и даже лучше чтоб жала то что праписано в её коде (так я быстрей мб пойму что там и кчему)) жмёт до тех пор пока у задоного пикселя цвет изменён (т.е цвет пикселя отличаеться от того цвета который бал раньше) как тока цвет стал такойже програма перестаёт жать до тех пор пока цвет неизмениться сново желательно поподробней объяснить как такое сделать в delphi зарание спасибо |
#2
|
|||
|
|||
выложите кто хотябы какой нить исходник кликера,
самого простого например который жмёт тока клавишу "м" с интервалом в 1 секу я там посмотрю мб разбирусь (желательно чтоб с каментариями было) вот понял что для эмуляции нажатия иотпускания надо юзать SimulateKeystroke() тока как это всё оформлять Последний раз редактировалось unity, 15.07.2011 в 00:10. |
#3
|
||||
|
||||
Эх, если бы всё выше изложенное да на более понятном русском языке, то и помочь было бы легче.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
|||
|
|||
дайте код кликера на delphi
самого простого который просто жмёт одну кнопку (например кнопку F3) с интервалом в 1 секунду я посмотрю и буду задавать вопросы по тем аспектам которых я непонял мне тут писали: Код:
procedure SimulateKeyDown(Key : byte); begin keybd_event(Key, 0, 0, 0); end; procedure SimulateKeyUp(Key : byte); begin keybd_event(Key, 0, KEYEVENTF_KEYUP, 0); end; я вставил в delphi 7 и нечё у мя незаработало мне надо посатреть хоть как там что оформлять |
#5
|
||||
|
||||
Дали процедуры, а кто их будет вызывать? Вызывай их хотя бы по таймеру.
P.S. Даже в таком случае визуального результата видно не будет. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
|||
|
|||
во у мя когда открываеш delphi такой код по умолчанию:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end. вопрос куда мне эти процедуры пихать? какя вобще структура кода должна быть? |
#7
|
||||
|
||||
Цитата:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } procedure SimulateKeyDown(Key : byte); procedure SimulateKeyUp(Key : byte); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.SimulateKeyDown(Key : byte); begin keybd_event(Key, 0, 0, 0); end; procedure TForm1.SimulateKeyUp(Key : byte); begin keybd_event(Key, 0, KEYEVENTF_KEYUP, 0); end; end. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
|||
|
|||
а как их вазвать например чтоб при нажатии кнопки оно
стало исполняться что надо прописать? ат чё тут тупо капировать и вставлять перед end. чтоб чтото добавить в код? |
#9
|
||||
|
||||
Unity, Админ закрой глаза, не выпендривайся и пиши нормально, тем более по стилю видно, что с русским языком знаком.
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#10
|
|||
|
|||
Да надо ему какую-то кнопку нажимать в какой-нить игре.
Признак - покуда цвет пиксела под курсором (скорее, в какой-то точке экрана) не изметиться. |
#11
|
||||
|
||||
Открываем delphi, кидаем на форму Button из вкладки стандарт, кликаем двойной щелчёк мыши по кнопке. Появится процедура в неё вставляем код:
Код:
procedure TForm1.Button1Click(Sender: TObject); begin Sleep(3000); // ждём 3 сек. keybd_event(VK_F1, 0, 0, 0); //нажимаем F1 keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); // отпускаем F1 end; Как проверить нажатие F1 думаю догадаетесь. Для второго вопроса: получение цвета пикселя, надо изучить основы Delphi (Canvas, пару API ф-нц). Код конечно можно скинуть но вряд ли вы чтото там поймёте. И цвет с: TColor; а не Real; If end Then begin; Последний раз редактировалось AND_REY, 15.07.2011 в 10:41. |
#12
|
||||
|
||||
Цитата:
В паскале ABC нет VCL, а в Delphi всё не нём основано, и без знаний хотя бы основ оного, трудно написать даже простейшую программу. Цитата:
Последний раз редактировалось Viajero, 15.07.2011 в 11:18. |
#13
|
|||
|
|||
Цитата:
спс получилось ну я стал улучшать программу сделал так: Код:
procedure TForm1.btn1Click(Sender: TObject); begin while 1=1 do begin Sleep(3000); // ждём 3 сек. keybd_event(VK_F1, 0, 0, 0); //нажимаем F1 keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); // отпускаем F1 end; end; end. вапрос как сделать кнопку стоп? (я вот думал вписать в кнопку чтото чтоб пресваивало k значение не 1 , а тут сделать не while 1=1 do а while k=1 do тока я незнаю как тут это сделать (как тут переменую добовлять)) так чёто пытался делать вот : Код:
unit ststop; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) start: TBitBtn; stop: TBitBtn; procedure startClick(Sender: TObject); procedure stopClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.startClick(Sender: TObject); var k:Integer; begin k:=1; while k=1 do begin Sleep(3000); // ждём 3 сек. keybd_event(VK_F1, 0, 0, 0); //нажимаем F1 keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); // отпускаем F1 end; end; procedure TForm1.stopClick(Sender: TObject); var k:integer; begin k:=k+1; end; end. тока после того как нажму старт прога зависает (она кликает но стоп нажать нельзя и в деспетчере задач пишет что программа неотвечает) Последний раз редактировалось unity, 15.07.2011 в 14:10. |
#14
|
||||
|
||||
Вкладка System компонент Timer добавь
Код:
procedure TForm1.Timer1Timer(Sender: TObject); begin keybd_event(VK_F1, 0, 0, 0); // нажатие keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); // отпускание end; procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Interval:= 3000; // интервал Timer1.Enabled:= Not(Timer1.Enabled); // вкл / выкл end; If end Then begin; |
#15
|
|||
|
|||
Цитата:
получилось, а что значат эти нули? как интервал задавать вручную с окна программы? как вставлять переменные? Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) tmr1: TTimer; btn1: TBitBtn; procedure tmr1Timer(Sender: TObject); procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; d:Integer; implementation {$R *.dfm} procedure TForm1.tmr1Timer(Sender: TObject); begin keybd_event(VK_F1, 0, 0, 0); // нажатие keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); // отпускание end; procedure TForm1.btn1Click(Sender: TObject); begin Tmr1.Interval:= d; // интервал Tmr1.Enabled:= Not(Tmr1.Enabled); // вкл / выкл end; end. как сделать чтоб в програми можно было изменять значение D (интервала) Последний раз редактировалось unity, 15.07.2011 в 16:07. |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|