|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
|
VisualBasic
Devo realizzare una tastiera virtuale per delle persone disabili e per inviare dati alle applicazioni uso SendKeys, dopo aver attivato l'applicazione. Ma come mai la maggior parte delle volte nn arrivano le lettere????
Codice: Codice:
AppActivate(notepad)
My.Computer.Keyboard.SendKeys("a", True)
'SendKeys.Send("a")
'SendKeys.SendWait("a")
SendKeys.Flush()
Ciao e grazie PS visto ke ci sono vi faccio un altra domanda. Visto ke sono molto inesperto di VB(certe volte penso sia meglio cosi...) come faccio per creare un array di bottoni?? E soprattutto come faccio per farli ingrandire se uno ingrandisce la finestra?? Thanks very much
__________________
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
Ultima modifica di scorpion89 : 06-05-2006 alle 17:48. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Io il SendKeys l' ho sempre usato diversamente:
Codice:
Private Sub Form_Load()
Dim ReturnValue, I
ReturnValue = Shell("notepad.exe", 1) ' Esegue il blocco note
AppActivate ReturnValue ' Attiva il blocco note
For I = 1 To 100
SendKeys I & " ", True ' Invia caratteri al blocco note
Next I
'SendKeys "%{F4}", True ' Invia ALT+F4 per uscire dal programma
End Sub
Per ridimensionare e spostare i controlli in base al resize del form, devi farlo manualmente all' interno dell' evento Resize del Form. Per creare un array di controlli devi semplicemente disegnare il controllo nel form e impostare la sua proprietà Index a 0 (zero) ... poi da codice basta che crei i vari altri controlli usando il comando "load nomecontrollo(indice)" e poi renderlo visibile (in quanto appena caricato è invisibile). Ecco un esempio che crea 11 pulsanti dinamicamente e li sposta e cambia il nome (crea semplicemente un pulsante con index=0, allunga il form per farli stare tutti): Codice:
Private Sub Form_Load()
Dim i
For i = 0 To 10
If i > 0 Then Load Command1(i)
Command1(i).Top = i * Command1(i).Height + 100
Command1(i).Caption = "Pulsante " & i
Command1(i).Visible = True
Next i
End Sub
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
|
Per ora grazie,visto ke MOLTO probabilmente vi chiederò altre cose...
Cmq ho ancora dei dubbi sul SendKeys, visto ke non sempre mi invia le parole, o comunque il parametro!!!! Come potrei fare per risolvere??? Farmi una routine tutta mia?? O è da sparassi?? Ciao e grazie
__________________
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2001
Città: Roma Caput Mundi Moto: Ducati SS 750 i.e. Squadra: A.S. Roma 1927 Macchina: 147 M-Jet 140 equini
Messaggi: 698
|
[QUOTE da MSDN]The AppActivate function changes the focus to the named application or window, but does not affect whether it is maximized or minimized[/quote]
in altre parole l'applicazione viene attivata, ma se è minimizzata rimane minimizzata, è per quello che ti perdi le sendkey. fai così: 1) trova l'handle della finestra del programma su cui vuoi scrivere e quello della textArea da riempire 2) trova i processId tuo e della finestra del programma con GetWindowThreadProcessId 3) attaccati al processo con AttachThreadInput(tuo_procId, target_procID, True) 4) porta l'applicazione in primo piano con SetForegroundWindow(target_handle) 5) setfocus sul campo da riempire: SetFocus(target_field_handle) 6) System.Windows.Forms.SendKeys.SendWait(value) 7) System.Windows.Forms.SendKeys.Flush() 8) staccati dal processo con AttachThreadInput(tuo_procId, target_procID, False) ciao
__________________
...la voglia di guardarti e dirti sulle labbra...quanto ti ho aspettata...è il senso della vita... ...quando tutto questo sarà io ci sarò...anche se tutto questo mai sarà ci sarò... <about me> <my photo gallery> |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
|
Grazie della spiegazione e scusate ancora del disturbo ma non riesco a tradurre i passi 1,2,3 e 8 in istruzioni assembler.
Grazie e ciao PS nn so se è importante cmq uso VB.NET
__________________
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2001
Città: Roma Caput Mundi Moto: Ducati SS 750 i.e. Squadra: A.S. Roma 1927 Macchina: 147 M-Jet 140 equini
Messaggi: 698
|
Quote:
__________________
...la voglia di guardarti e dirti sulle labbra...quanto ti ho aspettata...è il senso della vita... ...quando tutto questo sarà io ci sarò...anche se tutto questo mai sarà ci sarò... <about me> <my photo gallery> |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
|
Scusate ma ho sbagliato a scrivere!!!!!!!!
Invece di assembler era VB Ciao
__________________
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:06.



















