MartyConnelly
martyconnelly at shaw.ca
Wed Aug 8 17:06:40 CDT 2007
Try ShellExecute API with name of file 'http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp 'API STUFF ==================================================================== Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd _ As Long) As Long Private Const SW_SHOWNORMAL = 1 Private Const ERROR_FILE_NOT_FOUND = 2& Private Const ERROR_PATH_NOT_FOUND = 3& Private Const ERROR_BAD_FORMAT = 11& Private Const SE_ERR_ACCESSDENIED = 5 Private Const SE_ERR_ASSOCINCOMPLETE = 27 Private Const SE_ERR_DDEBUSY = 30 Private Const SE_ERR_DDEFAIL = 29 Private Const SE_ERR_DDETIMEOUT = 28 Private Const SE_ERR_DLLNOTFOUND = 32 Private Const SE_ERR_FNF = 2 Private Const SE_ERR_NOASSOC = 31 Private Const SE_ERR_OOM = 8 Private Const SE_ERR_PNF = 3 Private Const SE_ERR_SHARE = 26 'strProgram is the name of a program to run, or a file to open 'EX: calc.exe or c:\test.doc or http:\\www.microsoft.com Public Sub RunProgram(strProgram As String) Dim lRet As Long ' Get the return value ' Execute the API call lRet = ShellExecute(vbNull, "", strProgram, "", "", SW_SHOWNORMAL) ' If ShellExecute works it will return a number greate than 32 ' Otherwise call our ReportError function to see what went wrong If lRet <= 32 Then ReportShellExecuteError (lRet) End If End Sub Private Sub ReportShellExecuteError(lErrNum As Long) Dim strErr As String Select Case lErrNum Case ERROR_FILE_NOT_FOUND strErr = "The specified file was not found." Case ERROR_PATH_NOT_FOUND strErr = "The specified path was not found." Case ERROR_BAD_FORMAT strErr = "The .exe file is invalid (non-Win32® .exe or error in .exe image)." Case SE_ERR_ACCESSDENIED strErr = "The operating system denied access to the specified file. " Case SE_ERR_ASSOCINCOMPLETE strErr = "The file name association is incomplete or invalid." Case SE_ERR_DDEBUSY strErr = "The DDE transaction could not be completed because other DDE transactions were being processed." Case SE_ERR_DDEFAIL strErr = "The DDE transaction failed." Case SE_ERR_DDETIMEOUT strErr = "The DDE transaction could not be completed because the request timed out." Case SE_ERR_DLLNOTFOUND strErr = "The specified dynamic-link library was not found. " Case SE_ERR_FNF strErr = "The specified file was not found. " Case SE_ERR_NOASSOC strErr = "There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable." Case SE_ERR_OOM strErr = "There was not enough memory to complete the operation." Case SE_ERR_PNF strErr = "The specified path was not found." Case SE_ERR_SHARE strErr = "A sharing violation occurred." End Select MsgBox strErr, vbExclamation, "Error running program" End Sub Dan Waters wrote: >I want to set up a command button so that it's hyperlink address points to a >.chm help file. However, a recent MS security update makes this difficult. > >Has anyone figured out how to make this work? > >Thanks! >Dan Waters > > > > > -- Marty Connelly Victoria, B.C. Canada