Ciao a tutti,
dovrei fare una funzioncina, che mi permetta di capire se sono fisicamente al lavoro, o se mi sono collegato al PC del lavoro tramite RDP.
Ho notato che, quando mi collego tramite RDP, se apro Esplora Risorse, o comunque un qualsiasi file manager, sotto "Desktop\Rete", c'è la voce "\\tsclient". Questa voce non c'è invece quando sono fisicamente al lavoro, e quindi non mi connetto tramite RDP.
Ho quindi fatto questaa funzioncina di test:
if DirectoryExistsUTF8('\\tsclient') then begin
ShowMessage('Esiste !!!');
end else begin
ShowMessage('No !!!');
end;
che però, quando eseguo, mi va sempre nel ramo del "No".
Qualcuno mi sa dire come faccio a verificare l'esistenza o meno di "\\tsclient"?
Grazie in anticipo, Mario
Dopo vari passaggi, sono capitato su questa pagina:
https://stackoverflow.com/questions/973802/detecting-remote-desktop-connection
Questa la funzioncina che ho fatto:
function IsRemoteSession:Boolean;
begin
if (GetVariabileAmbiente('SESSIONNAME').StartsWith('RDP-')) then begin
Result:=True;
end else begin
Result:=False;
end;
end;
La cosa bella è che, potendo leggere una variabile di ambiente, posso fare la stessa cosa anche all'interno di un file bat.
Se non fosse stato così, visto che mi serviva pure lì, avrei dovuto fare un programma Lazarus apposta, per poter interpretare la risposta da un file bat.
Ciao, Mario