![]() |
"Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Hallo,
ich hab das seltsame Phänomen, daß mein Programm, wenn es als Administrator ausgeführt wird, keine Downloads mehr machen kann - ohne Admin-Rechte geht es mit dem Runterladen aber prima. Ich benötige die Adminrechte nur, um den Netzwerkadapter automatisch neu zu starten (weil der bei meinem Chuwi-Tablet sporadisch abstürzt, und einfach de- und wieder aktivieren hilft) und automatisch, weil die Anwendung unbeaufsichtigt arbeitet, und die Umgebung automatisch intakt halten soll. Der Anwender kann mein Programm auch normal starten, wenn er diese Funktion nicht braucht. Ich möchte sie nicht gleich mit gehobenen Rechten ausliefern. Woran kann es liegen, daß URLDownloadToFile (von urlmon-Unit) mit Adminrechten keine Datei (einfache txt-Datei von einer https-Webseite) herunterladen kann, ohne die Rechte aber schon? |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Um der Ursache näherzukommen, solltest du den Rückgabewert der Funktion
![]() Grüße Dalai |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Okay..
Normal: 0 Als Admin: 0 Hilft nicht weiter :( |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Wie ist es mit einer anderen URL? Mal den Cache des IE gelöscht?
Grüße Dalai |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Hm..
kann es sein, daß als Admin ausgeführte Programme einen anderen Dateipfad als Programmordner verwenden? Ich lese den Download später ein und normal einfach so
Delphi-Quellcode:
, was normal geht, aber beim Admin muss ich den Pfad extra dazu schreiben
memo.LoadFromFile('temp.txt')
Delphi-Quellcode:
Dann geht es, habe ich gerade bemerkt...
memo.LoadFromFile(extractfilepath(application.exename)+'temp.txt')
|
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Sich darauf zu verlassen, dass das Arbeitsverzeichnis schon stimmen wird, ist nie eine gute Idee. Pfade gibt man immer absolut an, am sinnvollsten aus Variablen zusammengebaut. Aber nie hartkodiert oder unter der Annahme "Den Pfad gibt's auf jedem System".
Grüße Dalai |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Wenn ich bei Programmen sicherstellen möchte, dass das Programmverzeichnis auch das Arbeitsverzeichnis ist, gibt es im FormCreate (oder einer anderen, beim Progammstart garantiert ausgeführten Stelle) diese Zeile:
Delphi-Quellcode:
Das ist z. B. bei Programmen sinnvoll, die grundsätzlich von 'ner externen Festplatte gestartet werden und deren Ein- und Ausgabedaten auch auf dieser Festplatte liegen.
ChDir(ExtractFilePath(Application.ExeName));
Bei Programmen, die regulär installiert werden, ist dieses Vorgehen eher kontraproduktiv. |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Zitat:
Hast Du mal versucht als Admin zu starten, OHNE den Netzwerkadapter zurückzusetzen ? Das sollte sich doch gleich verhalten wenn Du das Rücksetzen mal einfach rausnimmst. |
AW: "Als Administrator ausführen" URLDownloadToFile geht nicht mehr
Zitat:
- GetCurrentDir hast du (bei deiner "Ohnepfad;-)" Lösung) mal abgefragt (?). - U.a. mithilfe von ProcMon siehst du wohin die Datei geschrieben wird. - Relative Pfade solltest du eh vermeiden. Das Setzen eines Dirs beim Programmstart muss nicht heissen, dass diese Wahl bestehen bleibt. (siehe ![]() - Ins Verzeichnis der App sollte man keine Daten schreiben. Dafür sind andere Ordner vorgesehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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 by Thomas Breitkreuz