![]() |
CopyFile() ohne Rechte in Vista?
Hallo.
Leider habe ich kein Windows Vista zur Hand und kann daher mein Programm nicht testen. Ich meine mich zu erinnern das man unter Vista diverse Rechte braucht, um Dateioperationen wie CopyFile() oder DeleteFile() auszuführen. Mein Programm kopiert und löscht (durch den Benutzer) Dateien aus Programmordnern, also zum Beispiel C:\Programme\XXX. Wird CopyFile() und DeleteFile() unter Vista funktionieren oder werde ich Probleme mit Rechten bekommen? |
Re: CopyFile() ohne Rechte in Vista?
Für diese Ordner hat unter keinem Betriebssystem ein normaler Benutzer Zugriffsrechte.
|
Re: CopyFile() ohne Rechte in Vista?
Mhm, also mit Admin-Rechten geht es. Jedenfalls sehe ich keine andere Möglichkeit, wie ich Dateien in den Programmordnern ändern kann. Gibt es eine? Kann ich also davon ausgehen, dass es unter Vista nicht gehen wird? Wie kann ich des dann realisieren?
|
Re: CopyFile() ohne Rechte in Vista?
Das geht schion unter NT nicht, wenn man nicht als Administrator angemeldet ist.
Was willst du denn für dateien im Porgrammverzeichnis ändern? Sollten es Konfigurationsdateien sein, gehören die dort nicht hin. |
Re: CopyFile() ohne Rechte in Vista?
Es sind unter anderem auch Konfigurationsdateien. Das die nicht dort hin gehören ist mir klar, machen kann ich dagegen nichts weil die zu verändernden Dateien zu Programmen gehören, die mir nicht gehören. ;)
D.h. ich bräuchte also Admin-Rechte für mein Programm? Wie kann ich die einholen? |
Re: CopyFile() ohne Rechte in Vista?
Entwerder über den Explorer Kontextmenüeintrag "Ausführen als..." aufrufen oder übner die Konsole mit RunAs. Allerdings würde ich einfach die Rechte vom Programmverzeichnis so anpassen, dass auch nutzer mit Eingeschränkten Rechten dort schreiben dürfen. Und ich würde den Hersteller auf das Problem aufmerksam machen, damit er es eventuell beheben kann. Allerdings suche ich mir bei solchen Problemfällen meist ein anderes Programm. IconFX ist zum beispiel auch so ein Kanditat, der in das Programm verzeichnis schreiben will.
|
Re: CopyFile() ohne Rechte in Vista?
Zitat:
Alternativen sind leider nicht möglich. Und ich bezweifle auch, dass der Hersteller wegen mir kleinen Wurst seine komplette Software umstellen wird. ;) |
Re: CopyFile() ohne Rechte in Vista?
Ja wie jetzt? Ich dachte, es wäre nicht dein Programm? Eventuell solltest du mal die Zusammenhänge etwas genauer erklären. ansonsten:
![]() |
Re: CopyFile() ohne Rechte in Vista?
Also nochmal:
Es gibt da ein Programm. Nennen wir es XYZ. Im Programmordner von XYZ gibt es z.B. ein Bild (also C:\Programme\XYZ\bild.jpg). Da dieses Bild nicht schön ist, soll dem User meines Programmes die Möglichkeit gegeben werden, dass Bild auzutauschen. Daher möchte ich die bild.jpg in dem Verzeichnis überschreiben. |
Re: CopyFile() ohne Rechte in Vista?
Dann holst du dir mit deinem Programm Admin-Rechte (z.B. übers manifest) und tauschst das aus. Das Programm, dem das Bild gehört braucht ja nichts davon zu wissen, ergo braucht es auch keine Admin-Rechte ;)
|
Re: CopyFile() ohne Rechte in Vista?
Du willst alsoe eine Datei eines anderen Programmes mit Hilfe deines Programmes austauschen. Diese Datei liegt im Progranmmordner des betreffenden Programmes. Auf diese Datei hast du keinen lesenden Zugriff, weil dir die nötigen Rechte fehlen -- was auch richtig so ist.
Warum gibst du uns diese Informationen nicht gleich im ersten beitrag, damit man auch versteht, was du willst? :? Also noch mal die Möglichkeiten: - Explorer Kontextmenü "Ausführen als..." - RunAs in der Konsole - Mit der API-Funktion ![]() ![]() - Programm mit Manifest ausstatten, damit es unter Vista Administratorenrechte anfordert (jfheins) |
Re: CopyFile() ohne Rechte in Vista?
Manifest? xpman.pas ist eingebunden aber ich glaube nicht das ihr das meint, oder?
|
Re: CopyFile() ohne Rechte in Vista?
Zitat:
Geht aber nicht. Ist ja auch der Sinn der Sache, denn wozu eine Rechteverwaltung, wenn jeder sich ein Programm schreiben könnte das sich die Rechte holt? Das wenige was geht sieht so aus: - Programm im Administratorkonto ausführen, denn der Admin hat die Rechte - Programm im eingeschränkten Konto starten und Programm über "Ausführen als..." als Administrator starten - Programm im eingeschränkten Konto starten und Programm z. B. über ein Bachdatei mit der Zeile runas /user:"Administrator" "program.exe" als Administrator starten - Programm im eingeschränkten Konto starten und für die letztlichen Änderungen ein Unterprogramm aus deinem Programm über runas als Administrator starten - im Administratorkonto den anderen Benutzern die volle Kontrolle über die Datei oder Ordner geben. Sie kann dann später von jedem Benutzer verändert werden. Wobei einzelne Dateien geht ja noch, aber Rechte über Ordner sollte man nicht geben. Zumindest nicht wegen irgendwelcher Kraut und Wiesen Programme |
Re: CopyFile() ohne Rechte in Vista?
Zitat:
Näheres: ![]() |
Re: CopyFile() ohne Rechte in Vista?
Besten Dank Heinz, sieht so aus als wäre es das, was ich gesucht hatte.
Mit freundlichen Grüßen ![]() |
Re: CopyFile() ohne Rechte in Vista?
Zitat:
Ich kann mich aber auch irren, glaub ich aber nicht. |
Re: CopyFile() ohne Rechte in Vista?
Das Manifest sorgt dafür, dass das Programm mit Administratorrechten gestartet wird.
Zumindest wenn: 1. Der Benutzer in dem Default-"Normaler Benutzer mit Adminrechten auf Nachfrage" Benutzerkonto unterwegs ist 2. Er es in der UAC Nachfrage erlaubt Unter Windows XP und Co wird die Stelle im manifest ignoriert. (Die wissen ja eh nicht, was das bedeutet) |
Re: CopyFile() ohne Rechte in Vista?
Somit ist das eigentlich witzlos, nur etwas einfacher, denn auch sonst könnte ich prüfen ob ich die Rechte über die Dateien habe und wenn nicht, Adminrechte verlangen ;)
|
Re: CopyFile() ohne Rechte in Vista?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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