Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Agosto 23, 2019, 09:16:44 am

Titolo: Linux: Ricavare handle da PID per SendMessage
Inserito 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
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: Stilgar - Agosto 23, 2019, 09:21:48 am
Non saprei.

Tienici aggiornati

Stilgar
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: nomorelogic - Agosto 26, 2019, 03:42:31 pm
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
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: bonmario - Agosto 26, 2019, 04:39:49 pm
Grazie, ma probabilmente ti è sfuggito: mi serve solo per Linux, per Windows ci sono già riuscito !!

Ciao, Mario
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: nomorelogic - Agosto 26, 2019, 05:00:36 pm
pardon hai ragione :)

Edit:
forse potresti usare un TProcess che usa kill per mandare un segnale
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: bonmario - Agosto 26, 2019, 05:12:53 pm
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
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: nomorelogic - Agosto 26, 2019, 05:27:55 pm
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)
Titolo: Re:Linux: Ricavare handle da PID per SendMessage
Inserito da: bonmario - Agosto 26, 2019, 06:12:15 pm
Ok, grazie !!

Ciao, Mario