Keypress e Keydown no system.windows.form

martedì 25 settembre 2012 - 14.18
Tag Elenco Tags  VB.NET

Feroxis Profilo | Junior Member

Sto cercando di sviluppare un tool forse un po stano e obsoleto ma per semplice test:

Vorrei far eseguire ad un programma delle operazioni in base a quello che viene digitato nella tastiera quando nessun file è selezionato o niente è aperto, ovvero siamo al desktop senza finestre aperte.

Quel poco che conosco mi riporta per forza a system.windows.forms ma l'operazione va in riferiento all'handler keyup o down in un forms.

L'esempio sarebbe, se non è selezionato nulla e il testo digitato è "open word" allora (Process.start, Shell ecc ecc aprendo microsoft word).

praticamente quando il form è topmost = false non riceve più il tasto premuto come posso bypassare?


bludev Profilo | Newbie

https://www.google.it/search?q=vb.net+system+keyboard+hook
---
Fabio Turrin - Bludev - http://www.bludev.it/

Vinsent Profilo | Senior Member

Se ho capito bene quello che chiedi e per quel che so...dovresti creare un keylogger o un hook della tastiera, se fai una ricerca trovi millemila esempi e non ci vuole molto ad implementarlo.
Però, un keylogger sa tanto di malware...inoltre dovresti essere in grado di ottenere lo stato in cui nessuna finestra è attiva perchè se apri il notepad e scrivi per "caso" "open word"...dovresti anche implementare un controllo sul testo digitato per capire se c' è un' errore nella digitazione e azzerarlo o modificare la stringa/comando, penso puoi immaginare i casi.
Comunque potresti creare un exe ad istanza singola, crei il collegamento e gli assegni l' avvio rapido (ctrl+alt+tasto). Con la sequenza di "avvio rapido" avvi il programma o se è già avviato prende il focus, poi te la gestisci come vuoi con finestra nascosta, popup, trayicon, ecc.
Personalmente penso non ci sia niente di strano o obsoleto...anzi, nel menù start di windows c' è una funzione simile...sei fai una cosa fatta bene può diventare molto utile per chi lavora più di tastiera che di mouse...ad esempio IO che mi viene male quando vedo cliccare su modifica>copia e modifica>incolla o con il contestuale del mouse quando con la mano sinistra basta un' immediato ctrl+c e ctrl+v...

Feroxis Profilo | Junior Member

1- No l'idea attuale è quella di desktop senza finestre attive, come se il computer fosse appena acceso.
2- io vorrei fare questo caso, ogni testo "o meglio " stringa di comando deve terminare con un carattere esempio #, quando compare quello termina la riga legge ed esegue spezzettando la stinga in base agli spazi così da poter creare pià funzioni e sottufunzioni.
3- Se ci sono errori di scrittura non esegue nulla, potrei semplicemente impostare i comandi qwerty è = apri poi imposto il resto ci sono molti modi per far partire il programma, comunque una specie di terminale personalizzato ma invisibile.
4- Questo del copia incolla era una funzione che volevo ampliare, ovvero se sono in una qualsiasi finestra e non è in modalità "scrittura" nulla è selezionato e tengo premuti per nsecondi qw insieme (esempio) apro un pannellino di funzioni utili che poi penserò e aggiungerò. Prima devo ricevere i comandi per il desktop vuoto poi il resto credo venga da solo.
5- L'ultima idea che mi ha ispirato è per la creazione dei codici, ovvero aggiungo una funzione che se sono in VisualStudio, non sono in modalità scrittura e nulla è selezionato all'interno del form, apro un pannellino che mi richiama dei codici preimostati da me salvati.

Ho provato con questi hook e non mi funziona,ma non ho ben capito il meccanismo, ci studio un po sopra e riprovo.
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5