PDA

Visualizza la versione completa : [DELPHI] Creare un processo "primario" sul PC


gianni73na
27-09-2011, 18:42
Buonasera,
avrei bisogno di risolvere un problema e cerco di spiegarmi.....
Ho creato un'applicazione Pascal quindi in ambiente Delphi e vorrei che questa ricevesse tutti gli input inviati da tastiera anche se l'applicazione non è a video o comunque in secondo piano.
Ok, ok mi spiego con un esempio:
Ho una TEdit.Text dove l'utente può scrivere e un contatore x (del tipo x:=x+1) che incrementa al digitare dei tasti, quindi se l'utente inizia a scrivere, il contatore avanza di 1 per ogni carattere digitato.
Adesso quello che mi occorre è incrementare questo contatore anche quando l'utente non digita nella TEdit.Text del mio programma, quindi potrebbe utilizzare word, excel, notepad o altri programmi, magari digita una url nel browse ecc....
Insomma vorrei che la mia applicazione sia a livello "inferiore" rispetto alle altre oppure che possa effettuare dei controlli in memoria da poter rilevare la battitura dei tasti.
Forse un comando Assembler per ricevere l'input?
:confused: Mi sarò spiegato in modo tale da farmi capire??
Grazie
Gianni

oregon
27-09-2011, 18:53
Ti sei spiegato ma non ho capito che tipo di programma ha questo tipo di necessità ...

gianni73na
27-09-2011, 19:19
Generalmente alcuni programmi sembrano inutilizzabili, ma hanno applicazioni che a noi non sono conosciute........
Ad esempio un software del genere potrebbe immagazzinare il numero di letture che effettua un lettore di codici a barrein un magazzino per poi poter sapere se il numero di codici letti equivale al numero di prodotti evasi.....
Questo ovviamente è solo un esempio.
Attendo suggerimenti sull'argomento principale...

oregon
27-09-2011, 20:09
Sì ... ma non hai risposto precisamente circa il programma che stai scrivendo ...

Insomma, ammesso che ci sia un metodo per farlo, cosa se ne farebbe un programma di tutti i dati inseriti in un PC in modo così "eterogeno" ? (dati di word, comandi, dati inseriti in un browser ...)

alka
27-09-2011, 20:26
Aggiunto il linguaggio nel titolo: ricordo che va obbligatoriamente indicato, come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

gianni73na
27-09-2011, 22:23
Si, scusami Alka, leggerò il regolamento....

gianni73na
27-09-2011, 22:29
Oregon non capisco l'interesse a sapere con precisione il programma che ho sviluppato.
Si tratta solo di una procedura da implementare in un progetto Delphi e occorre che io passi questo valore, a quello che servirà in realtà non interessa neanche a me, è un lavoro che devo svolgere e mi hanno chiesto questa elaborazione, è chiaro adesso percHè non l'ho detto prima?
Spero capisca....
Ora però attendo qualche anima buona.
Per quanto possa conoscere il Pascal, credo che questo tipo di "funzione" debba essere espletata a livello di input dall'indirizzo della porta ove è installata la tastiera, quindi in Assebly.
Bhe, cercherò di studiare i comandi in attesa di suggerimenti.

MItaly
27-09-2011, 22:34
Originariamente inviato da gianni73na
Oregon non capisco l'interesse a sapere con precisione il programma che ho sviluppato.
Spero capisca....
Il problema è che questo genere di richiesta è un grande classico per programmi malevoli come keylogger, per cui ci si va sempre cauti.


Ora però attendo qualche anima buona.
Per quanto possa conoscere il Pascal, credo che questo tipo di "funzione" debba essere espletata a livello di input dall'indirizzo della porta ove è installata la tastiera, quindi in Assebly.

Bum, adesso, non esageriamo, che ci sta a fare allora il sistema operativo? :D
Basta creare una hook globale tramite le apposite API di Windows; in C si fa tranquillamente - con un po' di cautela -, non ho idea di come si faccia in Delphi.

gianni73na
27-09-2011, 22:48
..... pensavo fosse l'unico modo per poter ricavare informazioni da una periferica. Ma MItaly, la tua risposta in merito alla hook è stata utile, ho già trovato qualcosa, appena posso provare la funzione vi faccio sapere...
Per quanto riguarda l'utilizzo di queste funzioni per programmi malevoli, non è il mio caso...

alka
27-09-2011, 23:21
Originariamente inviato da gianni73na
Adesso quello che mi occorre è incrementare questo contatore anche quando l'utente non digita nella TEdit.Text del mio programma, quindi potrebbe utilizzare word, excel, notepad o altri programmi, magari digita una url nel browse ecc....
Insomma vorrei che la mia applicazione sia a livello "inferiore" rispetto alle altre oppure che possa effettuare dei controlli in memoria da poter rilevare la battitura dei tasti.


Il programma dovrebbe acquisire tasti premuti genericamente in qualsiasi applicazione del sistema: questo è un keylogger, nulla di più, nulla di meno.

Indipendentemente dallo scopo con cui viene utilizzato, che non possiamo ovviamente verificare di persona, non è un tipo di software trattato qui. Il fatto che sia stato richiesto da terzi, o che lo si voglia fare per studio, o per qualsivoglia altro motivo, è irrilevante.

Loading