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 Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung (https://www.delphipraxis.net/190425-windows-10-im-oeffnen-mit-dialog-fehlt-der-haken-fuer-standardanwendung.html)

juergen 2. Okt 2016 20:40

Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,

ich rufe den "Windows-öffnen-mit-Dialog" folgendermaßen auf:

Delphi-Quellcode:
ShellExecute(Application.Handle, 'open', pchar('rundll32.exe'), pchar('shell32.dll,OpenAs_RunDLL ' + AFileName), nil, SW_SHOWNORMAL);
Unter Windows 7 ist in diesem Windows-Dialog der Haken für "Dateityp immer mit dem ausgewählten Programm öffnen" vorhanden.
In Windows 10 sieht der Dialog ja ganz anders aus, mit dem o.g. Aufruf fehlt der Haken. Weiß jemand wie man das hinbekommt dass man unter Windows 10 auch diese Option anbieten kann?

Jim Carrey 2. Okt 2016 20:56

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Zitat:

Diese App weiterhin verwenden
ist meiner Meinung nach das Äquivalent zum Haken... nur anders.

juergen 2. Okt 2016 21:29

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
@Jim Carrey ,
danke für deine Antwort.
Allerdings sehe ich keine Möglichkeit aus diesem Dialog z.b. dann das Programm "MediaMonkey" als Standard-Programm zu setzen. Beim nächsten öffnen bleibt dann das ursprüngliche Standardprogramm (Aimp oder Groove Music).
Anscheinend werden in diesem Windows 10 Dialog alle Programme unterhalb von "weitere Optionen" nicht als Standardprogramm übernommen...:?

jaenicke 2. Okt 2016 22:32

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Unter Windows 10 wird dafür, wenn ich das aus dem Windows Explorer heraus mache, die OpenWith.exe gestartet. Die bietet diese Option. Egal ob ich diese mit dem Parameter -Embedding starte wie der Windows Explorer oder nicht, das reicht nicht. Da muss noch mehr passieren. Die Exe muss ja auch wissen um welche Dateierweiterung es geht usw.

Wenn du herausfindest wie du diese Exe ausrufen kannst, bist du am Ziel.

juergen 2. Okt 2016 22:46

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
@jaenicke,
ich hatte auch schon gesehen, dass wenn man das Ganze über den Explorer aufruft, dann der Dialog die Option anbietet.
Ich schau mal ob ich mit "OpenWith.exe" weiter komme.
Danke und Gute Nacht!

juergen 3. Okt 2016 12:32

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Hallo zusammen,

meine Suche brachte keine Ergebnisse.:( Ich habe einiges an Aufrufparametern für OpenWith.exe ausprobiert, ohne Ergebnisse.
Ich habe etwas in C++ auf der MSDN Seite gefunden, weiß aber erstens nicht ob mir das überhaupt hilft und wie ich das in Delphi anwenden müsste.
MSDN
Code:
--C++

HRESULT SHOpenWithDialog(
  _In_opt_*******HWND ******hwndParent,
  _In_*****const OPENASINFO *poainfo
);
Dieser neue Open-with-Dialog besteht erst seit Windows 8 -denke ich- und da wird mir wahrscheinlich meine o.g. gefundenen MSDN-Infos auch nicht weiter helfen.

Mein jetziger Workaround: Ich erzeuge eine temporäre Datei von meinem Dateityp. Öffne dann den Explorer und der Benutzer muss dann selbst den "Öffnen-mit-Dialog" für diesen Dateityp auswählen. Ist natürlich unschön.
Bin also weiterhin für jeden Hinweis dankbar!

mkinzler 3. Okt 2016 12:34

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Das Verhalten ist von Microsoft so gewollt.

jaenicke 3. Okt 2016 12:40

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Wenn du eine Dateierweiterung auf die herkömmliche Weise über die Registry registrierst, sollte beim nächsten Mal, wenn der Benutzer eine solche Datei anklickt, angeboten werden, dass es ein neues Programm dafür gibt.
Das ist eigentlich der vorgesehene Ablauf.

Nichtsdestotrotz registriert z.B. der Installer von Delphi die Erweiterungen auch unter Windows 10 fest, es muss also möglich sein.

Zitat:

Zitat von juergen (Beitrag 1349571)
Ich habe etwas in C++ auf der MSDN Seite gefunden, weiß aber erstens nicht ob mir das überhaupt hilft und wie ich das in Delphi anwenden müsste.

In Delphi anwenden wäre einfach, du musst die Funktion, wenn sie nicht in Delphi selbst oder in der JEDI API Library drin ist, deklarieren und dazu die Struktur, die du als Parameter brauchst.
Aber in der Doku steht doch auch gleich:
Zitat:

Starting in Windows 10, the OAIF_ALLOW_REGISTRATION, OAIF_FORCE_REGISTRATION, and OAIF_HIDE_REGISTRATION flags will be ignored by SHOpenWithDialog. The Open With dialog box can no longer be used to change the default program used to open a file extension. You can only use SHOpenWithDialog to open a single file.
Es wird dir also gar nichts bringen, da das der von dir schon aufgerufene Dialog ist, nur sauber aufgerufen.

Es kann durchaus sein, dass nur der Windows Explorer den Dialog noch mit dem Häkchen anzeigen darf. Es haben eben zu viele Programme hinter dem Rücken der Anwender Schindluder getrieben... das trifft dann natürlich auch alle, die vorher sauber den Benutzer gefragt haben... aber da ist für Microsoft dann immer die Frage was das kleinere Übel ist.

juergen 3. Okt 2016 13:04

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Danke euch beiden!
Dass das ein Sicherheitsaspekt seitens MS sein kann, leuchtet ein. Dann werde ich wohl bei meinem Workaround bleiben (müssen).
Da es in meinem Fall um eine schon registrierte Dateiendung geht (m3u, also Playlist), der Benutzer aber ein anderes Programm wie das vor eingestellte Groove auswählen können soll, bleibt mir wohl keine andere Möglichkeit.

Einen schönen Feiertag noch!

juergen 4. Okt 2016 19:28

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

bei der Installation eines neuen Programms habe ich heute gesehen wie es wohl richtig gemacht werden könnte.
Nach dem Setup ging das Fenster von "Standardprogramme festlegen" auf. Dort konnte ich festlegen für welche Dateiendungen dieses neue Programm zuständig sein soll.

Weiß jemand wie man über Delphi-Code dieses Fenster aufrufen kann? (Bild im Anhang)

Zu finden unter
Systemsteuerung | Standardprogramme | Standardprogramm festlegen => Standards für dieses Programm festlegen

Vielen Dank schon mal vorab!

hoika 4. Okt 2016 23:03

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Hallo,
hier ist ein Link, allerdings nicht für Delphi.

http://stackoverflow.com/questions/2...-windows-8-8-1

t.roller 5. Okt 2016 08:40

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
Zitat:

Zitat von juergen (Beitrag 1349755)
Weiß jemand wie man über Delphi-Code dieses Fenster aufrufen kann?

Probiere:
Delphi-Quellcode:

procedure TForm1.Button10Click(Sender: TObject);
var FN: String;
begin
//Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme\Standardprogramme festlegen
FN:='/name Microsoft.DefaultPrograms /page pageDefaultProgram';
ShellExecute(0,nil,PChar('control.exe'),PChar(FN),'',SW_SHOWNORMAL);
end;

procedure TForm1.Button11Click(Sender: TObject);
var FN: String;
begin
//Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme\Dateizuordnungen festlegen
FN:='/name Microsoft.DefaultPrograms /page pageFileAssoc';
ShellExecute(0,nil,PChar('control.exe'),PChar(FN),'',SW_SHOWNORMAL);
end;

procedure TForm1.Button1Click(Sender: TObject);
var FN: String;
begin
FN:='/name Microsoft.DefaultPrograms';
//Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme\
ShellExecute(0,nil,PChar('control.exe'),PChar(FN),'',SW_SHOWNORMAL);
end;

// oder:

procedure TForm1.Button2Click(Sender: TObject);
var FN: String;
begin
FN:='shell:::{17cd9488-1228-4b2f-88ce-4298e93e0966}';
//Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme\
ShellExecute(0,nil,PChar('explorer.exe'),PChar(FN),'',SW_SHOWNORMAL);
end;

juergen 5. Okt 2016 20:12

AW: Windows 10: Im "Öffnen mit Dialog" fehlt der Haken für Standardanwendung
 
@hoika,
danke für den Link! :thumb: Das muss ich mir anschauen wenn ich etwas mehr Zeit habe.

@t.roller ,
danke für deine Hilfe!:thumb:
Direkt der erste Aufruf scheint das zu sein was meinem Wunsch am nächsten kommt.

Euch einen schönen Abend!
:dp:


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