Hallo Sicro,
vielen Dank für den Vorschlag. Aber das Problem bleibt auch damit bestehen. Habe Deine Routine mal ein wenig erweitert:
Code: Alles auswählen
Procedure.i OpenWithStandardProgram(FilePath$)
Protected Result
; Avoid problems with paths containing spaces
FilePath$ = #DQUOTE$ + FilePath$ + #DQUOTE$
; https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-shellexecutew
Result = Bool(ShellExecute_(0, "open", FilePath$, #Null, #Null, #SW_SHOW) > 32)
ProcedureReturn Result
EndProcedure
StandardFile$ = "C:\*.*"
Pattern$ = "Alle Dateien (*.*)|*.*"
Pattern = 0
File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)
If File$
Debug OpenWithStandardProgram(File$)
Else
MessageRequester("Information", "Der Requester wurde abgebrochen.", 0)
EndIf
Habe damit ein Executable erstellt und auch das zeigt den Effekt, dass als Administrator gestartet sich keine PDF-Datei anzeigen lässt. Auch hier werden wieder zwei Acrobat Instanzen gleichzeitig im Taskmanager gezeigt. Wenn man einen Task davon killt, verschwindet der zweite auch. Startet man das Programm als normaler User, funzt das genau so wie man es erwarten würde. Ist vielleich gar kein Purebasic-Problem, sondern eins vom Acrobat Reader? Oder nur von meinem PC?
Habe mein Programm inzwischen angepasst. Zuerst wird gecheckt, ob PDF-Dateien einem Programm zugeordnet sind und dann wird das zugeordnete Programm (bei mir der AcrobatReader) gestartet und die Datei als Parameter übergeben. Ist damit vielleicht etwas professioneller, aber zeigt das gleiche Problem. Insgesamt führen jetzt also 3 Wege zum gleichen Problem.
Kann das eigentlich jemand nachvollziehen, oder findet das Problem nur auf meinem PC statt?
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.