Für diverse Dateitypen versuche ich über FindExecutableA das zugewiesene Standardprogramm zu ermitteln
und diese dann über RunShell anzuzeigen bzw. zu bearbeiten.
Das funktioniert aber ab Win 7 für manche Dateitypen nicht mehr.
Beispiel: Tif Datei, ich bekomme den Betriebssystemfehler 193
(ERROR_BAD_EXE_FORMAT 193 (0xC1) %1 is not a valid Win32 application.
Wenn ich mir das ermittelte Standardprogramm anzeigen lasse bekomme ich
das ist klar eine Dll ist keine ausführbare Applikation,
wie soll ich das bei Win Inside machen ?
Betriebssystemfehler 193 [ERLEDIGT]
Moderator: Moderatoren
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Betriebssystemfehler 193 [ERLEDIGT]
Zuletzt geändert von Koverhage am Fr, 01. Apr 2011 11:06, insgesamt 1-mal geändert.
Gruß
Klaus
Klaus
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Betriebssystemfehler 193
hm ... macht man das nicht mit ShellExecuteA ?Koverhage hat geschrieben:Für diverse Dateitypen versuche ich über FindExecutableA das zugewiesene Standardprogramm zu ermitteln
Code: Alles auswählen
IF FILE(zPATH+cFILE)
SHELLOPENFILE(zPATH, cFILE )
ENDIF
FUNCTION SHELLOPENFILE(cPath, cFILE )
LOCAL lSuccess
LOCAL Retvar := .F.
/*----------------------------------------------------------
Created from ContactUs.PRG
Posted to Alaska Generic NG 3/15/01
By Anand K Gupta Sun, 24 Dec 2000
----------------------------------------------------------- */
#IFDEF __XPP__
#define SW_HIDE 0
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#ENDIF
#define SE_ERR_NOASSOC 31
lSuccess := DllCall( "SHELL32.DLL" , DLL_STDCALL, ;
"ShellExecuteA", AppDesktop():GetHWND(), "open", cPath+cFile,;
NIL, CurDir(), SW_NORMAL ) // SW_MAXIMIZE
DO CASE
CASE lSuccess > 32 // Aufruf erfolgreich
Retvar := .T.
Case lSuccess = SE_ERR_NOASSOC // Keine verknüpfte Anwendung
// Falls ShowOpenWithDialog = True, wird der Dialog
// "Öffnen mit" für diese Datei angezeigt:
// Shell "RunDLL32 shell32.dll,OpenAs_RunDLL " & Filename
DllCall( "SHELL32.DLL" , DLL_STDCALL, ;
"OpenAs_RunDLL", AppDesktop():GetHWND(), NIL, cPath+cFile,;
NIL, CurDir(), SW_NORMAL ) // SW_MAXIMIZE
// Die Auswahlmöglichkeit wird als Erfolg gewertet:
Retvar := .T.
OTHERWISE
// ShellExecute war erfolglos.
// Boolean-Standardwert False zurückgeben
Retvar := .F.
ENDCASE
RETURN Retvar
gruss by OHR
Jimmy
Jimmy
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Betriebssystemfehler 193
Habe das jetzt auf ShellExecute geändert und es funktioniert.
Danke.
Danke.
Gruß
Klaus
Klaus