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.