Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi richtiger Ordner für Datenbank und Ini-Datei eines Programms (https://www.delphipraxis.net/136744-richtiger-ordner-fuer-datenbank-und-ini-datei-eines-programms.html)

HeikoAdams 7. Jul 2009 10:08


richtiger Ordner für Datenbank und Ini-Datei eines Programms
 
Hallo,
bislang war ich der Meinung, das die Datenbank und Ini-Datei für ein Programm unter C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Mein Ordner korrekt abgelegt sind. Jedoch werden Dateien aus diesen Ordnern von Vista in den VirtualStore gepackt.

Wo muss ich die Dateien jetzt ablegen, damit sie für alle Benutzer zugänglich sind und nicht im VirtualStore landen?

Bernhard Geyer 7. Jul 2009 10:18

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
Zitat:

Zitat von HeikoAdams
Jedoch werden Dateien aus diesen Ordnern von Vista in den VirtualStore gepackt.

Ergänze dein Programm um eine Vista-Kompatibles Manifest welches die Virtualisierung abschaltet! Wie das Aussieht solltest du oft genug hier im Forum finden (such mal z.B. nach Elevation).

HeikoAdams 7. Jul 2009 10:40

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
Ich habe die Manifest-Datei ein wenig angepasst, so dass sie jetzt so aussieht:
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="RIF.SyncBack4U" processorArchitecture="x86" version="1.0.0.0" type="win32"/>
<description>Regenspurger SyncBack4U</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" />
    </dependentAssembly>
</dependency>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
      <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator"/>
      </requestedPrivileges>
    </security>
   </trustInfo>
</assembly>
Jetzt habe ich nur eine Sache, die mir ein wenig Kopfzerbrechen bereitet:
"Dank" der Elevation muss der Anwender bei jedem Start bestätigen, das mein Programm mit administrativen Rechten läuft. Das Programm ist aber eine Backup-Software, die auf Wunsch des Anwenders den Windows Taskplaner nutzt, um Backup-Aufträge regelmäßig auszuführen. Wie kann ich jetzt verhindern, dass der Anwender jeden Start bestätigen muss und das Programm auch unbeaufsichtigt laufen kann?

MagicAndre1981 7. Jul 2009 11:59

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
wenn du den Task in der Aufgabenplanung erstellst wählst du einen Benutzer der Admingruppe und setzt den Haken bei "Mit höchsten Privilegien ausführen". Dann kannst du per Trigger das Datum und den Zeitpunkt setzen und dein Programm läuft dann mit Adminrechten und ohne Bestätigung vom UAC Prompt.

HeikoAdams 7. Jul 2009 12:51

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
Zitat:

Zitat von MagicAndre1981
wenn du den Task in der Aufgabenplanung erstellst wählst du einen Benutzer der Admingruppe und setzt den Haken bei "Mit höchsten Privilegien ausführen". Dann kannst du per Trigger das Datum und den Zeitpunkt setzen und dein Programm läuft dann mit Adminrechten und ohne Bestätigung vom UAC Prompt.

Gut zu wissen. :dp:

MagicAndre1981 7. Jul 2009 13:30

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
das kannst du auch nutzen um Programme per Verknüpfung zu starten. Einfach Task erstellen, den haken wieder setzen, diesmal keinen Trigger nehmen und ihn über schtasks.exe aufrufen.

Aber du solltest lieber beim Installer die ACL so ändern, dass alle Nutzer Lese und Schreibrechte auf den Ordner bekommen und starte das Programm normal als AsInvoker.

HeikoAdams 13. Jul 2009 09:38

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
Zitat:

Zitat von MagicAndre1981
Aber du solltest lieber beim Installer die ACL so ändern, dass alle Nutzer Lese und Schreibrechte auf den Ordner bekommen und starte das Programm normal als AsInvoker.

Würde ich ja gerne machen. Laut http://www.delphi-treff.de/tutorials/vcl/vista/page/5/ is das auch recht easy zu machen, nur gibt es da ein Problem: Das Programm soll die Möglichkeit bieten, Einträge in die Aufgabenplanung von Vista zu machen. Unter XP kein Problem, nur scheint man unter Vista dafür Admin-Rechte zu benötigen. :wall:
Und da es anscheinend keine Möglichkeit gibt, für eine einzelne Procedure/Function Admin-Rechte anzufordern, wird mein Programm wohl oder übel auch weiterhin Admin-Rechte benötigen :evil:

Bernhard Geyer 13. Jul 2009 09:50

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
Zitat:

Zitat von HeikoAdams
Unter XP kein Problem, nur scheint man unter Vista dafür Admin-Rechte zu benötigen. :wall:

Unter XP benötigst du auch Admin-Rechte. Jedoch hat dort der "0815" die nötigen lokalen Adminrechte. Probier mal deine Aktionen mit einem Mitglieder der Gruppe "Gast" oder "Benutzer" und nicht "Hauptbenutzer". Dort wirst du die gleichen Probleme haben.

HeikoAdams 13. Jul 2009 09:57

Re: richtiger Ordner für Datenbank und Ini-Datei eines Progr
 
Und wie löse ich dieses Problem dann am elegantesten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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