AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was passiert hier?

Ein Thema von steppo · begonnen am 31. Dez 2002 · letzter Beitrag vom 30. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Was passiert hier?

  Alt 30. Nov 2003, 13:44
Moin Lefko,

Zitat von Lefko:
Ich hab Showmessage(GetEnvironmentVariable(COMPUTERNAME)) geschrieben; auch dieser string ist '', also leer.
Da Du das gar nicht compiliert bekommst, kannst Du auch keinen Leersting erhalten.

Schau Dir doch mal die Dokumentation zu den Funktionen an.
Könnte helfen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#12

Re: Was passiert hier?

  Alt 30. Nov 2003, 13:52
Hi Seehase,

lol, doch, geht kompiliert! Aber COMPUTERNAME ist dabei das leere result aus der function von Luckie lol, hab ich n bockmist geschrieben

zu GetEnvironmentVariable steht aber:

Zitat:
GetEnvironmentVariable(Name: string): string;

Description
GetEnvironmentVariable returns the value of the Windows environment variable indicated by Name.
Wie ist denn der Name dieser Variablen? Hab keine Ahnung von allem, was um Delphi herum passiert...

oder meinst du das hier:

Zitat:
The GetEnvironmentVariable function retrieves the value of the specified variable from the environment block of the calling process. The value is in the form of a null-terminated string of characters.

DWORD GetEnvironmentVariable(

LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);


Parameters

lpName
Points to a null-terminated string that specifies the environment variable.

lpBuffer


Points to a buffer to receive the value of the specified environment variable.

nSize

Specifies the size, in characters, of the buffer pointed to by the lpBuffer parameter.



Return Values


If the function succeeds, the return value is the number of characters stored into the buffer pointed to by lpBuffer, not including the terminating null character.
If the specified environment variable name was not found in the environment block for the current process, the return value is zero.
If the buffer pointed to by lpBuffer is not large enough, the return value is the buffer size, in characters, required to hold the value string and its terminating null character.
Wenn ja, bitte erklär mir das kurz, ich kann mit 'Buffer' und 'address' und sowas nicht viel anfangen...

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Was passiert hier?

  Alt 30. Nov 2003, 16:04
Moin Lefko,

ich meinte die API Funktion
Die Kapselung kennt D5 nicht.


Probier das hier mal aus.

Delphi-Quellcode:
var
  pBuf : PChar;
  dwLen : DWORD;

begin
  // Mit Hilfe der Funktion die erforderliche Buffergrösse ermitteln
  pBuf := nil;
  dwLen := 0;
  dwLen := GetEnvironmentVariable('COMPUTERNAME',pBuf,dwLen);
  inc(dwLen);
  // und dann erst auslesen
  pBuf := AllocMem(dwLen);
  try
    if GetEnvironmentVariable('COMPUTERNAME',pBuf,dwLen) = 0 then begin
      ShowMessage(SysErrorMessage(GetLastError));
    end else begin
      ShowMessage(trim(pBuf));
    end;
  finally
    FreeMem(pBuf,dwLen);
  end;
end;
Wie in C üblich gibt die Funktion ihren Rückgabewert in einen Speicherbereich aus, den man als Pointer (in diesem Falle Pointer auf Character) übergibt, und der vorher in der erforderlichen Grösse reserviert werden muss. (Netxxx Funktionen unter NT sind hier eine Ausnahme).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#14

Re: Was passiert hier?

  Alt 30. Nov 2003, 19:58
Allet klar, danke für das Beispiel!

Ich werd das morgen ausprobieren, hab jetzt keine Zeit.

BTW: Ich hab mir das gedacht, um - wie gesagt - einen PC zu identifizieren.

Gibbet nicht auch noch andere/einfachere/bessere Möglichkeiten, dies zu tun?

Hab was gelesen mit "MAC Adresse auslesen" aber das geht ja nur, wenn man ne Netzwerkkarte hat, was ja nicht jeder tut.


MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:42 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