AGB  ·  Datenschutz  ·  Impressum  







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

Vista und Schreibrechte

Ein Thema von Dragon27 · begonnen am 19. Jul 2009 · letzter Beitrag vom 19. Jul 2009
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Vista und Schreibrechte

  Alt 19. Jul 2009, 13:17
Hallo zusammen,

ich bin gerade am Verzweifeln...

Ich möchte MP3-Dateien von A nach B verschieben. Dies Funktioniert auch soweit unter XP aber unter VISTA ist das bei manchen Rechnern nicht möglich.
Es hagelt nur noch Fehlermeldungen bzw. er verweigert das kopieren.
Nur wenn man in der Registerdatei des Ordners bei Sicherheit JEDER einträgt und auch volle Schreibrechte vergibt funktioniert es...

Nur das kann ja nicht die Lösung sein, zumal das sehr unsicher ist .

Wie könnte ich nun das Ganze so umsetzen, dass mein Programm Zugriff hat. Ich habe hier aus dem Forum den
folgenden Code zum kopieren der Dateien. Ich bin mir aber nicht sicher, ob nicht der das Problem ist.

Hier der Code:

Delphi-Quellcode:
function DoFileWork(
  aWnd: HWND; aOperation: UINT; aFrom, aTo: TStrings; aFlags: FILEOP_FLAGS
  ): Integer;
var
  I: Integer;
  FromPath, ToPath: string;
  SHFileOpStruct: TSHFileOpStruct;
begin
  FromPath := '';
  for I := 0 to aFrom.Count - 1 do
    FromPath := FromPath + aFrom.Strings[I] + #0;
  FromPath := FromPath + #0;

  if Assigned(aTo) then
  begin
    ToPath := '';
    for I := 0 to aTo.Count - 1 do
      ToPath := ToPath + aTo.Strings[I] + #0;
    ToPath := ToPath + #0;
    if aTo.Count > 0 then
      aFlags := aFlags or FOF_MULTIDESTFILES;
  end;

  with SHFileOpStruct do
  begin
    Wnd := aWnd;
    wFunc := aOperation;
    pFrom := PChar(FromPath);
    if Assigned(aTo) then
    begin
      pTo := PChar(ToPath)
    end else begin // target available
      pTo := nil;
    end; // target not available
    fFlags := aFlags;
  end; // structure
  Result := SHFileOperation(SHFileOpStruct);
end;

if dxBarButton14.Down then dofilework(self.Handle,FO_COPY,von,nach,FOF_MULTIDESTFILES+FOF_RENAMEONCOLLISION) else dofilework(self.Handle,FO_MOVE,von,nach,FOF_MULTIDESTFILES+FOF_RENAMEONCOLLISION);

// Die Variablen von, nach sind Stringlisten die gefüllt werden.
Danke!

P.s.: Ich habe gerade gesehen, dass das Programm die Dateien in das Programmverzeichnis kopiert oO.
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 13:22
Zitat von Dragon27:
Nur das kann ja nicht die Lösung sein, zumal das sehr unsicher ist .
Du kannst unter NT-Basierten Systemen nicht sicher sein das eine "normale" Useranwendung überall und alles darf. Wenn du volle Schreib-/Lesezugriffe für eine App auf der gesamten Anwendung unter NT-Basierten System benötigst mußt du entweder einen Dienst unter lokalen Dienstekonto laufen lassen oder einen Treiber schreiben.

Du wirst auch unter XP Fehlermeldungen bekommen wenn der User z.B. nur in der Gruppe "Gast" mitglied ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 13:29
Zitat von Dragon27:
P.s.: Ich habe gerade gesehen, dass das Programm die Dateien in das Programmverzeichnis kopiert oO.
Kann es sein, dass du relative Verzeichnisse verwendest? Dann kann es ja nicht klappen...
http://www.delphi-library.de/viewtopic.php?p=499701

Für Daten wie MP3s sind Verzeichnisse wie das Verzeichnis Eigene Musik oder das Anwendungsdatenverzeichnis geeignet. Diese lassen sich auch ohne Adminrechte beschreiben, egal ob unter XP oder Vista.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 13:33
Hallo,

danke für Deine Antwort.

Das mit dem Gastkonto ist klar und das würde ich auch verstehen. Aber sogar wenn ich Anwendung als Administrator laufen lasse,
will er nicht das machen was er soll

Kann das an der Kopierfunktion liegen?

Zitat:
Für Daten wie MP3s sind Verzeichnisse wie das Verzeichnis Eigene Musik oder das Anwendungsdatenverzeichnis geeignet. Diese lassen sich auch ohne Adminrechte beschreiben, egal ob unter XP oder Vista.
Das wäre ja super wenn der Anwender damit zufrieden ist . Nur leider wollen ja viele Anwender die Datein X-beliebig anordnen. Aber die 2 Beiträge helfen mir auf jeden Fall schon mal weiter!

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 13:46
Wenn der Anwender die Dateien in ein Verzeichnis legen möchte, das Adminrechte benötigt, dann kannst du anbieten dein Programm (mit ShellExecuteEx und dem Verb runas) mit Adminrechten zu starten. Oder du übergibst nur die Operation an eine weitere Instanz deines Programms und startest die mit Adminrechten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 14:00
Danke für dein Antwort.

Leider weiß ich nicht ganz wie du das meinst . Kannst du mir da ein paar Gedankenanstöße geben?

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 14:21
Zitat von Dragon27:
Das mit dem Gastkonto ist klar und das würde ich auch verstehen. Aber sogar wenn ich Anwendung als Administrator laufen lasse, will er nicht das machen was er soll
Meinst du das der User Admin ist? Das Reicht bei aktiven UAC nicht. Siehe auch Wikipedia für Beschreibung
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 14:37
Zitat von Dragon27:
Danke für dein Antwort.

Leider weiß ich nicht ganz wie du das meinst . Kannst du mir da ein paar Gedankenanstöße geben?

Danke!
Moin,

Ist ganz einfach. Die DP-Suche sollte hier helfen (zur Not auch das MSDN), Suchbegriffe wären etwa "ShellExecute Admin*", "ShellexecuteEx runas", etc.

Grüße,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Vista und Schreibrechte

  Alt 19. Jul 2009, 14:40
Ich habe hier einen Prototypen für einen Registryeditor vorgestellt, der sich selbst mit Adminrechten neustarten kann:
http://www.delphi-forum.de/viewtopic.php?p=567719

Und hier habe ich eine etwas komplexere Anwendung, die teilweise Adminrechte benötigt, als Diagramm gezeigt (eine Updateklasse, die mittlerweile auch nahezu komplett umgesetzt ist):
http://www.delphipraxis.net/internal...053828#1053828
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:11 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