| Autor |
Beitrag |
hibbert
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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
      
Beiträge: 623
Win Vista Prof
D2007 Prof
|
Verfasst: 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 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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
|
Verfasst: Di 08.07.03 16:55
s. Delphi-Hilfe zur Registry-Unit -> RegistryConnect.
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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.
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  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
|
Verfasst: 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.
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 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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  )
hibbert
_________________ I kunnen väl svara endast ja eller nej
Om i viljen eller nej
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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.
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
thx hibbert
_________________ I kunnen väl svara endast ja eller nej
Om i viljen eller nej
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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?
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:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| if(RegistryConnect('\\Computername')) then begin ShowMessage('online with host');
end; finally Free; end; |
Notfalls hättest du auch die Suche bemühen können: Hier ( REGISTRYCONNECT) und in der DP ( REGISTRYCONNECT) findet sich was dazu. ´ne Suchfunktion wirst du doch bedienen können?
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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.
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:
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
|
Verfasst: 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.
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 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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.
hibbert
_________________ I kunnen väl svara endast ja eller nej
Om i viljen eller nej
|
|
wiesel722
Hält's aus hier
Beiträge: 2
|
Verfasst: 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
      
Beiträge: 75
|
Verfasst: 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
Delphi-Quelltext 1: 2:
| implementation uses registry; .......... |
dann an der stelle wo das passieren soll.
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 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 Tino: Beitrag moderiert.
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Trallewatsch
Hält's aus hier
Beiträge: 7
XP, Win 98
Delphi
|
Verfasst: 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 Tino: Zitat von Marlno entfernt.
_________________ [b:6c422201f2][color=red:6c422201f2]Trallewatsch[/color:6c422201f2]
... einfach zum Drücken[/b:6c422201f2]
|
|