Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi appxbundle für Windows Store mit Datenbank für alle User (https://www.delphipraxis.net/203938-appxbundle-fuer-windows-store-mit-datenbank-fuer-alle-user.html)

Kirchi 8. Apr 2020 17:03

appxbundle für Windows Store mit Datenbank für alle User
 
Hallo,

ich möchte meine Anwendungen nun auch im Windows Store zur Verfügung stellen. Die Anwendungen haben aber eine Datenbank welche bei einer normalen Installation im ProgramData Ordner abgelegt wird, damit alle User mit dieser arbeiten können. Bei der Erstellung des appxbundle kann ich ja nicht sagen kopiere die Datei in das ProgramData Verzeichnis und auch beim ersten Start der App habe ich kein Zugriff auf dieses Verzeichnis. Weiß vielleicht jemand wie man so was bei Windows Store Apps umsetzt. Die Datenbank habe ich natürlich über die Bereitstellung dem Bundle hinzugefügt und steht auch nach der Installation im Assets Ordner nur Verfügung.


Gruß

Rollo62 9. Apr 2020 06:46

AW: appxbundle für Windows Store mit Datenbank für alle User
 
Leben die Appx Apps nicht auch in einer Sandbox, und können deshalb nicht Alles was ein normales Programm kann ?
https://docs.microsoft.com/de-de/win...ss-permissions
https://www.maketecheasier.com/acces...er-windows-10/
https://www.thewindowsclub.com/windo...older-location

Ich habe es jetzt nicht ausgiebig getestet, aber ich meine man muss sich daran gewöhnen dass nicht immer Alles erreichbar ist, unter Windows.
Genauso wie es auf den anderen Plattformen schon ist.

Der schöne Günther 9. Apr 2020 07:18

AW: appxbundle für Windows Store mit Datenbank für alle User
 
Wenn man im Manifest der Anwendung angibt dass man auf das gesamte Dateisystem zugreifen können muss, dann darf sie das auch. Der Benutzer kann das allerdings in der Systemsteuerung jederzeit abschalten. Ich gehe mal davon dass es um eine Delphi-Anwendung geht, richtig? Dann ist sie eh schon als
Delphi-Quellcode:
runFullTrust
deklariert und darf eigentlich fast weiterhin so ziemlich alles.

Aber unter C:\ProgramData darf der normale Benutzer sowieso nicht schreiben, das war schon immer so. Bist du sicher dass du das meintest?

Dalai 9. Apr 2020 07:45

AW: appxbundle für Windows Store mit Datenbank für alle User
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1461676)
Aber unter C:\ProgramData darf der normale Benutzer sowieso nicht schreiben, das war schon immer so.

Doch, normale Nutzer dürfen dort schreiben. Funktioniert unter Win7, aber ich nehme nicht an, dass neuere Windows-Versionen daran etwas geändert haben. Selbst wenn es standardmäßig nicht ginge, könnte das Setup die Berechtigungen entsprechend ändern (auch wenn UWP Apps das schätzungsweise nicht können/dürfen).

Zum Thema: War es nicht auch so, dass reguläre Win32-Anwendungen in den Store aufgenommen werden können? Oder betraf das nur Spiele? Siehe Microsoft finally pushing Win32 support for Windows Store and Windows 10 und Win32-Anwendungen im Store: UWP-Apps von Windows vor dem Aus?.

Grüße
Dalai

Kirchi 16. Apr 2020 13:53

AW: appxbundle für Windows Store mit Datenbank für alle User
 
Bin leider jetzt erst dazu gekommen weiter zu probieren. Dabei ist mir aufgefallen, dass meine folgende Try-Catch Anweisung nicht richtig funktioniert. Anstatt bei fehlendem Wert mit Catch einen Standard DBPfad zu hinterlegen bleibt die Variable DBPfad leer.

Delphi-Quellcode:
             
            try
                dbpfad:=reg.ReadString('DBPath');
             except
                dbpfad:='c:\ProgramData\';
             end;
Wenn ich die Variable DBPfad manuell danach auf ProgramData ändere funktioniert das erstellen des Ordners und kopieren der Datenbank.

Der Schlüssel DBPath besteht nicht in der Registry. Weiß jemand wo hier mein Fehler liegt?

Der schöne Günther 16. Apr 2020 14:33

AW: appxbundle für Windows Store mit Datenbank für alle User
 
Ja, das ist die Registry Virtualisierung.
https://docs.microsoft.com/en-us/win...virtualization

Zitat:

(...) For example, registry operations to the global store (HKEY_LOCAL_MACHINE\Software) are redirected to a per-user location within the user's profile known as the virtual store (HKEY_USERS\_Classes\VirtualStore\Machine\Software ). (...)

Dalai 16. Apr 2020 18:39

AW: appxbundle für Windows Store mit Datenbank für alle User
 
In welchem Schlüssel der Registry liest du denn? 32-bit Programme werden wie im Dateisystem umgeleitet, wenn es um bestimmte Registry-Schlüssel geht.

Übrigens hat die Klasse TRegistry in neueren Delphis eine Eigenschaft, die bei der Fehlersuche helfen kann: Delphi-Referenz durchsuchenTRegistry.LastError.

Grüße
Dalai


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