Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Creare una Keyboard sullo schermo
martedì 03 giugno 2008 - 16.11
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
hidden
Profilo
| Newbie
23
messaggi | Data Invio:
mar 3 giu 2008 - 16:11
Salve a tutti ragazzi volevo chiedere se qualcuno ha qualche indicazione circa la creazione di una tastiera su schermo tipo quella di Windows.
Facendo ricerche in rete sono riuscito a trovare qualcosa utilizzando user32 come segue
Public Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long
Declare Function keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) As Long
alla pressione del bottone corrispondente alla lettera A
Public Sub pulsantepremuto(ByVal _sender As String)
Try
SetActiveWindow(8975651603260375040)
Select Case _sender
Case "btna"
keybd_event(ltA, 0, 0, 0)
.......
ect.
end Sub
dove ltA corrisponde al valore esadecimale del bottone A che si trova sulla tastiera
Try
Dim key As Button = CType(sender, Button)
pulsantepremuto(key.Name)
SetActiveWindow(8975651603260375040)
Catch ex As Exception
MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
Finally
SetActiveWindow(8975651603260375040)
End Try
End Sub
a parte che non ho capito a cosa significa la riga
SetActiveWindow(8975651603260375040) ho capito che serve a spostare lo stato attivo prima e dopo la pressione del pulsante ma come lo fa non mi è chiaro.
Il tutto funziona egregiamente nei vari documenti di testo.
Il mio problema sorge quando voglio utilizzare la tastiera per rinominare un file. Es seleziono il file con il tasto destro faccio click su rinomina e lui mi da lo stato attivo sul testo (nome del file) e me lo seleziona, ma in quel caso il programma non funziona e non mi rinomina il file in quanto quando si sposta lo stato attivo sulla tastiera il nome del file selezionato viene confermato e quindi non viene cambiato.
Come posso fare per ovviare a questo problema?
C'è qualcuno che conosce una soluzione alternativa?
Vi ringrazio anticipatamente!
Lanello
Profilo
| Senior Member
218
messaggi | Data Invio:
mar 3 giu 2008 - 17:23
devi riuscire a non prendere il "focus" quando un tasto sulla tua "on screen keyboard" viene premuto.
l'operazione di rinominare un file viene fatta direttamente nella finestra di esplora risorse, e se durante una operazione di rinominazione clicchi su un'altra finestra, l'operazione viene terminata automaticamente da esplora risorse.
se guardi infatti la tastiera su schermo standard di windows xp (start -> esegui -> osk.exe) vedrai che quando clicchi sulle lettere della tastiera, la finestra della tastiera su schermo di windows non prende il "focus".
ho provato a fare 2 ricerche "al volo" su internet cercando "vb.net prevent getting focus" ed ho trovato:
esempio per c# ->
http://windowsclient.net/blogs/faqs/archive/2006/05/26/how-do-i-prevent-a-control-from-receiving-focus-when-it-receives-a-mouse-click.aspx
-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.
hidden
Profilo
| Newbie
23
messaggi | Data Invio:
mer 4 giu 2008 - 10:33
ti ringrazio per i suggerimenti ora proverò a verificare anche l'esempio che mi hai segnalato. poi ti faccio sapere. Grazie
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !