DEF VAR c_extension AS CHAR NO-UNDO. /* Extension like '.doc' , '.pdf'... */
DEF VAR c_application AS CHAR NO-UNDO. /* App name */
DEF VAR c_program AS CHAR NO-UNDO. /* full path to app name */
ASSIGN c_extension = ".pdf".
/* open 1st registry : search application name */
LOAD c_extension BASE-KEY "HKEY_CLASSES_ROOT" NO-ERROR.
IF ERROR-STATUS:ERROR THEN RETURN "ERROR".
USE c_extension.
GET-KEY-VALUE SECTION "" KEY DEFAULT VALUE c_application. /* Give you the name of the app */
UNLOAD c_extension.
/* open 2nd registry : search exe full path */
LOAD c_application BASE-KEY "HKEY_CLASSES_ROOT" NO-ERROR.
IF ERROR-STATUS:ERROR THEN RETURN "ERROR".
USE c_application.
GET-KEY-VALUE SECTION "shell\Open\command" KEY DEFAULT VALUE c_program.
UNLOAD c_application.
/* Remove all unneed chars */
c_program = REPLACE(c_program,"%1","").
c_program = REPLACE(c_program,"%2","").
c_program = REPLACE(c_program,"%3","").
IF INDEX ( c_program , "/" ) > 2
THEN c_program = SUBSTRING(c_program,1,INDEX ( c_program , "/" ) - 1).
c_program = REPLACE(c_program,CHR(34),"").
c_program = TRIM(c_program).
/* Display full exe path */
MESSAGE c_program. /* Give you full path to the exe linked to your extension */