![]() |
Delphi-Version: 5
Netzlaufwerk W7 64 Bit
Hallo,
ich plage mich mit einem irren Problem herum - vielleicht hat jemand eine Idee. Ich erstelle im 64-Bit-Windows-7 einen Ordner, gebe diesen frei und verbinde (auf dem selben PC) ein Netzlaufwerk auf diesen. Im Explorer werden alle enthaltenen Dateien angezeigt, kein Problem. Mein Delphi-Programm (mit Delphi 7 erstellt) soll nun auf diese Dateien zugreifen. Sowohl FileExists als auch FindFirst liefern keine Ergebnisse. Wenn ich aus dem Programm heraus BrowseForFolder aufrufe, wird das Laufwerk zwar angezeigt, ist aber rot "durchgeixt". Sobald ich darauf klicke, kann ich es trotzdem öffnen und bekomme auch alle enthaltenen Unterordner angezeigt. Ab diesen Moment funktioniert auch FileExists wieder. Wenn ich dieses Netzlaufwerk aus einem anderen PC anspreche, habe ich das selbe Problem. Erstaunlicherweise hatte ich das Problem bei 32-Bit-Systemen noch nicht. Wo klemmt die Säge??? Kann ich irgendwie das gemappte Laufwerk zwanghaft öffnen? |
AW: Netzlaufwerk W7 64 Bit
Unter welchem Benutzer läuft das Delphiprogramm?
|
AW: Netzlaufwerk W7 64 Bit
Auf dem Standardbenutzer mit vollen Admin-Rechten.
|
AW: Netzlaufwerk W7 64 Bit
Du verbindest das Netzlaufwerk ganz normal mit der Windows 7 Oberfläche?
Tritt der Fehler auch auf, wenn du das Netzlaufwerk gerade neu zugeordnet hast? Oder nur z.B. nach einem Neustart? Ist der Rechner per WLAN im Netzwerk? |
AW: Netzlaufwerk W7 64 Bit
Ich verbinde das Laufwerk im Explorer über Netzwerk mit Wiederherstellen bei Neustart. Testweise werde ich jetzt einmal einen "net use ..." in die Autostart eintragen.
|
AW: Netzlaufwerk W7 64 Bit
Also Netzlaufwerk getrennt, neu gebootet.
Dann über die Kommandozeile mit "net use p: ..." das Laufwerk zugewiesen. Im Explorer wird dieses sofort angezeigt. In meinem Programm wird es auch danach nicht gefunden, das Laufwerk hat in BrowseForFolder weiterhin ein rotes X. |
AW: Netzlaufwerk W7 64 Bit
Zitat:
Gruß, Chris [EDIT] Testweise mal eine Komandozeile mit Adminrechten starten und das
Code:
... ausführen und dann nochmal das Programm starten.[/EDIT]
net use
|
AW: Netzlaufwerk W7 64 Bit
Zitat:
So wie ich das verstehe musst du die Netzlaufwerke dann unter den gleichen Berechtigungen verbinden... Versuch also mal eine Batchdatei zu erstellen mit dem "net use" Befehlen... Dann Netzlaufwerk trennen, Rechner neustarten, Rechtsklick auf die Batch > Als Administrator ausführen Findet dein Delphi-Programm das Netzlaufwerk dann richtig? Edit: verdammt, zu langsam |
AW: Netzlaufwerk W7 64 Bit
Korrekt, damit hätte ich des Übels Ursache gefunden! Vielen Dank erstmal!
Ich habe die Batch mit dem "net use ..." als Administrator ausgeführt, worauf der Explorer nichts angezeigt hat. Erst mit einem normalen Start wurde es gelistet. Das Programm selber ist ein selbst geschriebenes Setup-Programm, welches beim Start die Administrator-Abfrage auslöst. Das Programm liest aus der Registry, dass ein Datenverzeichnis X:\Daten existiert. Da jedoch das Programm in einer "anderen Welt" lebt, findet es das bezeichnete Laufwerk nicht. Wie aber kann ich ein Laufwerk als Administrator zuweisen? Hier auf dem Test-PC gibt es nur einen Standardbenutzer. Bei vielen Anwendern habe ich vom jeweiligen Admin zur Installation einen Zugang mit Administrator-Rechten bekommen, war aber nicht der Administrator selber. Würde bedeuten, dass mein Setup (welches ein Update installieren soll) ins Leere läuft. Kann ich ein Netzlaufwerk im Programm selber verbinden bzw. die Verbindung herstellen? |
AW: Netzlaufwerk W7 64 Bit
Hallo,
also - eins nach dem anderen :-) 1. Wenn Dein Programm per manifest sagt, dass es höhere Rechte benötigt passiert folgendes:
2. Das du das Batch mit erhöhten Rechten ausgeführt hast und im Explorer zunächst nichts gesehen hast sagt ja erstmal nichts. Gab es Fehlermeldungen in der Komandozeile? Hat Dein Setup danach immer noch Probleme gehabt? 3. Wann braucht man Adminrechte für ein Update / Installation: Es gibt durchaus Fälle, bei denen du keine erhöhten Rechte benötigst. Das kannst aber nur du entscheiden / herausbekommen. Du Programmierst das Update ja :-) Z.B.: Erstellst du Programmverknüpfungen in "All Users\Desktop"? Registrierst du ActiveX-Sachen im System? Installierst du Treiber? Was ich damit sagen will ist, je nachdem was dein "Installer" macht, braucht er diese Rechte oder eben auch nicht. Wenn er sie braucht, dann musst du Dich damit auseinander setzen, wie du diese Probleme lösen kannst (Existiert das Netzlaufwerk etc.) - aber erst dann. Wenn nicht, benenne Dein Installer um und alles läuft durch im Benutzerkontext :-) Gruß, Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz