Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Feststellen, ob Programm über Netzwerk gestartet wurde? (https://www.delphipraxis.net/83989-feststellen-ob-programm-ueber-netzwerk-gestartet-wurde.html)

jaikai 9. Jan 2007 19:40


Feststellen, ob Programm über Netzwerk gestartet wurde?
 
Naamd,

ich bin ein absoluter Netzwerk-Laie, deshalb hab ich ne vermutlich dumme Frage.

Das Programm liegt auf Rechner X im Netzwerk.
Ich sitze vor dem Rechner Y - wie kann man, möglichst simpel, feststellen, ob die *exe auf einem anderen Rechner im Nezz oder auf dem lokalen Rechner gestartet wurde?



Danke

arbu man 9. Jan 2007 19:48

Re: Feststellen, ob Programm über Netzwerk gestartet wurde?
 
Also über paramstr(0) kann man den Dateinamen der Exe herrausfinden.

Du musst also nur herrausfinden ob der Rechnername im paramstr(0) vorkommt.

mfg, Björn

Flare 9. Jan 2007 19:59

Re: Feststellen, ob Programm über Netzwerk gestartet wurde?
 
Zitat:

Zitat von arbu man
Du musst also nur herrausfinden ob der Rechnername im paramstr(0) vorkommt.

Dumm nur, wenn jemand einen den Ordner oder einen übergeordneten Ordner gleich dem PC-Namen benennt. :gruebel:
Aber da der PC-Name eh bloß am Anfang stehen kann, kann man das eingrenzen.
(Oder steht bei einer Domäne noch die Domäne davor? Ich kenne mich da nicht so aus)


Flare

FriFra 17. Jan 2007 23:07

Re: Feststellen, ob Programm über Netzwerk gestartet wurde?
 
Noch dümmer, wenn jemand eine Netzwerk-Freigabe gemappt hat ;) ...

Prüfe einfach, ob am Anfang von ParamStr(0) "\\" vorkommt (auch ein derartiger Zugriff auf eine lokale Freigabe ist ein Netzzugriff!) und im anderen Fall musst Du prüfen, ob das Laufwerk ein Netzlaufwerk ist (s. Code-Library).

bitsetter 18. Jan 2007 01:19

Re: Feststellen, ob Programm über Netzwerk gestartet wurde?
 
Kleine Ergänzung:
Delphi-Quellcode:
function IsNetzwerk: boolean;
var
   Pfad: AnsiString;
begin
  Result:= false;
  Pfad:= ExtractFilePath(ParamStr(0));
    if length(Pfad)> 1 then
    begin
    Result:= boolean(Pos('\\', Pfad));
    if not Result then
    Result:= GetDriveType(PChar(Pfad))= DRIVE_REMOTE;
    end;
end;
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz