Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Audio a domácí kina
Kamery
Multimediální centra
Projektory
Streaming videa
Televize
Ostatní
O nás  |  Napište nám
Facebook  |  Twitter
Svět hardware  |  Digimanie
Svět mobilně  |  Svět audia

Téma: Furt aktivní VB

28.5.2007 06:17
The_derava_botaNa tom svém přehrávači mám podporu multimediální klávesnice, normálně sem odchyt číslo klávesy a OK. Jenže jak to mám udělat když přehrávač je neaktivní (ale hraje). Nějakej přídavnej form stále aktivní, to ale nejde. Tak kde ve windows najdu aktivity klávesnice ???

Použít plochu jako form ???

Poraďte.
28.5.2007 10:45
Devasterskus pri spusteni hlavneho formu oddelit thread ktory bude monitorovat klavesy aj ked bude hlavny form neaktivny , a potom z hlavneho formu zavolaj v timeri synchro metodu toho threadu ....

ide o stary VB alebo VB.NET ?
28.5.2007 11:40
The_derava_botaJde o Visual studio 6 + sp.

Hmm, tak na to jak oddělit therad se musím podívat ..., voání je mě potom jasný, ikdyž timerem ..., to bude náročný na CPU ...
29.5.2007 12:36
Devasteralebo este lepsie riesenie : tvoje separatne vlakno v pripade stlacenia klaves priamo vykona potrebnu akciu ...
29.5.2007 09:14
The_derava_botaA to separátní vlákno se bude chovat jako "furt na střehu" ? To by se mohl takhle chovat rovnou ten form když bude aktivní klávesnice.
2.6.2007 07:13
The_derava_bota[QUOTE=Devaster;142774]skus pri spusteni hlavneho formu oddelit thread ktory bude monitorovat klavesy aj ked bude hlavny form neaktivny , a potom z hlavneho formu zavolaj v timeri synchro metodu toho threadu ....

ide o stary VB alebo VB.NET ?[/QUOTE]

Timer ano, ale už "hotový z windows" ...

---------------------------------------------------------------------
Upravil sem kód od fY níže,

---------------------------

'In a form
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: [email]KPDTeam@Allapi.net[/email]
Me.Caption = "Key Spy"
'Create an API-timer
SetTimer Me.hwnd, 0, 1, AddressOf TimerProc
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Kill our API-timer
KillTimer Me.hwnd, 0
'Show all the typed keys
End Sub

-------------------------------------------

'In a module

Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Public Cnt As Long, Ret As Long, stare As Long
Function GetPressedKey() As Long

For Cnt = 32 To 256 ' 0-32, je tam i myš
'Get the keystate of a specified key
If GetAsyncKeyState(Cnt) <> 0 Then ' písmeno klávesy
GetPressedKey = Cnt ' číslo klávesy
Exit For
End If
Next Cnt

End Function
Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)

Ret = GetPressedKey

If Ret <> 0 Then
stare = stare + 10 'timerFuc vrací o 10 více, proč to nevím.
If stare <> lpTimerFunc Then
stare = lpTimerFunc
'vrací číslo klávesy po intervalech lpTimerFunc
Debug.Print Ret
End If
End If

End Sub

-------------------------------------


Akorát by mě zajímala ta vracečka od Win, to je nějaká rychlost kláves s možností nastavení ve Windows ???
3.6.2007 04:27
DevasterlpTimerFunc je akysi interface ku timeru co bezi vnutri windows jadra . ma to cosi docinenia s pocitani uptime casu ...

dobre riesenie, ak to nie je licencovane niekde to tu zaves do nejakeho vlakna ... :)