[gelöst] UWP App aus eigener App starten

[gelöst] UWP App aus eigener App starten

Beitragvon af0815 » 13. Jul 2017, 08:28 [gelöst] UWP App aus eigener App starten

Ich schlage mich gerade mit WIndows UWP Apps herum. Unter anderen damit , wie man solche Apps aus der eigenen App heraus startet. Das ganze ist NUR für Windows 10 und besser, über Vorteile, Nachteile und sonstige Glaubensfragen will ich hier nicht diskutieren.

Das starten von UWP-Apps funktioniert schon mal aus dem Explorer heraus nicht richtig - hehe - wenn mn mal den richtigen Pfad gefunden hat. Aus dem Startmenü heraus funktioniert das aber ohne Probleme.

Beispiel für den Test:
Die Kamera-App (Windows-Store-App) von WIndows10 aus einem Lazarusprogramm heraus starten.

Probleme:
-> Es ist über das Startmenü nicht möglich den Ort der Executable festzustellen.
-> Eine Verknüpfung (für Testzwecke) kann auch nicht per Klick erstellt werden.
-> Wenn man die Datei findet ("C:\Program Files\WindowsApps\Microsoft.WindowsCamera_2017.308.50.0_x64__8wekyb3d8bbwe\WindowsCamera.exe") und man sich die Rechte zum Öffnen der Verzeichnisses verschafft, so lässt sich trotzdem nichts machen.

Any Hints ?

Andreas

BTW: Ich habe kein Interesse an guten Ratschlägen, wie man das mit Linux etc. besser machen kann.


Edit:Hier steht es wie es prinzipiell geht

Code: Alles auswählen
explorer.exe shell:appsFolder\put-your-PackageFamilyName-here!put-your-app-ID-here


mal sehen ob es mit Lazarus und TAsyncProzess auch geht. :-)
Zuletzt geändert von af0815 am 13. Jul 2017, 10:09, insgesamt 1-mal geändert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon af0815 » 13. Jul 2017, 10:08 Re: UWP App aus eigener App starten

Ja, geht wenn man die im vorigen Post erwähnte Anleitung stur einhält
Code: Alles auswählen
begin
  fExecutable:='explorer.exe';
  if not Assigned(fproc) then begin
    fProc := TAsyncProcess.Create(nil);
    fProc.Options := [poNoConsole, poStderrToOutPut];
    fProc.ShowWindow := swoNone;
    fproc.StartupOptions := [suoUseShowWindow];
    fProc.OnTerminate := @OnProcTerminated;
    fProc.CurrentDirectory := ExtractFilePath(fExecutable);
    fProc.Executable := fExecutable;
    fproc.Parameters.Add('shell:AppsFolder\Xyyyyy_9bvcwp4wa7nda!App');
    fProc.ShowWindow := swoShowNormal;
    fproc.StartupOptions := fproc.StartupOptions + [suoUseShowWindow];
    fProc.Execute;
  end;
end;
 


Nur schliessen kann man nichts, wenn die läuft, dann läuft die. Wenn man das Lazarusprogramm mehrmals aufruft, so bleibt nur eine Instanz erzeugt, das passt mir ganz gut.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon shokwave » 13. Jul 2017, 16:18 Re: [gelöst] UWP App aus eigener App starten

Danke für die Info, das brauche ich sicher auch noch mal.

Ich hab da mal ein wenig weiter geforscht und man kann sich die benötigten IDs auch aus der Registry holen(HKCU\Software\Classes\AppX...). Leider sind da manche Apps doppelt und dreifach vorhanden und der Name ist auch fast nie direkt hinterlegt.

Minibeispielprogramm im Anhang.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
mfg Ingo
shokwave
 
Beiträge: 420
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon af0815 » 14. Jul 2017, 06:05 Re: [gelöst] UWP App aus eigener App starten

Nur so nebenbei:

UWP-Apps können :
-> nur nach einer Userinteraktion ausserhalb der Sandbox mit speziell freigegebenen Verzeichnissen lesen/schreiben.
-> keine IPC ausser UWP zu UWP, und Textfiles :-)
-> Sockets am selben Rechner können nicht erreicht werden (lokaler loopback geht nicht)
-> UWP Objekte können eingeschränkt in WinForms und WPF verwendet werden, passen aber nicht in den Objekten so richtig zusammen
-> Automatisierte Apps sind aktuell ein Problem, da man immer einen Benutzereingriff benötigt um die Sandbox überwinden zu dürfen
-> ..... es gibt super brauchbare Mediakomponenten, die es in WinForms und WPF nicht gibt. Manche neue Hardware kann man nur unter UWP richtig nutzen !!!!

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon af0815 » 18. Jul 2017, 09:16 Re: [gelöst] UWP App aus eigener App starten

Fürs Archiv -> Killen bzw. Stoppen von UWP Apps
Code: Alles auswählen
procedure TFormTmp.StopRemoteApp;
var
  fExecutable : String;
  fPr: TAsyncProcess;
begin
  fExecutable:='Taskkill.exe';
  fPr := TAsyncProcess.Create(nil);
  try
    fPr.Options := [poNoConsole, poStderrToOutPut];
    fPr.ShowWindow := swoNone;
    fPr.StartupOptions := [suoUseShowWindow];
    fPr.CurrentDirectory := ExtractFilePath(fExecutable);
    fPr.Executable := fExecutable;
    fPr.Parameters.Add('/IM');
    fPr.Parameters.Add('NameDerUWPAppImTaskmanager.exe');
    fPr.Parameters.Add('/f');
//    ShowMessage(fpr.Parameters.Text);
    fPr.Execute;
  finally
     fPr.Free;
  end;
end;
 
 
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon af0815 » 18. Jul 2017, 09:25 Re: [gelöst] UWP App aus eigener App starten

shokwave hat geschrieben:Ich hab da mal ein wenig weiter geforscht und man kann sich die benötigten IDs auch aus der Registry holen(HKCU\Software\Classes\AppX...).

Ich habe mich damit jetzt ein wenig mehr auseinandergesetzt und sehe, das nicht alle UWP-Apps mit dem Registrybereich erfasst werden. Meine aktuelle App ist in der Übersicht zum Beispiel nicht vorhanden. Der Mechanismus muss noch weitere Bereiche der Registry verwenden. Mal sehen ob ich im Laufe der Zeit noch mehr Informationen finde.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried