2011-12-06 9 views
8

Come posso sapere quale processo ha il focus corrente?Come trovo il programma con l'attuale fuoco?

Edit: sistema operativo Windows, ovunque da XP a 7

+0

Qual è il problema che stai cercando di risolvere, dove pensi che ottenere il programma con l'attuale focus aiuterà? –

+0

@Raymond Chen, vorrei prototipare un sistema che registrerà quale finestra è attualmente aperta, da lì determinare quale programma è effettivamente in esecuzione (cioè Spotify) una volta che le informazioni sono note input trap/log tastiera ed eseguire un'azione (es. , tieni un registro delle canzoni cercate). Grazie per la modifica BTW. – Fabian

+1

Quindi vuoi fare un keylogger in grado di indirizzare qualsiasi processo ;-) – AJG85

risposta

9

Chiama il GetForegroundWindow per ottenere l'handle della finestra focalizzata e quindi chiama GetWindowThreadProcessId per ottenere l'ID del processo che ha creato quella finestra. Quello che fai con quell'ID dipende da te.

+0

Hai ragione. Questa è l'API che intendevo suggerire .. cancellando la mia risposta e +1 – AJG85

1

i primi passi sono EnumProcesses WinAPI funzione (e forse OpenProcess)

2

È possibile utilizzare EnumProcesses per ottenere l'elenco dei processi in esecuzione.

Dopo aver recuperato le maniglie, controlla GetProcessInformation, potrebbe esserci qualcosa che può aiutarti.

Problemi correlati