|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
[Win32] Inviare Ctrl+C ad un altro processo
sembrerà banale come domanda (specie fatta da me che passo le mie ore sul forum a propagandare Windows e Win32
![]() come si fa a simulare Ctrl+C in un altro processo, sapendo ovviamente che si tratta di un programma console? è possibile? |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
up
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 11795
|
in pratica il problema che vorremmo risolvere sarebbe quello di mandare un comando di "term" cioe' non il kill classico, il comando di chiusura della console, come se cliccassi sulla X di chiusura della finestra
c'e' modo di emularlo in qualche modo avendo i diritti di admin? grazie
__________________
Ho fatto affari con: troppi per elencarli Vendo: NAS PRO QNAP 4 BAIE 419P+ CON LCD |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
oddio alla X di chiusura non c'avevo pensato...
faccio un tentativo di WM_SYSCOMMAND |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ehm, ora il bello però è capire se effettivamente il processo è basato su un eseguibile CUI o GUI... :|
esiste un'API che mi permette di saperlo? non mi dite che devo andare a leggere gli headers dell'eseguibile |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 11795
|
Quote:
e tu saresti un programmatore?
__________________
Ho fatto affari con: troppi per elencarli Vendo: NAS PRO QNAP 4 BAIE 419P+ CON LCD |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Codice:
def kill(pid):
import win32api
handle = win32api.OpenProcess(1, 0, pid)
return (0 != win32api.TerminateProcess(handle, 0))
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
a dire il vero Ctrl+C è implementato tramite SEH: fa saltare un'eccezione che risale fino all'handler di qualche DLL di Windows (presumibilmente kernel32.dll), il quale esce dal processo in una maniera che somiglia molto alla terminazione brutale; di conseguenza TerminateProcess dovrebbe essere la stessa cosa in molti casi. ma in teoria un programma potrebbe aver installato un handler per Cltr+C, il quale non verrebbe eseguito in seguito a una TerminateProcess. |
|
|
|
|
|
|
#9 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
MHWUAMWHAUWMAHWAUWMAHWUAMWHAUWAMHWUA XDXDXDXD
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
però resta il problema di come fare a sapere se è CUI o GUI...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:28.













e tu saresti un programmatore?








