Zitat von
Olli:
Daß
SetComputerNameEx Beschränkungen hinsichtlich des Namens (insbesondere des DNS-Namens) hat, ist dir aber schon beim Durchlesen der Doku klargeworden?
Zitat:
[in] The new name. The name cannot include control characters, leading or trailing spaces, or any of the following characters: " / \ [ ] : | < > + = ; , ?
Mir ist das schon klar, das SetComputerNameEx Beschränkungen hinsichtlich des Namens hat. Denn ich habe mir die Beschreibung zu dem Befehl schon durchgelesen.
Zitat von
Olli:
... übrigens, Rolf, etwas mehr Eigeninitiative können wir wohl von dir erwarten, oder? Kleiner Tip: ich habe lange bevor die
DP existierte mit Delphi angefangen, da gab's niemanden der einem irgendwas vorgekaut hat so wie du es willst. Es gilt auch in Foren noch: RTFM - dann fragen.
Eigeninitiative zeige ich schon. Denn wenn ich eine Frage hier stelle, dann habe ich schon vorher etwas ausprobiert. Desweiteren, wenn ich nur einen Befehl um die Ohren gehauen bekomme und ich den nicht kenne, dann kann ich ja wohl nach einem kleinen Beispiel fragen, zumal es meine Eigenart ist, dass ich aus einem Beispiel viel besser lerne. Noch dazu fange ich gerade erst an mit der
MSDN zu arbeiten. Ich habe die vorher noch nie richtig benutzt oder mir war es nie so richtig bewusst, dass ich eventuell die
API benutzt habe. Das heißt ich bin ein absoluter Anfänger. Einem Anfänger gestehe ich schon mal etwas "dumme" Fragen. Es kommt auch noch dazu, das ich nicht nur alleine hier schaue, sondern auch in Google suche und auf andere Delphi-Seiten gehe und mir dort Informationen hole.
So nun aber wieder zum Thema zurrückzukommen. Ich habe mir jetzt mit GetLastError den Fehlercode anzeigen lassen.
Zitat:
Fehlercode 87 ---> ERROR_INVALID_PARAMETER
Dieses ist mir nicht ganz klar. Die Deklaration der Funktion sieht ja so aus :
Delphi-Quellcode:
Function SetComputerNameEx
(
NameType : COMPUTER_NAME_FORMAT;
lpBuffer : PChar
) : BOOL; StdCall; External kernel32 Name 'SetComputerNameExA';
Ich rufe die Funktion so auf mit einer Variable
Seriennummer, die als String deklariert ist, auf :
SetComputerNameEx(ComputerNamePhysicalDnsHostname,PChar(Seriennummer));
Der Inhalt der Seriennummer entspricht den Regeln aus der
MSDN von dem Befehl SetComputerNameEx. Jetzt kommt der oben angegebene Fehlercode. Wenn ich das ganze so aufrufe :
SetComputerNameEx(ComputerNamePhysicalDnsHostname,'Globi');
Dann führt er mir die Funktion einwandfrei aus. Habe ich da irgendwo einen Denkfehler drin, oder mache ich etwas falsch ?