Einzelnen Beitrag anzeigen

ZOD

Registriert seit: 6. Mai 2009
97 Beiträge
 
#23

AW: fehlende Rechte nach EXE start auf WIN7

  Alt 23. Okt 2013, 16:42
@p80286
ich will wirklich nicht ungeduldig klingen, aber ich hatte
die Hoffnung, daß meine bisherigen Posts - vor allem der letzte -
@Chris
Kurzantwort
Der Zugriff auf die Dateien erfolgt mit ShellExecute, die Pfadnamen sind
in einer DB gespeichert mit "hart" vorgegebenen LW-Buchstaben.

Langantwort:
Öffne ich aus dem Programm heraus das Verzeichnis einer der ""Problem-Dateien" mit


ShellExecute(Application.Handle, 'explore', PChar(Directoryname), nil, nil, SW_SHOWNORMAL);

so bekomme ich als Rückgabewert
"5" - also
"Fehler beim gemeinsamen Zugriff auf eine Datei im Netz oder Fehler beim Zugriff auf eine gesperrte Datei im Netz."

Wenn ich dann aus genau dem jetzt laufenden Programm heraus einen Explorer für das EXE-Verzeichnis starte mit

ShowDirectory(ExtractFilePath(Application.ExeName))

Dann kann ich mich darin bis zum ursprünglichen Verzeicnis durchklickern
und bekomme hier auch alle Dateien angezeigt und kann diese per Doppelkklick öffnen.

Die Pfade sind wie geschildert "hart" in einer DB gespeichert, incl. Laufwerksbuchstaben.
(Wir verwenden für einige Server Volumes fest vergebene LW-Buchstaben).

Die Rechte auf die Zieldatei sind da - sonst könnte ich sie ja nicht wie
oben geschildert im aus dem Programm heraus gestarteten Explorer anzeigen.

Für die Anzeige wird ein normales ShellExecute verwendet, zuerst wird
das Programm für die Anzeige über die FileExtension ermittelt und dieses
dann ebenfalls per ShellExecute aufgerufen. Klappt hervorragend bei OS <= XP.

Ich verstehe einfach nicht, warum der Benutzer einmal die Rechte hat und
ein andermal die Rechte nicht hat.

diese Fragen beantwortet.

Naja - ich bin sicher auch etwas genervt, da ich hier nicht vorwärts komme,
oder mich zu blöde anstelle.

Einmal andersherum gefragt:
wie starte ich einen Prozess (z.B. über CreateProcessAsUser) für den aktuell
am OS angemeldeten Benutzer (NICHT den Benutzer meiner Startroutine wg. Admin-Recht
) ohne daß der Benutzer jedesmal sein PW neu eintippen muß?

Gefunden habe ich bisher

http://www.delphipraxis.net/884994-post13.html

hier geht es aber um Registry-Einträge.
  Mit Zitat antworten Zitat