![]() |
Computername auslesen m. Programm auf Netzlaufwerk
Hi all,
ich habe Computer A und Computer B. Das Verzeichnis c:\test auf Computer B wurde auf Computer A als Netzlaufwerk Z verbunden. Nun wird von Computer A ein Programm in Laufwerk Z kopiert und ausgeführt, und dieses Programm soll mir den Computernamen von Computer B ausgeben, gibt allerdings den Namen von Computer A aus. Gibts da ne Möglichkeit was zu drehen oder ist das so nicht möglich? Danke und Grüße, ben |
Re: Computername auslesen m. Programm auf Netzlaufwerk
Guten Morgen,
das Dein Programm auf Computer A läuft wird auch nur der Rechnername von Computer A ausgelesen. Vielleicht gibt es die Möglichkeit den Namen von Computer B über WMI abzufragen - dazu kann ich nun allerdings kein Beispiel geben. Grüße Klaus |
Re: Computername auslesen m. Programm auf Netzlaufwerk
Hallo,
wenn du die IP von dem Rechner kennst so könntest du folgenden Code verwenden
Delphi-Quellcode:
Der Code stammt aus Luckies Ping
if (NetWkstaGetInfo(PWideChar(WideString(IpStr)), 100, @pBuffer) = NERR_SUCCESS)
then Name := PWKSTA_INFO_100(pBuffer)^.wki100_computername else Name := IPAddrToName((IpStr)); findest du ![]() Gruß Holger. |
Re: Computername auslesen m. Programm auf Netzlaufwerk
Hallo,
du kannst die Computernamen relativ einfach über NetBios (DNS) ermitteln. Mit Hilfe der Suchfunktion findest du sicher auch einige Beispiele, wie z.B. ![]() Gruß Frank |
Re: Computername auslesen m. Programm auf Netzlaufwerk
Hallo Ben,
dein Programm kennt seinen Speicherort - ParamStr(0). Über die Netzwerkfunktionen kannst du das Share zum Laufwerksbuchstaben ermitteln und Teil des so gewonnenen UNC-Namens ist der DNS bzw. Maschinenname:
Delphi-Quellcode:
Grüße vom marabu
uses
StrUtils; function GetConnection(const DriveName: String): String; var unc: array of Char; size: Cardinal; begin size := 0; if WNetGetConnection(PChar(DriveName), nil, size) = ERROR_MORE_DATA then begin SetLength(Result, Pred(size)); WNetGetConnection(PChar(DriveName), @Result[1], size); end else Result := ''; end; procedure TDemoForm.ButtonClick(Sender: TObject); var drive, share, machine: String; begin drive := ExtractFileDrive(ParamStr(0)); share := GetConnection(drive); machine := Copy(share, 3, PosEx('\', share, 3) - 3); ShowMessage(machine); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz