<BLOCKQUOTE><font size="1" face="Arial, Verdana">code:</font><HR><pre>/* FindExecutable.p */
DEFINE VARIABLE chrFile AS CHARACTER NO-UNDO.
DEFINE VARIABLE chrDirectory AS CHARACTER NO-UNDO.
DEFINE VARIABLE chrResult AS CHARACTER NO-UNDO.
DEFINE VARIABLE intRC AS INTEGER NO-UNDO.
PROCEDURE FindExecutableA EXTERNAL 'SHELL32.DLL':
DEFINE INPUT PARAMETER chrFile AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER chrDirectory AS CHARACTER NO-UNDO.
DEFINE INPUT-OUTPUT PARAMETER chrResult AS CHARACTER NO-UNDO.
DEFINE RETURN PARAMETER intRC AS LONG NO-UNDO.
END PROCEDURE.
ASSIGN chrFile = 'C:\Dmitri\doc.doc'
chrResult = FILL(' ', 255).
RUN FindExecutableA(INPUT chrFile,
INPUT chrDirectory,
INPUT-OUTPUT chrResult,
OUTPUT intRC).
IF intRC > 32 THEN
MESSAGE 'Executable Name = ' TRIM(chrResult) VIEW-AS ALERT-BOX.
ELSE
IF intRC = 31 THEN
MESSAGE 'No Associated Executable Found' VIEW-AS ALERT-BOX.
ELSE
MESSAGE 'Some Other Error Found' VIEW-AS ALERT-BOX.
[/code]
DEFINE VARIABLE chrFile AS CHARACTER NO-UNDO.
DEFINE VARIABLE chrDirectory AS CHARACTER NO-UNDO.
DEFINE VARIABLE chrResult AS CHARACTER NO-UNDO.
DEFINE VARIABLE intRC AS INTEGER NO-UNDO.
PROCEDURE FindExecutableA EXTERNAL 'SHELL32.DLL':
DEFINE INPUT PARAMETER chrFile AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER chrDirectory AS CHARACTER NO-UNDO.
DEFINE INPUT-OUTPUT PARAMETER chrResult AS CHARACTER NO-UNDO.
DEFINE RETURN PARAMETER intRC AS LONG NO-UNDO.
END PROCEDURE.
ASSIGN chrFile = 'C:\Dmitri\doc.doc'
chrResult = FILL(' ', 255).
RUN FindExecutableA(INPUT chrFile,
INPUT chrDirectory,
INPUT-OUTPUT chrResult,
OUTPUT intRC).
IF intRC > 32 THEN
MESSAGE 'Executable Name = ' TRIM(chrResult) VIEW-AS ALERT-BOX.
ELSE
IF intRC = 31 THEN
MESSAGE 'No Associated Executable Found' VIEW-AS ALERT-BOX.
ELSE
MESSAGE 'Some Other Error Found' VIEW-AS ALERT-BOX.
[/code]