Consultor Eletrônico



Kbase P91465: How to access windows desktop shortcuts properties from Progress 4GL?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   8/12/2004
Status: Unverified

GOAL:

How to access windows desktop shortcuts properties from Progress 4GL?

FACT(s) (Environment):

Windows

FACT(s) (Environment):

Progress 8.x

FACT(s) (Environment):

Progress 9.x

FACT(s) (Environment):

OpenEdge 10.x

FIX:

The following code uses the 'Windows Script Host object' and the windows 'FileSystemObject (FSO) object' to access the properties of a windows desktop shortcut named "Notepad Shortcut Test":

DEF VAR hObjShell AS COM-HANDLE NO-UNDO.
DEF VAR hObjFSO AS COM-HANDLE NO-UNDO.
DEF VAR hObjSFolders AS COM-HANDLE NO-UNDO.
DEF VAR hObjDesktopFolder AS COM-HANDLE NO-UNDO.
DEF VAR cDeskTopDirectory AS CHAR NO-UNDO.
DEF VAR hShortCut AS COM-HANDLE NO-UNDO.

CREATE "WScript.Shell" hObjShell.
CREATE "Scripting.FileSystemObject" hObjFSO.

ASSIGN
   hObjSFolders = hObjShell:SpecialFolders()
   hObjDesktopFolder = hObjFSO:GetFolder(hObjSFolders:ITEM("AllUsersDesktop")).

IF NOT VALID-HANDLE(hObjDesktopFolder)
   THEN hObjDesktopFolder = hObjFSO:GetFolder(hObjSFolders:ITEM("DeskTop")).

IF VALID-HANDLE(hObjDesktopFolder)
   THEN  cDeskTopDirectory = hObjDesktopFolder:Path.

IF SEARCH(cDeskTopDirectory + "\Notepad Shortcut Test.lnk") NE ? THEN DO:
   ASSIGN
       hShortCut = hObjShell:CreateShortcut(cDeskTopDirectory + "\Notepad Shortcut Test.lnk").
   MESSAGE "hShortCut:TargetPath" hShortCut:TargetPath SKIP
           "hShortCut:WorkingDirectory" hShortCut:WorkingDirectory SKIP
       VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.