Consultor Eletrônico



Kbase P91453: How to create windows desktop shortcuts from Progress 4GL?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Unverified

GOAL:

How to create windows desktop shortcuts from Progress 4GL?

FACT(s) (Environment):

Windows
Progress 8.x
Progress 9.x
OpenEdge 10.x

FIX:

The following code uses the 'Windows Script Host object' and the windows 'FileSystemObject (FSO) object' to create a desktop notepad 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.

ASSIGN
hShortCut = hObjShell:CreateShortcut(cDeskTopDirectory + "\Notepad Shortcut Test.lnk")
hShortCut:TargetPath = "Notepad.exe"
hShortCut:WindowStyle = 1
hShortCut:Hotkey = ""
hShortCut:IconLocation = "Notepad.exe, 0"
hShortCut:Description = "Notepad Shortcut Test"
hShortCut:WorkingDirectory = "E:\Temp".

hShortCut:Save().