AGB  ·  Datenschutz  ·  Impressum  







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

Netzlaufwerk W7 64 Bit

Ein Thema von udo888 · begonnen am 25. Jun 2012 · letzter Beitrag vom 25. Jun 2012
Antwort Antwort
Seite 1 von 2  1 2      
udo888

Registriert seit: 20. Feb 2008
Ort: Radeberg
42 Beiträge
 
Delphi 2009 Enterprise
 
#1

Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 09:14
Delphi-Version: 5
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?
Udo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 09:15
Unter welchem Benutzer läuft das Delphiprogramm?
Markus Kinzler
  Mit Zitat antworten Zitat
udo888

Registriert seit: 20. Feb 2008
Ort: Radeberg
42 Beiträge
 
Delphi 2009 Enterprise
 
#3

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 09:16
Auf dem Standardbenutzer mit vollen Admin-Rechten.
Udo
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#4

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 09:20
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?
  Mit Zitat antworten Zitat
udo888

Registriert seit: 20. Feb 2008
Ort: Radeberg
42 Beiträge
 
Delphi 2009 Enterprise
 
#5

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 09:24
Ich verbinde das Laufwerk im Explorer über Netzwerk mit Wiederherstellen bei Neustart. Testweise werde ich jetzt einmal einen "net use ..." in die Autostart eintragen.
Udo
  Mit Zitat antworten Zitat
udo888

Registriert seit: 20. Feb 2008
Ort: Radeberg
42 Beiträge
 
Delphi 2009 Enterprise
 
#6

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 09:31
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.
Udo
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 10:00
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.
Das hört sich doch danach an, als ob Du das Netzlaufwerk unter einem Benutzerkonto erstellst und das Programm dann im vermeintlich selben Account mit erhöhten Rechten startest. Unter Vista und Win7 sind Benutzer mit Adminrechten auch erstmal nur Benutzer (vorausgesetzt UAC ist aktiviert). Erst wenn Prozesse/Anwendungen erhöhte Rechte brauchen, werden diese einzelnen Prozesse auf dieses höhere Level geschaltet. Innerhalb dieses höheren Levels (Admin-Level) gibt es zwar wohl die Netzlaufwerke, aber sie sind nie verbunden worden - sonder nur angelegt. Daher kommt das rote X. Man kann ein Win-API-Aufruf benutzten um das Netzlaufwerk wieder zu verbinden - mir fällt nur gerade nicht ein, wie der heißt.

Gruß, Chris
[EDIT] Testweise mal eine Komandozeile mit Adminrechten starten und das
Code:
net use
... ausführen und dann nochmal das Programm starten.[/EDIT]
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#8

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 10:03
Auf dem Standardbenutzer mit vollen Admin-Rechten.
Du hast das Programm also als Administrator ausgeführt? Ist die UAC-Abfrage erschienen?
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
  Mit Zitat antworten Zitat
udo888

Registriert seit: 20. Feb 2008
Ort: Radeberg
42 Beiträge
 
Delphi 2009 Enterprise
 
#9

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 11:23
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?
Udo

Geändert von udo888 (25. Jun 2012 um 12:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Netzlaufwerk W7 64 Bit

  Alt 25. Jun 2012, 15:58
Hallo,

also - eins nach dem anderen

1. Wenn Dein Programm per manifest sagt, dass es höhere Rechte benötigt passiert folgendes:
  • WinXP: User hat die Rechte -> nichts
  • WinXP: User hat die Rechte nicht -> Ausführen als Dialog öffnet sich
  • Vista / Win7: User hat die Rechte -> UAC-Dialog fragt ggf. nach ob die Rechte für dieses Programm gewährt werden sollen
  • Vista / Win7: User hat die Rechte nicht -> ausführen als Dialog um den Prozess die Rechte zu geben
Ab Windows Vista passiert das "Anfordern von höheren Rechten" zusätzlich durch den Dateinamen der exe-Datei. "Update" und "Setup" sind hier nur ein paar Beispiele.

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
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 12:30 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