Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 08.07.03 12:50 
Hallo,
die Überschrift verrät ja so ziehmlich was ich möchte.
Ich möchte einfach nur einen bestimmen Eintrag aus der Registry eines Fremdes PC's lesen, nicht's verändern!

Ist das möglich?

thx hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
derDoc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: Di 08.07.03 15:25 
Heißt das, dass dein Programm auf dem Rechner läuft oder willst du das von Zuhause machen?

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 08.07.03 16:03 
Also ich habe vor ein Netzwerk fähiges Spiel zu Proggen.
Da müssen einige Daten ausgetauscht werden.
Doch damit die Rechner jeweils wissen, wo sich die Dateien des anderen befinden, wird das in der Registry eingetragen. Nun soll der Rechner einfach auf die andere Registry zugreifen und diesen Eintrag auslesen. Und schon weiß der Rechner, wo sich die Daten des anderen Befinden.

hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.07.03 16:55 
s. Delphi-Hilfe zur Registry-Unit -> RegistryConnect.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 08.07.03 17:50 
Danke. Das steht in meiner Hilfe Datei zu dem Thema : TRegistry.RegistryConnect

Zitat:
Establishes a connection to a registry on another computer.
ausblenden Delphi-Quelltext
1:
function RegistryConnect(const UNCName: String): Boolean;					


Description

Call RegistryConnect to establish a connection to a registry on another computer running Windows 95 or Windows NT. UNCName is the name of the remote computer, and must take the following form:

\\computername

where computername is the name of the remote computer. If UNCName is nil, the local machine name is used.

Note

Before calling RegistryConnect, an application must set the RootKey property for its registry object to HKEY_USERS or HKEY_LOCAL_MACHINE.

If connection is successful, RegistryConnect sets the RootKey property to the root key of the remote computer and returns True. If unsuccessful, RegistryConnect returns False, and RootKey remains unchanged.


Nur leider kann ich damit nicht viel anfangen :cry: kann mir jemand weiterhelfen? Vielleicht auch ein Beispiel geben?

thx hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.07.03 21:20 
Warum nicht? Kannst du kein Englisch? Dann will ich nichts sagen. Hier die deutsche Version von Delphi 5
Zitat:
Die Methode richtet eine Verbindung zur Registrierdatenbank auf einem anderen Computer ein.
ausblenden Delphi-Quelltext
1:
function RegistryConnect(const UNCName: String): Boolean;					


Beschreibung

Mit RegistryConnect wird eine Verbindung zur Registrierung auf einem anderen Computer eingerichtet, der unter Windows 95 oder Windows NT läuft. Der String UNCName enthält den Namen des Remote-Computers und muß in folgender Form angegeben werden:

\\computername

Hierbei bezeichnet "computername" den Remote-Computer. Wenn UNCName den Wert nil hat, wird der Name des lokalen Rechners verwendet.

Hinweis

Vor dem Aufruf von RegistryConnect muß die Anwendung die Eigenschaft RootKey ihres Registrierungsobjekts auf HKEY_USERS oder HKEY_LOCAL_MACHINE setzen.

Wenn die Verbindung erfolgreich hergestellt werden konnte, setzt RegistryConnect die Eigenschaft RootKey auf den Hauptschlüssel des Remote-Computers und gibt True zurück. Im Fehlerfall wird False zurückgegeben, und RootKey bleibt unverändert.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Di 08.07.03 21:33 
Zitat:
Warum nicht? Kannst du kein Englisch? Dann will ich nichts sagen. Hier die deutsche Version von Delphi 5

als schüler (jetzt in der 11. Klasse auf einem Gym) sollte man doch in der lage sein etwas englisch zu verstehen, was ich ja auch habe.
--
Doch ich weiß jetzt nicht genau was ich machen soll.
function RegistryConnect(const UNCName: String): Boolean; bedeutet dass ich eine Function erstellen muss, doch wie und vorallem welche?
Das war jetzt mein Problem. (da hab ich mich wohl zu undeutlich ausgedrückt :oops:)

hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.07.03 21:41 
Nein. Die Funktion ist doch schon da. Du musst sie nur aufrufen, und dabei übergibst du den Namen des Computers, mit dem du dich verbinden willst. Vorn mit zwei Backslashes.

Da sie aber eine Methode von TRegistry ist, brauchst du eine entsprechende Variable. Du hast doch schon mal mit der Registry gearbeitet, oder nicht? Die Basis ist die selbe.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mi 09.07.03 13:39 
Zitat:
Du hast doch schon mal mit der Registry gearbeitet, oder nicht? Die Basis ist die selbe.
natürlich habe ich schonmal mit der regitry gearbeitet und jedes meiner größeren Projecte arbeit mit der registry.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
implementation
uses registry;

{$R *.dfm}
function RegistryConnect(const UNCName: String): Boolean;
var reg:tregistry;
a,b:string;
begin
  reg :=TRegistry.Create;
  try
  reg.RootKey :=HKEY_LOCAL_MACHINE;
  reg.OpenKey('Software\Bla bla bla\Laberrababer', True);
a:=reg.readString('Breite');
b:=reg.readString('Höhe');
  reg.CloseKey;
    finally
    reg.Free;
  end;

end;

doch wo muss nun das hier \\Compunername hin?? ich hab das schonmal versucht, hab aber keinen erfolg gehabt :sad:

thx hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 09.07.03 15:36 
Eigentlich ist doch die Hilfe eindeutig. Du erzeugst erst mal eine Instanz deiner TRegistry-Variable und setzt -laut Hilfe- den RootKey auf HKLM oder HKU. Wie wird das wohl aussehen?
ausblenden Delphi-Quelltext
1:
2:
3:
reg := TRegistry.Create(KEY_READ);
with reg do try
  RootKey := HKEY_LOCAL_MACHINE;

Und dann nimmst du Verbindung mit dem gewünschten PC auf:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  if(RegistryConnect('\\Computername')) then begin
    ShowMessage('online with host');

    // weiter geht´s ...
  end;
finally
  Free;
end;

Notfalls hättest du auch die Suche bemühen können: Hier (Suche in: Delphi-Forum, Delphi-Library REGISTRYCONNECT) und in der DP (Suche in der Delphi-PRAXiS REGISTRYCONNECT) findet sich was dazu. ´ne Suchfunktion wirst du doch bedienen können?
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mi 09.07.03 16:15 
hmmm :? das funzt nicht, meine Firewall sagt mir zwar das das Programm ins Internet (warum eigendlich ins Internet?) will, was ich auch zulasse) aber dann passiert nichts. Hängst das vielleicht mit dem Betriebsystem zusammen, oder mit dem Netzwerk-Hub? (glaub ich aber nicht, oder?)
vielleicht habe ich den Code nur mal wieder falsch zusammen gebaut.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function RegistryConnect(const UNCName: String): Boolean;
var reg:tregistry;
begin
reg := TRegistry.Create(KEY_READ);
with reg do try
  if(RegistryConnect('\\Buero')) then
    begin
    ShowMessage('online with host');
     reg.OpenKey('Software\Bla\Laber', True);
     a:=reg.readString('Breite');
     b:=reg.readString('Höhe');
     reg.CloseKey;
     end;
finally
Free;
end;

das gleich ehabe ich dann auch noch per Button gemacht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button2Click(Sender: TObject);
var reg:tregistry;
begin
reg := TRegistry.Create(KEY_READ);
with reg do try
  if(RegistryConnect('\\Buero')) then
    begin
    ...


woran liegt das, das nichts passiert? Vielen Dank
Hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 09.07.03 18:24 
hibbert hat folgendes geschrieben:
hmmm :? das funzt nicht, meine Firewall sagt mir zwar das das Programm ins Internet (warum eigendlich ins Internet?) will, was ich auch zulasse) aber dann passiert nichts.

Du wunderst dich über die Meldung der Firewall? Wenn man bedenkt, dass im LAN und im Internet (WAN) die selben Protokolle benutzt werden, dann wundere ich mich eigentlich nicht. Im Gegenteil: ich würde mich wundern, wenn die Firewall still bleibt. :)

ausblenden Quelltext
1:
vielleicht habe ich den Code nur mal wieder falsch zusammen gebaut.					

Na, zumindest hast du schon mal den Hinweis der Hilfedatei ignoriert, dass du vor dem Versuch mit "RegistryConnect" den Rootkey auf HKEY_LOCAL_MACHINE oder HKEY_USER setzen sollst. Vielleicht steht der aber auch nur aus Blödsinn in der Hilfedatei drin? ...

Bist du eigentlich mal den Suchlinks gefolgt? Ich habe die gefundenen Beiträge nur kurz überflogen, aber selbst dabei blieb mir im Gedächtnis, dass irgendwo irgendwer vorgeschlagen hat, die beiden Backslashes vor dem Computernamen wegzulassen.
Mangels LAN kann ich die Funktion leider nicht testen, sonst hätte ich dir dazu etwas definitives sagen können.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mi 09.07.03 18:32 
ach das funzt wieder und wieder nicht, ich geb's auf, ich habe noch andere Probs mit meine andreen Programmen, mein eines funzt garnicht mehr, da ich jetzt nicht mehr den nerv so so ein sch*** ähh kram.
:evil:
hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
wiesel722
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 25.07.03 18:54 
Titel: registry
hallo matthias,

hast du einen kompletten code, wo man die hardwaredaten remote aus der reg lesen kann?


gruss,

andreas
Marlno
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 75



BeitragVerfasst: Sa 26.07.03 05:56 
hm wiesel722 ich weiß ja nicht ob du mir jetzt noch zuhören wirst oder ich dir überhaupt antworten darf.

aber du hast doch oben die beispiel codes gesehen nimm dir doch diese teile...

bsp
ausblenden Delphi-Quelltext
1:
2:
implementation 
uses registry; ..........

dann an der stelle wo das passieren soll.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var reg:tregistry; 
a,b:string;
begin 
  reg :=TRegistry.Create; 
  try 
  reg.RootKey :=HKEY_LOCAL_MACHINE; 
  if not (RegistryConnect('//Computername'))         <-----eventuell // weglassen
  then
  irgendwas was er macht beim verbindungs fehlschlag bsp mesage computer nicht gefunden
  else
  reg.OpenKey('Software\Bla bla bla\Laberrababer', True);
  a:=reg.readString('eins'); 
  b:=reg.readString('zwei'); 
  reg.CloseKey; 
    finally 
    reg.Free;

irgendwie nach der art

sorry wenns nicht mit kommentar klammern da steht aber habsch schnell gemacht.........

und wenns falsch ist ist ja nur schnell aus dem hirn hingemalert
probiers doch mal........

MFG
Marlno

Moderiert von user profile iconTino: Beitrag moderiert.
Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Trallewatsch
Hält's aus hier
Beiträge: 7

XP, Win 98
Delphi
BeitragVerfasst: Sa 26.07.03 09:37 
Hallo Hibbert,

Marlno hat folgendes geschrieben:
******


mach Dir nichts draus.

Das gleiche Problem hab ich vor Monaten hier auch mal gehabt, und habe es heute noch. Ich möchte Dich beruhigen und Dir sagen, daß es bei mir bis heute noch nicht geklappt hat. Habe dieses hier als Anlass genommen und noch mal probiert. Nichts!!

Schade, ich hätte auch so gern die Einträge gelesen.

Moderiert von user profile iconTino: Zitat von Marlno entfernt.

_________________
[b:6c422201f2][color=red:6c422201f2]Trallewatsch[/color:6c422201f2]
... einfach zum Drücken[/b:6c422201f2]