oregon ha scritto:
Non scarichi la DLL ma termini il thread il cui TID è indicato nella riga. Il thread, come ti ho detto, termina con quella API. Attento però che quella API è un po' "brutale" in quanto non notifica il termine alla DLL e non libera le risorse. Va usata con cautela.
Ti ringrazio Oregon. Il mio vero obbiettivo è proprio imparare. Sono gia a conoscienza del fatto che il killing thread è pericoloso perchè non notifica e perchè rimangono le risorse allocate,ma questi sono test iniziali!
Ho cercato l'API da te suggerita nel sito microsoft e l'avevo gia analizzata. Ho creato un piccolo programmino che dovrebbe analizzare tutti i processi di windows. I problemi che si presentano sono i seguenti:
-il TID (per quanto ho capito) varia ad ogni lancio dell'applicazione, quindi sarebbe difficile poter terminare il programma in maniera automatica, se tutte le volte varia. Rischi di terminare un thread importante, o comunque, di non terminare tutti quelli necessari.
-Il secondo problema è che nell'esempio corrente, sono riuscito a collegarmi al processo e a ottenerne il PID (così da analizzaare i TIDs che variano ogni volta. Nella mia testa, se mi collego al PID e lo analizo, DOVREI trovare tutti i TIDs a lui annesso), ma non riesco a capire come posso filtrare i threads in base al PID. Facendo una stampa di tutti i threads (come nel caso corrente), me ne ritrovo milioni
Codice (C++/C)
https://pastebin.com/DedcCVVN
Quindi, ricapitolando, sono riuscito a ottenere il PID collegandomi alla finestra per nome ( c'erano modi più eleganti, ma diciamo che per ora va), sono riuscito a stampare anche tutti i threads nel mio pc ( a quanto ho capito), mi basterebbe ora filtrarli ora ... ma la vedo dura ... dici che sono sulla buona strada ?