Текущий архив: 2006.10.29;
Скачать: CL | DM;
Вниз
Как сделать так что бы программа сделанная на делфи, работала вес Найти похожие ветки
← →
mr1Andersen (2006-10-03 23:47) [0]Как сделать так что бы программа сделанная на делфи, работала весь час, даже если окно самой программы не активное?
← →
Zeqfreed © (2006-10-03 23:52) [1]Запустить её.
← →
Германн © (2006-10-04 00:00) [2]Плюс к [1]
и до окончания выбранного часа не выходить из программы и не выключать компьютер.
← →
mr1Andersen (2006-10-04 00:23) [3]нет, ничего не получиться, мне нужно, что бы эта программа была активная, как бы параллельно с другими программами, эта программа должна записывать в текстовый документ,
код каждой клавиши которая была нажата от момента старта до момента закрытия программы. Все работает нормально, если бы эта программа била всегда активной параллельно с другими программами, приложениями, документами и т. д.
← →
ProgRAMmer Dimonych (2006-10-04 00:28) [4]В Delphi 7 на закладке Additional есть TApplicationEvents. У него событие OnIdle.
Важно!!! В обработчике OnIdle нужно пис_а_ть Done:=False;, иначе обработчик будет вызываться только когда в приложение приходят сообщения.
← →
Zeqfreed © (2006-10-04 00:31) [5]> [3] mr1Andersen (04.10.06 00:23)
<RTFM>SetWindowsHookEx</RTFM>
← →
mr1Andersen (2006-10-10 21:15) [6]Zeqfreed я не совсем понял твой код <RTFM>SetWindowsHookEx</RTFM>
Что мне нужно сделать чтобы оно заработало находясь не активным?
Программный код рабочий. Нужно создать Tera.txt; на форму поместить Label1, Label2; затем на форме в Events задать процедуру OnKeyDown и OnMouseDown, и запустить
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, ShellApi, jpeg, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
T: String;
sY,sX: String;
implementation
{$R *.DFM}
function P(r:string): string;
begin
P:="keybd_event("+r+",0,0,0);"+
"keybd_event("+r+",0,KEYEVENTF_KEYUP,0);";
end;
procedure s1;
var
fp:TextFile;
begin
AssignFile(fp,"Tera.txt");
Reset(fp);
Append(fp);
end;
procedure s2;
var
fp:TextFile;
begin
write(fp,T);
writeln(fp);
CloseFile(fp);
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=27 then begin s1; T:=P("27"); s2; end;
if key=112 then begin s1; T:=P("112"); s2; end;
if key=113 then begin s1; T:=P("113"); s2; end;
if key=114 then begin s1; T:=P("114"); s2; end;
if key=115 then begin s1; T:=P("115"); s2; end;
if key=116 then begin s1; T:=P("116"); s2; end;
if key=117 then begin s1; T:=P("117"); s2; end;
if key=118 then begin s1; T:=P("118"); s2; end;
if key=119 then begin s1; T:=P("119"); s2; end;
if key=120 then begin s1; T:=P("120"); s2; end;
if key=121 then begin s1; T:=P("121"); s2; end;
if key=122 then begin s1; T:=P("122"); s2; end;
if key=123 then begin s1; T:=P("123"); s2; end;
if key=44 then begin s1; T:=P("44"); s2; end;
if key=145 then begin s1; T:=P("145"); s2; end;
if key=19 then begin s1; T:=P("19"); s2; end;
if key=192 then begin s1; T:=P("192"); s2; end;
if key=49 then begin s1; T:=P("49"); s2; end;
if key=50 then begin s1; T:=P("50"); s2; end;
if key=51 then begin s1; T:=P("51"); s2; end;
if key=52 then begin s1; T:=P("52"); s2; end;
if key=53 then begin s1; T:=P("53"); s2; end;
if key=54 then begin s1; T:=P("54"); s2; end;
if key=55 then begin s1; T:=P("55"); s2; end;
if key=56 then begin s1; T:=P("56"); s2; end;
if key=57 then begin s1; T:=P("57"); s2; end;
if key=48 then begin s1; T:=P("48"); s2; end;
if key=189 then begin s1; T:=P("189"); s2; end;
if key=187 then begin s1; T:=P("187"); s2; end;
if key=220 then begin s1; T:=P("220"); s2; end;
if key=8 then begin s1; T:=P("8"); s2; end;
if key=45 then begin s1; T:=P("45"); s2; end;
if key=36 then begin s1; T:=P("36"); s2; end;
if key=33 then begin s1; T:=P("33"); s2; end;
if key=144 then begin s1; T:=P("144"); s2; end;
if key=111 then begin s1; T:=P("111"); s2; end;
if key=106 then begin s1; T:=P("106"); s2; end;
if key=109 then begin s1; T:=P("109"); s2; end;
if key=9 then begin s1; T:=P("9"); s2; end;
if key=81 then begin s1; T:=P("81"); s2; end;
if key=87 then begin s1; T:=P("87"); s2; end;
if key=69 then begin s1; T:=P("69"); s2; end;
if key=82 then begin s1; T:=P("82"); s2; end;
if key=84 then begin s1; T:=P("84"); s2; end;
if key=89 then begin s1; T:=P("89"); s2; end;
if key=85 then begin s1; T:=P("85"); s2; end;
if key=73 then begin s1; T:=P("73"); s2; end;
if key=79 then begin s1; T:=P("79"); s2; end;
if key=80 then begin s1; T:=P("80"); s2; end;
if key=219 then begin s1; T:=P("219"); s2; end;
if key=221 then begin s1; T:=P("221"); s2; end;
if key=13 then begin s1; T:=P("13"); s2; end;
if key=46 then begin s1; T:=P("46"); s2; end;
if key=35 then begin s1; T:=P("35"); s2; end;
if key=34 then begin s1; T:=P("34"); s2; end;
if key=103 then begin s1; T:=P("103"); s2; end;
if key=104 then begin s1; T:=P("104"); s2; end;
if key=105 then begin s1; T:=P("105"); s2; end;
if key=107 then begin s1; T:=P("107"); s2; end;
if key=20 then begin s1; T:=P("20"); s2; end;
if key=65 then begin s1; T:=P("65"); s2; end;
if key=83 then begin s1; T:=P("83"); s2; end;
if key=68 then begin s1; T:=P("68"); s2; end;
if key=70 then begin s1; T:=P("70"); s2; end;
if key=71 then begin s1; T:=P("71"); s2; end;
if key=72 then begin s1; T:=P("72"); s2; end;
if key=74 then begin s1; T:=P("74"); s2; end;
if key=75 then begin s1; T:=P("75"); s2; end;
if key=76 then begin s1; T:=P("76"); s2; end;
if key=186 then begin s1; T:=P("186"); s2; end;
if key=222 then begin s1; T:=P("222"); s2; end;
if key=100 then begin s1; T:=P("100"); s2; end;
if key=101 then begin s1; T:=P("101"); s2; end;
if key=102 then begin s1; T:=P("102"); s2; end;
if key=16 then begin s1; T:=P("16"); s2; end;
if key=160 then begin s1; T:=P("160"); s2; end;
if key=90 then begin s1; T:=P("90"); s2; end;
if key=88 then begin s1; T:=P("88"); s2; end;
if key=67 then begin s1; T:=P("67"); s2; end;
if key=86 then begin s1; T:=P("86"); s2; end;
if key=66 then begin s1; T:=P("66"); s2; end;
if key=78 then begin s1; T:=P("78"); s2; end;
if key=77 then begin s1; T:=P("77"); s2; end;
if key=188 then begin s1; T:=P("188"); s2; end;
if key=190 then begin s1; T:=P("190"); s2; end;
if key=191 then begin s1; T:=P("191"); s2; end;
if key=161 then begin s1; T:=P("161"); s2; end;
if key=38 then begin s1; T:=P("38"); s2; end;
if key=97 then begin s1; T:=P("97"); s2; end;
if key=98 then begin s1; T:=P("98"); s2; end;
if key=99 then begin s1; T:=P("99"); s2; end;
if key=17 then begin s1; T:=P("17"); s2; end;
if key=162 then begin s1; T:=P("162"); s2; end;
if key=91 then begin s1; T:=P("91"); s2; end;
if key=18 then begin s1; T:=P("18"); s2; end;
if key=164 then begin s1; T:=P("164"); s2; end;
if key=32 then begin s1; T:=P("32"); s2; end;
if key=165 then begin s1; T:=P("165"); s2; end;
if key=92 then begin s1; T:=P("92"); s2; end;
if key=93 then begin s1; T:=P("93"); s2; end;
if key=163 then begin s1; T:=P("163"); s2; end;
if key=37 then begin s1; T:=P("37"); s2; end;
if key=40 then begin s1; T:=P("40"); s2; end;
if key=39 then begin s1; T:=P("39"); s2; end;
if key=96 then begin s1; T:=P("96"); s2; end;
if key=110 then begin s1; T:=P("110"); s2; end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
{Form1.Tag:=1;}
Str(Y,sY);
Str(X,sX);
Label1.Caption:=sY;
Label2.Caption:=sX;
if button=mbLeft then begin s1; T:=P("1"); s2; end;
if button=mbRight then begin s1; T:=P("2"); s2; end;
if button=mbMiddle then begin s1; T:=P("4"); s2; end;
end;
end.
← →
Leonid Troyanovsky © (2006-10-10 21:19) [7]
> mr1Andersen (10.10.06 21:15) [6]
> Zeqfreed я не совсем понял твой код <RTFM>SetWindowsHookEx</RTFM>
Читать msdn.microsoft.com до просветления.
В скобках указан ключ для поиска.
--
Regards, LVT.
← →
Ketmar © (2006-10-10 21:22) [8]Удалено модератором
← →
Leonid Troyanovsky © (2006-10-10 21:25) [9]
> ProgRAMmer Dimonych (04.10.06 00:28) [4]
> Важно!!! В обработчике OnIdle нужно пис_а_ть Done:=False;
> , иначе обработчик будет вызываться только когда в приложение
> приходят сообщения.
RTFM: Delphi help. Application.OnIdle
--
Regards, LVT.
← →
Ketmar © (2006-10-10 21:28) [10]>[9] Leonid Troyanovsky(c) 10-Oct-2006, 21:25
ты [6] видел? бесполезно дальше...
← →
Ketmar © (2006-10-10 21:28) [11]это не уровень начинающих, это уровень дворника.
← →
mr1Andersen (2006-10-10 21:31) [12]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, ShellApi, jpeg, Buttons, AppEvnts;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
ApplicationEvents1: TApplicationEvents;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
T: String;
sY,sX: String;
implementation
{$R *.DFM}
function P(r:string): string;
begin
P:="keybd_event("+r+",0,0,0);"+
"keybd_event("+r+",0,KEYEVENTF_KEYUP,0);";
end;
procedure s1;
var
fp:TextFile;
begin
AssignFile(fp,"Tera.txt");
Reset(fp);
Append(fp);
end;
procedure s2;
var
fp:TextFile;
begin
write(fp,T);
writeln(fp);
CloseFile(fp);
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=27 then begin s1; T:=P("27"); s2; end;
if key=112 then begin s1; T:=P("112"); s2; end;
if key=113 then begin s1; T:=P("113"); s2; end;
if key=114 then begin s1; T:=P("114"); s2; end;
if key=115 then begin s1; T:=P("115"); s2; end;
if key=116 then begin s1; T:=P("116"); s2; end;
if key=117 then begin s1; T:=P("117"); s2; end;
if key=118 then begin s1; T:=P("118"); s2; end;
if key=119 then begin s1; T:=P("119"); s2; end;
if key=120 then begin s1; T:=P("120"); s2; end;
if key=121 then begin s1; T:=P("121"); s2; end;
if key=122 then begin s1; T:=P("122"); s2; end;
if key=123 then begin s1; T:=P("123"); s2; end;
if key=44 then begin s1; T:=P("44"); s2; end;
if key=145 then begin s1; T:=P("145"); s2; end;
if key=19 then begin s1; T:=P("19"); s2; end;
if key=192 then begin s1; T:=P("192"); s2; end;
if key=49 then begin s1; T:=P("49"); s2; end;
if key=50 then begin s1; T:=P("50"); s2; end;
if key=51 then begin s1; T:=P("51"); s2; end;
if key=52 then begin s1; T:=P("52"); s2; end;
if key=53 then begin s1; T:=P("53"); s2; end;
if key=54 then begin s1; T:=P("54"); s2; end;
if key=55 then begin s1; T:=P("55"); s2; end;
if key=56 then begin s1; T:=P("56"); s2; end;
if key=57 then begin s1; T:=P("57"); s2; end;
if key=48 then begin s1; T:=P("48"); s2; end;
if key=189 then begin s1; T:=P("189"); s2; end;
if key=187 then begin s1; T:=P("187"); s2; end;
if key=220 then begin s1; T:=P("220"); s2; end;
if key=8 then begin s1; T:=P("8"); s2; end;
if key=45 then begin s1; T:=P("45"); s2; end;
if key=36 then begin s1; T:=P("36"); s2; end;
if key=33 then begin s1; T:=P("33"); s2; end;
if key=144 then begin s1; T:=P("144"); s2; end;
if key=111 then begin s1; T:=P("111"); s2; end;
if key=106 then begin s1; T:=P("106"); s2; end;
if key=109 then begin s1; T:=P("109"); s2; end;
if key=9 then begin s1; T:=P("9"); s2; end;
if key=81 then begin s1; T:=P("81"); s2; end;
if key=87 then begin s1; T:=P("87"); s2; end;
if key=69 then begin s1; T:=P("69"); s2; end;
if key=82 then begin s1; T:=P("82"); s2; end;
if key=84 then begin s1; T:=P("84"); s2; end;
if key=89 then begin s1; T:=P("89"); s2; end;
if key=85 then begin s1; T:=P("85"); s2; end;
if key=73 then begin s1; T:=P("73"); s2; end;
if key=79 then begin s1; T:=P("79"); s2; end;
if key=80 then begin s1; T:=P("80"); s2; end;
if key=219 then begin s1; T:=P("219"); s2; end;
if key=221 then begin s1; T:=P("221"); s2; end;
if key=13 then begin s1; T:=P("13"); s2; end;
if key=46 then begin s1; T:=P("46"); s2; end;
if key=35 then begin s1; T:=P("35"); s2; end;
if key=34 then begin s1; T:=P("34"); s2; end;
if key=103 then begin s1; T:=P("103"); s2; end;
if key=104 then begin s1; T:=P("104"); s2; end;
if key=105 then begin s1; T:=P("105"); s2; end;
if key=107 then begin s1; T:=P("107"); s2; end;
if key=20 then begin s1; T:=P("20"); s2; end;
if key=65 then begin s1; T:=P("65"); s2; end;
if key=83 then begin s1; T:=P("83"); s2; end;
if key=68 then begin s1; T:=P("68"); s2; end;
if key=70 then begin s1; T:=P("70"); s2; end;
if key=71 then begin s1; T:=P("71"); s2; end;
if key=72 then begin s1; T:=P("72"); s2; end;
if key=74 then begin s1; T:=P("74"); s2; end;
if key=75 then begin s1; T:=P("75"); s2; end;
if key=76 then begin s1; T:=P("76"); s2; end;
if key=186 then begin s1; T:=P("186"); s2; end;
if key=222 then begin s1; T:=P("222"); s2; end;
if key=100 then begin s1; T:=P("100"); s2; end;
if key=101 then begin s1; T:=P("101"); s2; end;
if key=102 then begin s1; T:=P("102"); s2; end;
if key=16 then begin s1; T:=P("16"); s2; end;
if key=160 then begin s1; T:=P("160"); s2; end;
if key=90 then begin s1; T:=P("90"); s2; end;
if key=88 then begin s1; T:=P("88"); s2; end;
if key=67 then begin s1; T:=P("67"); s2; end;
if key=86 then begin s1; T:=P("86"); s2; end;
if key=66 then begin s1; T:=P("66"); s2; end;
if key=78 then begin s1; T:=P("78"); s2; end;
if key=77 then begin s1; T:=P("77"); s2; end;
if key=188 then begin s1; T:=P("188"); s2; end;
if key=190 then begin s1; T:=P("190"); s2; end;
if key=191 then begin s1; T:=P("191"); s2; end;
if key=161 then begin s1; T:=P("161"); s2; end;
if key=38 then begin s1; T:=P("38"); s2; end;
if key=97 then begin s1; T:=P("97"); s2; end;
if key=98 then begin s1; T:=P("98"); s2; end;
if key=99 then begin s1; T:=P("99"); s2; end;
if key=17 then begin s1; T:=P("17"); s2; end;
if key=162 then begin s1; T:=P("162"); s2; end;
if key=91 then begin s1; T:=P("91"); s2; end;
if key=18 then begin s1; T:=P("18"); s2; end;
if key=164 then begin s1; T:=P("164"); s2; end;
if key=32 then begin s1; T:=P("32"); s2; end;
if key=165 then begin s1; T:=P("165"); s2; end;
if key=92 then begin s1; T:=P("92"); s2; end;
if key=93 then begin s1; T:=P("93"); s2; end;
if key=163 then begin s1; T:=P("163"); s2; end;
if key=37 then begin s1; T:=P("37"); s2; end;
if key=40 then begin s1; T:=P("40"); s2; end;
if key=39 then begin s1; T:=P("39"); s2; end;
if key=96 then begin s1; T:=P("96"); s2; end;
if key=110 then begin s1; T:=P("110"); s2; end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
{Form1.Tag:=1;}
Str(Y,sY);
Str(X,sX);
Label1.Caption:=sY;
Label2.Caption:=sX;
if button=mbLeft then begin s1; T:=P("1"); s2; end;
if button=mbRight then begin s1; T:=P("2"); s2; end;
if button=mbMiddle then begin s1; T:=P("4"); s2; end;
end;
procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
var Done: Boolean);
begin
Done:=false;
end;
end.
В обработчике OnIdle нужно писать Done:=False; я написал, а толку 0
← →
Leonid Troyanovsky © (2006-10-10 21:32) [13]
> Ketmar © (10.10.06 21:28) [10]
> ты [6] видел? бесполезно дальше...
Так на всех метел не хватит.
Во всяком случае, вопрошающий, похоже, трудолюбив.
Как там с обучаемостью - понаблюдаем :)
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-10-10 21:34) [14]
> mr1Andersen (10.10.06 21:31) [12]
Только, плиз, без избыточного цитирования.
Заучить: обучаемый, прежде всего, читатель,
а не писатель.
--
Regards, LVT.
← →
Ketmar © (2006-10-10 21:45) [15]>[13] Leonid Troyanovsky(c) 10-Oct-2006, 21:32
>Во всяком случае, вопрошающий, похоже, трудолюбив.
это и пугает... %-)
← →
sniknik © (2006-10-10 21:51) [16]а это случаем не "супер-пупер" клавиатурный шпион? ... видимо замена банальному хуку... отсюда и попытки работы при неактивности своего окна, видимо предполагается, что тогда будет перехват ввода с чужих.
> В обработчике OnIdle нужно писать Done:=False; я написал, а толку 0
и слава Гейтсу что толку нет, если бы сработало то был бы "вылет" проги. т.е. так просто то, что ты хочеш (по сообщениям от телепатора) не делается... сначала надо немного учится... хотя бы минимуму - задавать вопросы. правильно.
← →
mr1Andersen (2006-10-10 22:03) [17]я понимаю что Вы профи, а я нет, но Конференция "Начинающим"
Для новичков программирования, так что если Вы можете помочь помогите плис. К стати, с <RTFM>SetWindowsHookEx</RTFM> я никогда не встречался, а на английском перечитывать все справочники я не собираюсь, я в английском не селен, если Вы не хотите мне помочь прямо, помогите косвенно дайте текст где описывается эта процедура или функция или код, я не знаю что это.
← →
Leonid Troyanovsky © (2006-10-10 22:07) [18]
> mr1Andersen (10.10.06 22:03) [17]
> Вы не хотите мне помочь прямо, помогите косвенно дайте текст
> где описывается эта процедура или функция или код, я не
> знаю что это.
А как насчет [12]? Ответ был в [7].
Иначе, мне придется согласиться с [8].
--
Regards, LVT.
← →
Leonid Troyanovsky © (2006-10-10 22:09) [19]
> Leonid Troyanovsky © (10.10.06 22:07) [18]
> А как насчет [12]?
[14]
Епст. Sorry.
--
Regards, LVT.
← →
zamtmn © (2006-10-10 22:10) [20]2 mr1Andersen
чувак, ну ты жеский програмист:)
вон ту кучу if`ов замени чемнить типа этого:
begin s1; T:=P(inttostr(key)); s2; end;
от этого конечно ничего не изменится, но хоть метлы предлагать небудут:)
← →
Leonid Troyanovsky © (2006-10-10 22:12) [21]
> zamtmn © (10.10.06 22:10) [20]
> небудут:)
Будут.
Бо куча - лишь (косвенный) признак трудолюбия.
--
Regards, LVT.
← →
sniknik © (2006-10-10 22:13) [22]> Вы не хотите мне помочь прямо
обычно хотят... мечтают просто. но нет правильного вопроса...
> дайте текст где описывается
легко, хотя мог бы (и должен был) сам до этого дойти
http://www.google.ru/search?hl=ru&q=SetWindowsHookEx&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=
← →
sniknik © (2006-10-10 22:17) [23]вот, вторая ссылка, хорошее описание
http://www.rsdn.ru/article/baseserv/winhooks.xml
← →
Ketmar © (2006-10-10 22:17) [24]Удалено модератором
← →
zamtmn © (2006-10-10 22:23) [25]Удалено модератором
← →
mr1Andersen (2006-10-10 22:27) [26]Спасибо zamtmn ,но а если мне нужно не кеу (цифру) вставить а текстовый символ, тогда что? зациклить не получиться.
> Leonid Troyanovsky © (10.10.06 22:09) [19]
> > Leonid Troyanovsky © (10.10.06 22:07) [18] > А как насчет
> [12]?[14]Епст. Sorry.--Regards, LVT.
msdn.microsoft.com- Leonid Troyanovsky где ты видел хотя бы 1-но русское слово??
← →
sniknik © (2006-10-10 22:29) [27]Удалено модератором
← →
Kolan © (2006-10-10 22:30) [28]
> msdn.microsoft.com- Leonid Troyanovsky где ты видел хотя
> бы 1-но русское слово?
А шо оно там должно быть?
← →
Ketmar © (2006-10-10 22:40) [29]Удалено модератором
← →
Германн © (2006-10-11 00:29) [30]Удалено модератором
← →
mr1Andersen (2006-10-11 00:45) [31]кто то из вас пользовался хуками? если да, дайте хотя бы одну прогу только как пример. Я никогда ими не пользовался, если честно, - даже ни знал об их существовании.
← →
Zacho © (2006-10-11 00:56) [32]А поиском хотя бы на этом же сайте воспользоваться ? Неужели так сложно ?
http://www.delphimaster.ru/articles/hooks/index.html - там и исходники с примерами есть
← →
guav © (2006-10-11 01:04) [33]> Я никогда ими не пользовался, если честно, - даже ни знал
> об их существовании.
Это не проблема. Не знал об существовании - уже знаешь. Не пользовался - послали на MSDN и даже на статью, можно изучать и пользоваться.
> кто то из вас пользовался хуками? если да, дайте хотя бы
> одну прогу только как пример.
Кто-то пользовался. Примеры по ссылке [22] .
К примерам, однако, следует относится критически, слишком много примеров с ошибками.
> http://www.delphimaster.ru/articles/hooks/index.html - там
> и исходники с примерами есть
Там тоже ошибки есть.
← →
Германн © (2006-10-11 01:16) [34]
> > http://www.delphimaster.ru/articles/hooks/index.html -
> там
> > и исходники с примерами есть
>
> Там тоже ошибки есть.
>
Зато у форумчан уже есть опыт указаний на эти ошибки с примерами. И, кроме того, если будут "неглупые" вопросы по сей статье, имхо, ЮЗ не откажется помочь в свободное время. Он тоже в некоторой степени к ней причастен.
← →
mr1Andersen (2006-10-11 01:24) [35]я может, ни все сразу понимаю в хуках. Вопрос к тем кто знаком с ними: они мне помогут решить мою проблему: Проблема: программа работает если окно программы активное. Нужно чтоб программа работала даже если окно программы не активное.
← →
Германн © (2006-10-11 01:37) [36]
> mr1Andersen (11.10.06 01:24) [35]
>
> я может, ни все сразу понимаю в хуках. Вопрос к тем кто
> знаком с ними: они мне помогут решить мою проблему
Именно хуки и только они помогут решить твою задачу. И именно это и было сказано в [5].
← →
mr1Andersen (2006-10-11 01:54) [37]ок, всем спасибо за ответы
← →
evvcom © (2006-10-11 09:16) [38]> [35] mr1Andersen (11.10.06 01:24)
> Нужно чтоб программа работала даже если окно программы не
> активное.
Тебе это покажется странным, но программа продолжает работать, пока ее не закроют, даже если окно ее не активно.
← →
SergP © (2006-10-11 09:27) [39]> Во всяком случае, вопрошающий, похоже, трудолюбив.
Да... Он действительно трудолюбив...
Я бы наверное с ума сошел, если бы набирал все это... Даже пусть и копипастом...
...
if key=65 then begin s1; T:=P("65"); s2; end;
if key=83 then begin s1; T:=P("83"); s2; end;
if key=68 then begin s1; T:=P("68"); s2; end;
...
← →
Amoeba © (2006-10-11 11:42) [40]
> SergP © (11.10.06 09:27) [39]
> > Во всяком случае, вопрошающий, похоже, трудолюбив.
>
>
> Да... Он действительно трудолюбив...
> Я бы наверное с ума сошел, если бы набирал все это... Даже
> пусть и копипастом...
>
>
> ...
> if key=65 then begin s1; T:=P("65"); s2; end;
> if key=83 then begin s1; T:=P("83"); s2; end;
> if key=68 then begin s1; T:=P("68"); s2; end;
> ...
Согласен, это просто кошмар какой-то! Вопрошающий еще не научившись элементарному кодингу уже берется за высокие материи.
Если вместо одной строчкиs1; T:=P(IntToStr(Key)); s2;
появляется на свет такое полчище IF"ов, да еще без ELSE между ними, то слов на это уже нет, одни буквы.
Страницы: 1 2 вся ветка
Текущий архив: 2006.10.29;
Скачать: CL | DM;
Память: 0.59 MB
Время: 0.113 c