PDA

Visualizza versione completa : Catturare digitazione tastiera


Neopolis
05-09-2002, 16.13.40
Vorrei fare un programma in Visual Basic che restando nascosto in background registra in un file di log tutte le digitazioni fatte sulla tastiera.

Che evento posso usare?

P8257 WebMaster
05-09-2002, 17.32.07
In che senso "evento" .. devi semplicemente monitorare il buffer della keyboard e poi lo leggi a 16-caratteri alla volta. Ci sono tanti modi per farlo, ti consiglio di farlo tu a basso livello (magari non in vb :( ) .. per questioni di velocità di risposta dei tasti

Bye :cool:

LoryOne
06-09-2002, 16.34.03
No no, usa pure VB e dacci dentro con le API.

Se vuoi usare C,Power Basic,Pascal ricordati di fare un bel TSR e di caricarlo in memoria prima di Windows, magari nell'autoexec.

ekerazha
06-09-2002, 16.51.57
Ricorda anche che su Windows ME/2000/XP/.NET (e forse anche NT) l'autoexec.bat non viene utilizzato...

LoryOne
06-09-2002, 17.08.32
Gia, dimaneticavo...(N) (N) (N)

LoryOne
06-09-2002, 17.25.08
Una volta che ci sei riuscito Neopolis, vedi di non cercare di installarlo sul mio PC perchè TI FUCILO(W) (W) (W)

P8257 WebMaster
06-09-2002, 18.42.44
Originariamente inviato da LoryOne
No no, usa pure VB e dacci dentro con le API.

Se vuoi usare C,Power Basic,Pascal ricordati di fare un bel TSR e di caricarlo in memoria prima di Windows, magari nell'autoexec.

Ma daiiii, siamo seri! Dove la mettiamo la compatibilità .. e la pesantezza dell'applicazione??
se vuol farlo entrare in segreto su un w95 e lo fa in vb6 chiede all'utente se vuole installare le librerie??

le API, nei sistemi 9x poi .. :D

Bye :cool:

ekerazha
06-09-2002, 18.53.05
ahhhh, il Delphi non ha bisogno di librerie :D programmi pesanti? basta dargli una passata di UPX :D :D

ThEmAtRix
06-09-2002, 19.21.21
Ma...... keylog il virus di qualche anno fà non faceva questa cosa? penso che si sia evoluto in questi anni prova a cercare il sorgente e vedi come funziona

LoryOne
07-09-2002, 12.51.14
Qui in vena di scherzare lo siamo tutti

"(magari non in vb ) .. per questioni di velocità di risposta dei tasti "
:D :D :D

"le API, nei sistemi 9x poi .. "

Le API che deve richiamare non danno problemi su nessuno dei SO di Microsoft. (Compatibilità al 100%)
Si chiamano nello stesso modo ed i parametri sono esattamente gli stessi. (Ovvio) Niente di preoccupante quindi.

"La pesantezza dell' applicazione."
Qui ti do ragione, però chi se ne frega.:) :)
Chi ci fa più caso ?

"se vuol farlo entrare in segreto su un w95 e lo fa in vb6 chiede all'utente se vuole installare le librerie??"
Qui niente da dire ma su Windows ME/2000/XP le librerie sono già incluse nel SO.Basterebbe copiare l'exe.

Bye :cool:

P8257 WebMaster
09-09-2002, 09.22.40
Originariamente inviato da LoryOne
Qui in vena di scherzare lo siamo tutti

"(magari non in vb ) .. per questioni di velocità di risposta dei tasti "
:D :D :D

"le API, nei sistemi 9x poi .. "

Le API che deve richiamare non danno problemi su nessuno dei SO di Microsoft. (Compatibilità al 100%)
Si chiamano nello stesso modo ed i parametri sono esattamente gli stessi. (Ovvio) Niente di preoccupante quindi.

"La pesantezza dell' applicazione."
Qui ti do ragione, però chi se ne frega.:) :)
Chi ci fa più caso ?

"se vuol farlo entrare in segreto su un w95 e lo fa in vb6 chiede all'utente se vuole installare le librerie??"
Qui niente da dire ma su Windows ME/2000/XP le librerie sono già incluse nel SO.Basterebbe copiare l'exe.

Bye :cool:
Originariamente inviato da LoryOne
Qui in vena di scherzare lo siamo tutti

"(magari non in vb ) .. per questioni di velocità di risposta dei tasti "
:D :D :D

"le API, nei sistemi 9x poi .. "

Le API che deve richiamare non danno problemi su nessuno dei SO di Microsoft. (Compatibilità al 100%)
Si chiamano nello stesso modo ed i parametri sono esattamente gli stessi. (Ovvio) Niente di preoccupante quindi.

"La pesantezza dell' applicazione."
Qui ti do ragione, però chi se ne frega.:) :)
Chi ci fa più caso ?

"se vuol farlo entrare in segreto su un w95 e lo fa in vb6 chiede all'utente se vuole installare le librerie??"
Qui niente da dire ma su Windows ME/2000/XP le librerie sono già incluse nel SO.Basterebbe copiare l'exe.

Bye :cool:

Caro Lory, so benissimo quali siano le API da utilizzare in questo acso e conosco la loro portabilità.
Sulla loro comodità e sul fatto che appunto siano utilizzabili indiscriminatamente su qualsiasi s.o. di famiglia Windows non ho nulla da dire; a mio parere però, gli inconvenienti generati e riportati sopra, di cui abbiamo già discusso, superano di gran lunga i vantaggi.
Non voglio fare critiche a nessuno, non ti conosco come programmatore e non mi permetterei mai di criticare il lavoro altrui, esprimendo una pura opinione personale mi viene da dire che al ragionamento del "chi se ne frega" siano imputabili una grande quantità di problemi e incompatibilità sofferti dagli utenti dei sistemi Windows (in particolare 9x).

Con questo non voglio dire che il fatto che Windows sia poco stabile sia imputabile interamente ai programmatori degli applicativi, in quanto Windows, si sa, non è un sistema propriamente stabile (neanche se installato singolarmente sulla macchina); fatta questa considerazione viene da chiedersi: se Windows non è, già di per sè un sistema stabile, perché non dargli una mano a non diventarlo maggiormente?
I problemi causati dalle librerie dinamiche, dal registro, dalle api, li conosciamo tutti, perché ricorrere a questi strumenti per uno scopo così semplice? Forse sto esagerando, forse sono troppo "idealista" e prolisso .. ma d'altra parte è così che mi è stato insegnato: risparmiare singoli byte di memoria, guardare all'efficienza degli algoritmi, riscrivere una condizione fino a quando non si arriva all'ottimizzazione della procedura ecc.

Proviamo ad esasperare la situazione:
supponiamo che un utente decida di installare un programma (come quello proposto dall'utente per monitorare la digitazione sula tastiera...) e supponiamo anche che questo programma abbia una macro (diciamo: SHIFT+F3) che magari permette all'utente, per assurdo, di vedere il file di log generato...
Continuando con le supposizioni immaginiamoci che l'utente abbia installato qualche altro programma residente nel tray che gestisca gli stessi identici tasti (eventualità questa non certo remota).
L'utente avrà in esecuzione un nostro programmino col solo scopo di monitorare la tastiera che si porta dietro un pacchettone immenso di dll e che accidentalmente condivide una combinazione di tasti già definita da un altro applicativo. Utilizzando le api si avranno molto probabilmente chiamate multiple e ricorsive alla stessa API che via via viene associata a più funzioni in un lasso di tempo quasi istantaneo .. e qui la domanda è: un kernel 9x è in grado sempre di gestire tutto questo?
.. Ma infondo, chi se ne frega.

Bye :cool:

P.S.: Ripeto che è una opinione personale e non una critica, ognuno lavora come meglio crede.
A questo punto preferisco la soluzione di "ekerazha" che ci passa sopra con un tool di ottimizzazione

LoryOne
09-09-2002, 17.19.09
"I problemi causati dalle librerie dinamiche, dal registro, dalle api, li conosciamo tutti, perché ricorrere a questi strumenti per uno scopo così semplice? Forse sto esagerando, forse sono troppo "idealista" e prolisso .. ma d'altra parte è così che mi è stato insegnato: risparmiare singoli byte di memoria, guardare all'efficienza degli algoritmi, riscrivere una condizione fino a quando non si arriva all'ottimizzazione della procedura ecc. "

Tutto giustissimo e concordo pienamente.
:) :) :)

Sono anch'io un' "idealista" e magari anche prolisso.
Neanche io ti conosco come programmatore ma da quello che hai scritto si capisce che la sai lunga in fatto di programmazione.

Detto questo ti rimando alla domanda:
Vorrei fare un programma in VB che monitorizzi la tastiera,ecc...

Credi che un programmatore esperto si rivolga al VB per fare un programma "così semplice ?"
Non me ne voglia chi ha posto la domanda...Non mi reputo il programmatore più bravo di questa terra, ne pretendo di gudicare l'operato di altri, però incoraggio chi vuole iniziare.

Gli hai consigliato di scriverlo in un linguaggio a basso livello...presumo l'assembler perchè anche il C sarebbe "troppo pesante".
Ma in assembler su quali registri devo agire ?
Quali interrupt devo richiamare ?
Le istruzioni IN e OUT come le gestisco ?
E come faccio a scrivere il file di log sull'hard disk ?

PS:Anche la mia è una opinione personale e non una critica, ognuno lavora come meglio crede

Bye

:cool:

LoryOne
09-09-2002, 17.52.55
P8257 WebMaster,
mi sapresti indicare un sito da quale possa scaricare una guida completa sul C++ ?

Avevo un'ottimo libro...Uno stramaledetto giorno lo prestai ad un amico...Un giorno gli chiesi "Mi dai indietro il libro..?"...mi rispose "Te l'ho gia ridato, io non ce l'ho !"

Mi sa che se l'è tenuto !




:mad: :mad: :mad:

P8257 WebMaster
11-09-2002, 15.31.54
Originariamente inviato da LoryOne
P8257 WebMaster,
mi sapresti indicare un sito da quale possa scaricare una guida completa sul C++ ?

Avevo un'ottimo libro...Uno stramaledetto giorno lo prestai ad un amico...Un giorno gli chiesi "Mi dai indietro il libro..?"...mi rispose "Te l'ho gia ridato, io non ce l'ho !"

Mi sa che se l'è tenuto !

:mad: :mad: :mad:

Lory, direi che il tuo discorso sopra sull'applicazione non fa una piega, vedi, questi thread mi sono utili per capire quando veramente esagero sull'idealismo .. :D

comunque, x C++ io avevo intravisto le guide presenti su programmazione.it e mi sembravano ottime .. ora però non so se siano ancora online (è francamente da un po' che non visito quel sito).
Per quanto riguarda lo sviluppo (win32) solitamente faccio riferimento all'msdn (http://msdn.microsoft.com), la conoscerai sicuramente .. ed è a mio avviso una libreria completa, di facile consultazione e sempre aggiornata (vi sono naturalmente alcune limitazioni, come al solito.. )

Anche a me hanno "rubato" un paio di libri con la scusa del "me lo presti?" .. uno di questi trattava molto bene il Borland C++ 3.0 con l'estensione visuale TurboVision (y)

Bye :cool:

LoryOne
11-09-2002, 23.10.38
Ti ringrazio comunque.
Sei stato gentile a rispondere, l'ho apprezzato.

A buon rendere.

:)

Blisset
13-09-2002, 07.32.31
C'è un modo in VB6 per catturare l'evento della pressione di una combinazione di tasti (ad es. Ctrl-A), quando il programma o il form non ha lo stato attivo o è nella traybar ?
Grazie

LoryOne
14-09-2002, 00.13.13
Sinceramente non saprei, non mi è mai capitato.
VB6 non ci viene certo incontro ma anche qui credo che l'utilizzo delle API sia fondamentale, magari utilizzando l'hooking sul form.