Jump to content

[VB.Net] Tutorial - GetAsyncKey // Shortcuts în afara formei


Travie
 Share

Recommended Posts

Văd că foarte mulţi vă întrebaţi cum să faci ca la apăsarea unui buton să se întâmple ceva, chiar dacă programul e în TaskBar, adică nu e focalizat. Răspunsul se află în funcţia GetAsyncKey extrasă din fişierul user32.dll

 

Vom începe prin a declara funcţia, extrăgând-o din user32.dll

Dedesupt de Public Class Form1 vom pune rândul:

 

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer

 

 

Apoi pe următorul rând vom declara două variabile de tip boolean:

 

 

Dim tasta1 As Boolean

Dim tasta2 As Boolean

 

 

Vom introduce în program un Timer, setat pe interval 100 şi Enabled fiind True. Vom da apoi dublu click pe acesta şi vom introduce codul:

 

 

tasta1 = GetAsyncKeyState(Keys.Q)

tasta2 = GetAsyncKeyState(Keys.ControlKey)

 

If tasta1 And tasta2 = True Then

Form2.Show()

End If

 

 

 

I-am dat variabilei tasta1 valoarea tastei Q, şi variabilei tasta2 valoarea tastei CTRL

Următoarea secvenţa se poate traduce astfel:

 

 

Dacă tasta1 şi tasta2 = adevărate atunci

va apărea forma2

Închide dacă

 

Adică, dacă tasta1 este apăsată şi tasta2 este apăsată atunci:

[...]

 

Deci la folosirea combinaţiei CTRL+Q va apărea forma2 chiar dacă programul principal nu este focalizat.

 

Bineînţeles, vă puteţi alege orice combinaţie de taste. Unde? La partea în care daţi variabilelor valoarea tastelor.

Puteţi scrie: tasta1 = GetAsyncKeyState(Keys.

şi vă va apărea o listă din care puteţi alege tasta dorită.

 

 

În final va trebui să arate ceva de genul:

http://s9.postimage.org/rlx5taey7/Poza_29_9_2012_1_11_13_59.png

*Menţionez că poza e făcută cu ScreenCapturer-ul meu personal.

Link to comment
Share on other sites

Frumos tutorial, am o întrebare.

 

De exemplu dacă vreau să pun fiecare literă apăsată într-un richtextbox, la intervalul de 100 milisecunde se poate să sară peste unele taste apăsate foarte repede, iar la intervalul de 1 ms mie îmi apare de vreo 5 ori tasta :))

Ştii cum se poate rezolva asta?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.