Die Programme kannst du nur bedingt unterscheiden.
Das würde dann Anhand der Quelle /
IP / Port und Ziel / Port gehen.
Unter Umständen noch am genutzten Protokoll.
Programmauslesen:
Im Programm gibt es doch bestimmt ein Statusfeld, wo steht "Verbunden" / "Getrennt".
Warum geht die Proxy Geschichte nicht?
Es gibt noch eine komplizierte Variante über eine LSP, Layerd Service Provider.
Das ist dann eine Winsockerweiterung.
Da kannst du auch die Anwendung rausfinden.