AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ip aus Registry auslesen.

Ip aus Registry auslesen.

Ein Thema von Jan · begonnen am 21. Jan 2003 · letzter Beitrag vom 23. Jan 2003
Antwort Antwort
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#1

Ip aus Registry auslesen.

  Alt 21. Jan 2003, 01:23
Hallo Delphipraxis,
ich habe ein Programm zum auslesen meiner ip aus der Registry geschrieben.
Dabei wird die ip letztenendes folgendermassen aus einem Reg-schlüssel gelesen:

Code:
      Reg.ReadBinaryData('IpAddress', Puffer, PuffSize);
Nun weiss ich auch, dass dieser Schlüssel existiert, und ich weiss auch, dass da meine ip-Addresse drinsteht, aber wenn ich den Buffer3 folgendermassen ausgebe:

Code:
Memo1.Lines.Add(Puffer);
dann passiert nichts weiter, als dass

0.0.0.0 ausgegeben wird. Was mache ich falsch?

Puffer ist übrigends folgendermassen definiert:

Code:
Puffer: array [1..32] of Char;
Ok, ich hoffe mal, dass das genug informationen sind um das Problem zu schildern.
Gruss
Jan[/code]
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 21. Jan 2003, 01:31
alarm zurück, der wert wurde einfach immer nur überschrieben.
BB!
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 21. Jan 2003, 09:07
Hallo nochmal,
jetzt ist der thread wenigstens nicht umsonst denn ich hab ein weiteres Problem zu diesem Puffer:
Zu Anfang funktionierte das Lesen des Ip-wertes aus der registry ohne Probleme, doch dann hab ich da etwas dran herumgebastelt, d.h. ich habe alles in eine for-Schleige gehängt an einer anderen Stelle ausgegeben, und komischer Weise bekommen ich jetzt eine exception, die mir sagt, dass 'IPAddress' vom falschen Typ ist, aber von den oben genannten Deklarationen bin ich kein Stück abgewichen.
Weiss da jemand woran das liegen kann, dass von minimalen code-Änderungen, wie z.b. das Hinzufügen einer Ausgabe des Puffers durch showmessage(); auf einmal der Datentyp des Registry-schlüssels verändert werden soll?
Danke für alle Antworten.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4
  Alt 21. Jan 2003, 11:16
Warum eigentlich: Registry?
Es gibt eine passende WinSock-Funktion (muss ich mal rauskramen, wenn sie keiner zur Hand hat), die alle benutzten IPs auflistet. Also, die vom LAN, wenn du online bist dann auch die vom Web-Provider, usw.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 21. Jan 2003, 11:19
Hallo MathiasSimmack,
das ist mir schon bewusst, ich kenne auch genau diesen thread hier aus der DP, aber wenn man den Kram aus der reg ausliest, dann geht man das ganze einfach mal von einer anderen seite an, eben mit registry.
Deswegen würde ich das gerne wissen.
BB!
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.111 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 22. Jan 2003, 19:46
Moin Jan,

mal ganz allgemein gesagt:
Das direkte Auslesen aus der Registry sollte man, möglichst, nur dann wählen, wenn es entweder der dokumentierte Weg ist, oder es wirklich keinen anderen Weg gibt.

Gerade die TCP/IP Parameter habe seit Windows 2000 ihre Position geändert, so dass ein Programm, das unter 9x/ME/NT4 noch einwandfrei lief, unter 2000/XP wohl Fehler produzieren dürfte.
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
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 23. Jan 2003, 01:46
Hallo Christian,
Also der Code funktioniert unter xp und 2k, und es ist mir schon klar, dass es nicht immer sehr schlau ist aus der Registry auszulesen, da diese variabel ist, allerdings geht es mir ja auch garnicht wirklich um die ip, weil ich das auch anders machen kann, aber es wurmt mich, dass eine zuordnung zu einer variable von jetzt auf gleich einfach nichtmehr funktioniert, obwohl nur minimale änderungen an belanglosen stellen vorgenommen wurden, und das würde ich halt gerne für spätere Zeiten vermeiden lernen.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.111 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 23. Jan 2003, 12:43
Moin Jan,

manchmal kann es daran liegen, dass Du versuchst einen Datentyp auszulesen, den der entsprechende Wert nicht hat. Daher kann es durchaus sinnvoll sein vorher mit GetDataType zu ermitteln, welchen Typ ein Wert hat.
Ich weiss leider nicht mehr an welcher Stelle, und in welchem Zusammenhang das war, aber ich hatte schon mal den Fall, dass ein Wert den Typ gewechselt hat.

[EDIT]
Manchmal kann ein Wert auch nicht mehr vom System genutzt werden, wenn man ihn mit dem falschen Typ schreibt.
[/EDIT]
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
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 23. Jan 2003, 12:50
Hallo Christian,
da ich weder in die registry geschrieben habe, und sich der Wert auch nicht komplett geändert haben kann, verstehe ich nicht wie das so sein kann, ich habe lediglich ans Ende einer Prozedur versucht den Buffer auszugeben, und schon war der Typ des Buffers an der codestelle, wo er gelesen werden sollte, falsch, aber wenn ich die Ausgabe wieder gelöscht habe, klappte alles hervorragend, jetzt habe ich aber das Programm so umstrukturiert, dass es mir nicht genügt eine Ausgabe zu löschen, sondern ich will dieses Problem beseitigen. Es geht bei dem Code wieder um einen Code vom Swissdelphicenter, der allerdings nicht funktionierte. Nachdem ich ihn umgeschrieben habe, so dass er mir nurnoch eine einzige ip, statt allen ausgibt, funktionierte er, nur dass dann zum Schluss besagter Fehler eintrat.
Logischerweise finde ich das **** und das soll weg :]
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:51 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