Zjištění stisknutí klávesy – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zjištění stisknutí klávesy – Delphi – Fórum – Programujte.comZjištění stisknutí klávesy – Delphi – Fórum – Programujte.com

 

23. 3. 2008   #1
-
0
-

Prohledával jsem internet (včetně tohohle fóra) a stejně jsem nedokázal vyřešit jednu otázku. Potřebuju udělat program, který po stisknutí nějaké klávesy (nezáleží) zaznamená hodnotu aktuální pozice kurzoru. Zjištění a zaznamenání je v pohodě, nevím ale, jak program udělat tak, aby detekoval stisk klávesy neustále (zřejmě pomocí timeru) a to i (vlastně hlavně) mimo formulář a to i když je okno z formulářem neaktivní. Pro vysvětlení, chci udělat makro na klikání myší, kde nejdříve kliknu na tlačítko "Nahrávat", pojedu kurzorem po obrazovce a pokaždé, když kliknu na klávesu uloží se aktuální pozice. Pak nahrávání ukončím a spustím, program postupně (opět, dokud nebude stisknuto některé tlačítko) bude jezdit po zadaných pozicích a klikat na ně. Mimochodem, prosil bych problém vyřešit bez přídavných modulů (či kýho šlaka se ty přídavny VLC prvky jmenujou), neb používám Turbo Delphi Explorer.

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
Paulí
~ Anonymní uživatel
32 příspěvků
23. 3. 2008   #2
-
0
-

To Garret Raziel :
Ahoj.
je to jednoduché - nejdřív musíš zaregistrovat klávesu a pak zapsat akci po zmáčknutí :

registrace klávesy :
If not RegisterHotkey (Handle, 1, 2, 67) Then ShowMessage('nejde registrovat hot key !!') ;
- místo čísel doplň 1,2,67 doplň čísla klávesy (to 67 by měla být klávesa "c" a ta dvojka znamená v režimu "ctrl" - to znamená, při stisknutí ctrl+c se aktivuje funkce a ta jednička znamená číslo zaregistrované klávesy (číslo každé registrované klávesy musí být jiné) a to číslo použiješ i při odregistrování a to "Handle" znamená pro jakou aplikaci ta klávesa bude registrovaná (v tomto případě bude registrovaná pro tuto aplikaci))

odregistrování klávesy :
UnRegisterHotkey( Handle, 1 ) ;


Takže kompletní kod bude vypadat zhruba takhle:


unit Unit1;

interface

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
Procedure WMHotkey( Var msg: TWMHotkey );message WM_HOTKEY;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
If not RegisterHotkey (Handle, 1, 2, 67) Then ShowMessage('nejde registrovat hot key !!') ;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotkey( Handle, 1 ) ;
end;

procedure TForm1.WMHotkey(var msg: TWMHotkey);
begin
If msg.hotkey = 1 Then Begin
If IsIconic( Application.Handle ) Then
Application.Restore;
FormStyle := fsStayOnTop;
FormStyle := fsNormal;
BringToFront;

ShowMessage('zmackl si ctrl+c');
End;
end;

end.


Snad ti to půjde :-).
S pozdravem Paulí.

Nahlásit jako SPAM
IP: 88.102.78.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý