Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: bonmario - Agosto 23, 2019, 09:16:44 am
-
Ciao a tutti,
dovrei usare SendMessage per mandare un messaggio ad un altro programma, di cui ho il PID.
SendMessage però ha bisogno dell'Handle, e non del PID.
Qualcuno mi sa dire come posso ricavarlo partendo dal PID?
P.S. Mi serve solo per Linux, in Windows ho già trovato come fare.
Grazie in anticipo, Mario
-
Non saprei.
Tienici aggiornati
Stilgar
-
forse puoi provare con FindWindowA
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindowa (https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindowa)
l'ho usato con Delphi in passato e funzionava egregiamente
-
Grazie, ma probabilmente ti è sfuggito: mi serve solo per Linux, per Windows ci sono già riuscito !!
Ciao, Mario
-
pardon hai ragione :)
Edit:
forse potresti usare un TProcess che usa kill per mandare un segnale
-
Vorrei fare l'esatto contrario ....
Mi spiego meglio: ho scoperto solo un paio di settimane fa' l'esistenza di Sendmessage e PostMessage.
Ho un programma fatto qualche anno fa', che al momento funziona così:
- fa dei ragionamenti su altri programmi che stanno girando
- se in base ai ragionamenti che fa, quei programmi sono da terminare, li killa
Ora che ho scoperto Sendmessage e PostMessage, volevo usare un approccio un po' meno aggressivo: invece di killare i processi, inviargli un messaggio. In questo modo, i programmi in questione potrebbero gestire la cosa e chiudere eventuali gestioni.
Ciao, Mario
-
Se i programmi a cui devi mandare un messaggio li hai fatti tu le cose cambiano... :)
dai un'occhiata qua, c'è una libreria per inter-process-communication con tanto di demo per lazarus
https://github.com/z505/SimpleIPC-lib (https://github.com/z505/SimpleIPC-lib)
-
Ok, grazie !!
Ciao, Mario