AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi GetComputerName Delphi 2009
Thema durchsuchen
Ansicht
Themen-Optionen

GetComputerName Delphi 2009

Ein Thema von D0N · begonnen am 5. Jun 2009 · letzter Beitrag vom 6. Jun 2009
Antwort Antwort
D0N

Registriert seit: 28. Jan 2008
Ort: Fischbach
35 Beiträge
 
RAD-Studio 2010 Arc
 
#1

GetComputerName Delphi 2009

  Alt 5. Jun 2009, 15:37
Hallo

ich hab ne frage...

ich hab in der Code Library

diese Funktion gefunden

Delphi-Quellcode:
function GetComputerName(IPAddr: string): string;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr := inet_addr(IPAddr);
  HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt <> nil then
    Result := StrPas(Hostent^.h_name)
  else
    Result := '';
end;
nun wollte ich es mit Delphi 2009 compilieren nun zeigt er mir an

[DCC Fehler] Multi5.pas(73): E2010 Inkompatible Typen: 'Char' und 'AnsiChar' ich kenn mich noch net so gut aus mit Delphi 2009 daher weiß ich nicht was ich tun muss vllt willst ihr ja wie ich es zum laufen bekomme

mfg
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
110 Beiträge
 
Delphi 12 Athens
 
#2

Re: GetComputerName Delphi 2009

  Alt 5. Jun 2009, 16:01
Hallo,

Zitat von D0N:
nun wollte ich es mit Delphi 2009 compilieren nun zeigt er mir an

[DCC Fehler] Multi5.pas(73): E2010 Inkompatible Typen: 'Char' und 'AnsiChar' mfg
Das WinSock-API ist nicht Unicode-fähig und arbeitet intern mit AnsiChars. Ab Delphi 2009 ist "String" aber Unicode. Die Funktion muss so angepasst werden, dass Unicode-Strings rein und raus gehen, intern aber wieder auf AnsiString umgewandelt wird:

Delphi-Quellcode:
function GetComputerName(IPAddr: String): string;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr := inet_addr(PAnsiChar(AnsiString(IPAddr))); // <-- IP-Addr nach AnsiString wandeln
  HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt <> nil then
    Result := string(StrPas(Hostent^.h_name)) // <- Hostname nach String wandeln
  else
    Result := '';
end;
Dieser Code funktioniert unverändert auch mit D2007.

HTH
Achim
Achim
  Mit Zitat antworten Zitat
D0N

Registriert seit: 28. Jan 2008
Ort: Fischbach
35 Beiträge
 
RAD-Studio 2010 Arc
 
#3

Re: GetComputerName Delphi 2009

  Alt 5. Jun 2009, 16:15
Cool funktioniert.

danke



nur ne kurze frage noch was benutz ich am besten um ne exe auszuführen.

auch mit parametern

z.b. kann man ja vnc.exe mit der ip hintendran ausführen dann muss man nurnoch (falls vorhanden) das Passwort angeben.

ich hab mal irgendwo WinExec gelesen

und auch irgendwas mit ShellExecute


was benutz ich am besten?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: GetComputerName Delphi 2009

  Alt 5. Jun 2009, 16:16
WinExec ist veraltet (Win16-Zeiten). ShellExecute ist oft die beste Methode. Ab und Zu auch CreateProcess. Beispiele findest du genügend im Forum.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
D0N

Registriert seit: 28. Jan 2008
Ort: Fischbach
35 Beiträge
 
RAD-Studio 2010 Arc
 
#5

Re: GetComputerName Delphi 2009

  Alt 6. Jun 2009, 00:58
okay danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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