View Full Version : [C# 2.0]Come intercettare l'apertura di un programma ?
RaouL_BennetH
01-07-2010, 07:58
Buongiorno a tutti :)
Avrei la necessità di capire come intercettare l'apertura di un programma , per esempio excel, acrobat o notepad.
Più nel dettaglio dovrei far interagire un programma di collegamento ad un client-access ibm con la suite di office.
Dovrei quindi intercettare l'apertura di questo programma quando l'utente la lancia.
E' possibile ?
Grazie mille :)
RaouL.
ciao
puoi usare il metodo statico System.Diagnostics.Process.GetProcesses() per avere la lista dei processi attivi, quindi usa la proprietà ProcessName per individuare quello che cerchi (per es: per word -> ProcessName == "WINWORD").
Ovviamente dovrai mettere la chiamata a GetProcesses in un ciclo per intercettare l'avvio del programma.
Andrea.
tomminno
01-07-2010, 09:49
Che io sappia ci sono 4 metodi:
1)Monitorare i processi aperti
2) utilizzare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs per caricare una DLL in tutti i processi che usano User32.dll
3)http://www.codeproject.com/kb/threads/procmon.aspx ma ci sono di mezzo i driver...
4) kernel hook...
Ah ovviamente tutto in C/C++
RaouL_BennetH
01-07-2010, 11:03
Che io sappia ci sono 4 metodi:
1)Monitorare i processi aperti
2) utilizzare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs per caricare una DLL in tutti i processi che usano User32.dll
3)http://www.codeproject.com/kb/threads/procmon.aspx ma ci sono di mezzo i driver...
4) kernel hook...
Ah ovviamente tutto in C/C++
Benone :) quindi tutto completamente fuori dalla mia portata.
@AlbertE:
Ci avevo pensato anche io ma dovrei fare in modo di avere un metodo in un timer che ogni tot mi controlli se il programma è attivo. Se poi è attivo succede che dovrei metterlo in pausa (cosa che non credo sia possibile) e farlo ripartire dopo un determinato evento.
Avevo qualche dubbio ma Tommo me lo ha tolto, non è cosa per me :(
Grazie mille comunque a tutti :)
RaouL.
RaouL_BennetH
01-07-2010, 12:37
mmmm... forse qualche piccola speranza la ho:
http://stackoverflow.com/questions/510372/how-to-monitor-process-program-execution-in-windows
tomminno
01-07-2010, 12:45
Benone :) quindi tutto completamente fuori dalla mia portata.
@AlbertE:
Ci avevo pensato anche io ma dovrei fare in modo di avere un metodo in un timer che ogni tot mi controlli se il programma è attivo. Se poi è attivo succede che dovrei metterlo in pausa (cosa che non credo sia possibile) e farlo ripartire dopo un determinato evento.
Avevo qualche dubbio ma Tommo me lo ha tolto, non è cosa per me :(
Grazie mille comunque a tutti :)
RaouL.
A parte che sono tomminno e non Tommo :D
Mettere in pausa l'applicativo credo sia praticamente impossibile (multithreading, gui: devi bloccare tutto?).
Ma se devi lavorare con Office perchè non scrivere un plugin? Sicuramente hai più possibilità di riuscire a gestire il software dall'interno che non dall'esterno.
[Edit] Dimenticavo che ti interessavano anche altri processi...
RaouL_BennetH
01-07-2010, 13:35
A parte che sono tomminno e non Tommo :D
Mettere in pausa l'applicativo credo sia praticamente impossibile (multithreading, gui: devi bloccare tutto?).
Ma se devi lavorare con Office perchè non scrivere un plugin? Sicuramente hai più possibilità di riuscire a gestire il software dall'interno che non dall'esterno.
[Edit] Dimenticavo che ti interessavano anche altri processi...
opppsssss scusami!! :doh:
Per gli altri processi, più che altro si tratterebbe soltanto del client-access di IBM, ma da quello che sto leggendo, credo che anche per chi sta più in alto di me in azienda come conoscenza (ma soprattutto posizione), intercettare e gestire questi tipi di eventi dal di fuori non sia una scelta progettuale proprio azzeccata. Vabbè, io più che passare il 'task' in bianco al mittente non posso proprio fare :)
Mi incuriosisce invece il discorso dei plugins per Office. Hai da passarmi qualche tutorial di base, considerando sempre che devo muovermi in ambito (.net) 2.0 ?
Grazie mille e scusa per la gaffe :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.