Ideiglenesen letiltani az egér

Ideiglenesen letiltani az egér

Kedves Mester! A kihívás az, ez - meg kell átmenetileg tiltsa le az egeret (betiltani összetevője a program kap egy üzenetet arról, hogy mi az egér gomb megnyomása), vagy akár vegye ki a képernyőn, majd kapcsolja be. Az a tény, hogy van négy gomb formájában, kattintva egyikük el kell végezni néhány intézkedés, így ha a felhasználó megnyomja a végrehajtása során ezt a műveletet egy másik gombot a forma, ez lesz a nagy ET. ) Hogyan lehet megoldani ezt a problémát? Talán nem is olyan radikális, mint a kikapcsolási egy egér?

És elképzelhető, hogy nem vagyok az egérgomb nyomás, és segítségével Claudia.

> Hogyan lehet megoldani ezt a problémát?

.Engedélyezett - azt tervezte, hogy erre.

Íme egy idézet (de ajánlott programokat anélkül, hogy „hibák”!)

Engedélyezése és letiltása a bemeneti / kimeneti eszközök a program Delphi

Néha szükség lehet kikapcsolni idején beviteli eszközök - billentyűzet és egér. Például, ez szép, hogy nem idejére a kódot másolásvédelem, játék, vagy a „büntetés” az elején a program lejárta után szabad használni. Azonban a legjobb felhasználását is - letiltja a billentyűzetet és az egeret a munkát demonstratsionki alapján lejátszás előre rögzített billentyűleütéseket és egér mozgását (lásd ezt külön fejezetben ezt a könyvet.). Ez elemi, hogy az API használatával:
EnableHadwareInput (engedélyezése: logikai): logikai;
Engedélyezése - kívánatos állapota beviteli eszközök (True - benne, hamis - off). Ha a bejegyzés zárva van, akkor lehet feloldani kézzel - nyomjuk meg a Ctrl + Alt + Del, a megjelenése a menü „Close Program” bemenet engedélyezve.

> Ez elemi, hogy az API használatával:
> EnableHadwareInput (Engedélyezés: logikai): logikai;

Gee ;-))
Feltéve tudatlanság olyan dolgok, mint Button.Enabled: = false;

> ;-) Gy)
> Amennyiben a tudatlanság olyan dolgok, mint Button.Enabled: = false;

és ha már több száz gomb. ))
Lawless keresztül ComponentCount őket.
(És amellett, hogy a gomb a felhasználó akar Che: \\)

> Van alkotnak négy gomb, ha rákattint az egyikre kell
> Végzett néhány fellépés, így ha a felhasználó rákattint
> Végrehajtása során e tevékenység egy másik gombot az űrlapon, akkor
> Nagy ge. )

Ne. Nagy ge. ott lehet kerülni csak speciális eszközök által ajánlott Vector.


> És ha már több száz gomb. ))

a) Form.Enabled: = False;
b) ProgressForm.ShowModal;

Nos, tettem róla, az ilyen típusú van:
var
gomb: Array [1..4] A TPanel; // tömb panelek szolgáló én gombok
.

kezdődik
i: = 1-től 4 do # XA0; gomb [i] .Enabled: = false; // tiltsa le őket csak megnyomása után egyikük (1c egy bizonyos idő után. Fordulj vissza).

De a gubanc van, hogy a préselés emlékezni! És miután bármelyik gombot megnyomja myshoy panel, bár ez le van tiltva, a fordított kapcsolja be a Windows kezeli a küldött kódot is! Itt a problémákat.

>> Ez elemi, hogy az API használatával:
>> EnableHadwareInput (Engedélyezés: logikai): logikai;

És lehetséges, részletesebben? Hogyan kell csinálni (egy példa), hogy segítse a Delphi nem találtak semmit.

majd próbálja
i: = 1-től 4 do # XA0; gomb [i] .Enabled: = false;
csináld
Application.ProcessMessages;

IMHO, segít

felhasználások
# XA0, a Windows, az Üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms,
# XA0; Párbeszédpanelek, ExtCtrls, StdCtrls;

típus
# XA0; TForm1 = osztály (TForm)
# XA0; # XA0; Panel1: TPanel;
# XA0; # XA0; PANEL2: TPanel;

# XA0; # XA0; eljárással Panel1Click (Sender: TObject);
# XA0; # XA0; eljárással Panel2Click (Sender: TObject);
# XA0; magán-
# XA0; # XA0;
# XA0, köz-
# XA0; # XA0;
# XA0; end;

var
# XA0; Form1: TForm1;
# XA0; GlobalPerem: Boolean = false;
végrehajtás

eljárás TForm1.Panel1Click (Sender: TObject);
kezdődik
GlobalPerem: = true;
// és minden, amit meg kell tennie, kattintson erre a panel
végén;

eljárás TForm1.Panel2Click (Sender: TObject);
kezdődik
ha GlobalPerem majd
kezdődik
ShowMessage ( "ET");
// és minden, amit meg kell tennie, kattintson erre a panel
végén;
végén;

Még mindig van egy Tag „és és ügy | A
és zéró a ellenőrzésére szolgáló eljárások a feltételeket (és anélkül, hogy bármilyen módon a készítményben az a probléma)
PS. Akkor volna levágták a monitor

eljárás TForm1.Panel1Click (Sender: TObject);
kezdődik
Az elején minden műveletet, majd
GlobalPerem: = true;
végén;

az I: = 0 ControlCount -1 Do
Ha a vezérlés az [I] jelentése TPanel majd
TPanel (Controls [I]) Bekapcsolt: = False ;.

>> Garfunkel # XA0; (10/23/04 23:26) [9]

>> Nos, gondoskodott arról, hogy a típus van:
>> var
>> gomb: Array [1..4] A TPanel; // tömb alkalmazottak panelek I >> gombok
>>.

>> kezdődik
>> i: = 1-től 4 do # XA0; gomb [i] .Enabled: = false; // tiltani őket >> után azonnal kattintva egyikük (egy bizonyos idő után 1s. >> visszafordulni).

>> De a bökkenő az, hogy a préselés emlékezni! És miután >> myshoy bármely gomb megnyomásával panel, bár ez le van tiltva, ha bekapcsolja a fordított >> a Windows kezeli a küldött kódot is! >> Ez az, amit a problémákat.

Ha vannak eneblililis (elnézést a szó), akkor semmi sem lesz a Windows akkor nem küld
És ha négyen azt nem tömböket nem nyilvánították (IMHO, de az íze és színe.)

A lányok okosabbak, mint a fiúk :-)
Itt van a Kinder

Tudod, hogy egy időzítő, és küldje folyamatosan SetCursorPos (0,0);

Úgy látszik, még nem olvasott üzenete
Hol láttam, hogy programozottan nyomja meg a Reset

gonosz lány
> Ha van eneblililis (elnézést a szó), akkor nem volna
> Windows akkor nem küldte
> És ha négyen azt nem tömböket nem nyilvánították (IMHO, de
> Íze és színe. )
Csak azért, mert én inkább a célkitűzések alapján a program - négy válasz a kérdésre: „lök” a négy gomb Random. FindComponent itt tűnt nehézkes. Röviden, ez jobb volt, véleményem szerint.
By the way, én találtam egy eredeti megoldás - Én csak azt SwapMouseButton (hamis);
és később SwapMouseButton (True);
kivezetés hűségprogramok táplálják SwapMouseButton (True);
mivel az egér jobb gombjával a programom nem működik, akkor van egy megoldás azt mondhatjuk elégedett, de nem teljesen, de. „Mert nincs meg az a házmester volt cseléd.”

és talán segíthet a kódot a konferencia

Kisa # XA0; (20.04.01 09:58)
Csak 98!

Kikapcsolja Egér és billentyűzet

eljárás TForm1.Button1Click (Sender: TObject);

funkció FuncAvail (_dllname, _funcname: string; var _p: pointer): logikai;
# XA0; var _lib: tHandle;
# XA0; kezdődik
# XA0; Eredmény: = false;
# XA0; _p: = nil;
# XA0; ha LoadLibrary (PChar (_dllname)) = 0, akkor kilép;
# XA0; _lib: = GetModuleHandle (PChar (_dllname));
# XA0; ha _lib <> 0, akkor
# XA0; # XA0; kezdődik
# XA0; # XA0; _p: = GetProcAddress (_lib, PChar (_funcname));
# XA0; # XA0, ha _p <> NIL akkor Eredmény: = true;
# XA0; # XA0; end;
# XA0; end;


var
# XA0; xBlockInput. funkció (Block: BOOL): BOOL; stdcall;

kezdődik
# XA0; ha FuncAvail ( "user32.dll", "BlockInput", @xBlockInput) = igaz, akkor
# XA0; kezdődik
# XA0; xBlockInput (true);
# XA0; Sleep (5000);
# XA0; xBlockInput (false);
# XA0; end;
végén;

Mit ravasz felhasználó gyötrelem
Aztán az, hogy letiltja az egér kurzort a Aklávot most beginning'll vezetni a képernyőn. Nézzük csak ubom azt vissza. Eredeti kérdés aktivH biblilioteku micromegaly és ötpercenként visszaáll arat
Timer csak apishnomu (API, mert taxi?).
Mi a fenéért mindannyian VCL.

Egy ilyen program csak megijeszteni a felhasználót és az út fel azokat a kosárban.

Garfunkel # XA0; (24.10.04 21:53) [22]
SwapMouseButton- Nos, ha segít az üzleti

Panel2.OnClick: = nil;
vkontse
Panel2.OnClick: = Panel2Click;

jó kislány # XA0; (25.10.04 05:59) [24]
Egy megbízható, és hogy az esetleges AV ialo vár

Panel2.OnClick: = nil;
megpróbál
# XA0;.
végül
# XA0; Panel2.OnClick: = Panel2Click;
végén;

Ui Az Angry lány hangja kedvesebb, mint :( Jó haragudni.)

Gomb cserét a kényelmét szolgálja, hogy az emberek, akik használják az egeret a bal kezét. A SwapMouseButton funkciót általában nevezik Vezérlőpult csak. Bár az alkalmazás ingyenes, hogy hívja a funkció, az egér egy közös erőforrás és visszafordítása értelmét gombok érinti az összes alkalmazást.

jó kislány
Tudom, hogy
Az egér egy közös erőforrás és visszafordítása értelmét gombok érint minden alkalmazás
Output a program, hogy táplálja hűséggel
SwapMouseButton (True);
úgyhogy mi nem. Bevallom, hogy ez volt a „görbe” módon. De hol talál egy egyszerű, olcsó módja annak, hogy ideiglenesen tiltsa le az egeret? Én egy kezdő programozó, és ez csak az én tananyag. Ezért nem akarom, hogy csak vakon másolni valaki másnak a kódot anélkül, hogy megértenék, hogyan működik. Azt hittem, hogy az egér le ez percek alatt, de nem volt. Ez az egész probléma.

Memória: 0,79 MB
Idő: 0.124 c