Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Path to a program
Message
From
07/09/2006 13:05:13
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01151910
Message ID:
01151976
Views:
50
This message has been marked as the solution to the initial question of the thread.
Naomi,

If the command line interface is installed via normal method then it's registered and you can find the location from the registry. The following code will return its location:
FUNCTION FindWzzip() as String
#DEFINE HKEY_LOCAL_MACHINE          -2147483646  && BITSET(0,31)+2
LOCAL lcWzzipKey, lcValue, lnErrorCode, loReg
lcWzzipKey = "Software\Microsoft\Windows\CurrentVersion\app paths\wzzip.exe"    && In the HKLM hive.
lcValue = ""
lnErrorCode = 0
TRY
   loReg = NewObject( "Registry", HOME(1) + "FFC\Registry.VCX")
   * Does the wzzip.exe app path key exist?
   IF loReg.IsKey( lcWzzipKey, HKEY_LOCAL_MACHINE)
      * If so, get its value.      
      lnErrorCode = loReg.GetRegKey( "", @lcValue, lcWzzipKey, HKEY_LOCAL_MACHINE)   
      IF lnErrorCode = 0   && No error.
         * Registered location of wzzip.exe is in lcValue.
      ELSE
         * Handle error: error reading registry key.
      ENDIF
   ENDIF
CATCH TO loError
   * Handle error
ENDTRY
RETURN lcValue
ENDFUNC && FindWzzip
As for your other question, it depends on what kind of error occurs. If the program run by oShell.Run does not exist your Catch will pick it up, unless m.tlSilentMode does not exist in which case you will get an unhandled structured exception.

OTOH if the program run by oShell.Run actually executes but has some kind of error of its own, your Catch will not pick that up. In that case the return value from oShell.Run is the code returned by the spawned program.

-Rick


>Hi everybody,
>
>I've installed command line interface for winzip. If I use wzzip without full path, it doesn't find the program. If I put it with the whole path, it works.
>
>However, I can not 100% guarantee (though there is 99% probability), that the user installed it into the same place. What should I do?
>
>The other question:
>
>I use this program to run a command
>local oShell, llError, loException
>llError = .f.
>try
>   oShell = createobject("WScript.Shell")
>catch to loException
>   if m.tlSilentMode
>     tcRetVal = "Run-time error: WScript.Shell Object is not Found"
>   else
>	=messagebox("Run-time error: WScript.Shell Object is not Found")
>  endif
>  llError = .t.
>endtry
>if m.llError <> .t.
>   try
>* SW_SHOW_HIDDEN 0,SW_SHOW_NORMAL 1,SW_SHOW_MINIMIZED 2,SW_SHOW_MAXIMIZED 3
>    oShell.run(m.tcCommand, 0,.t.) 	catch to loException
>	if m.tlSilentMode
>	 tcRetVal = "Run-time error: WScript.Shell: " + ;
> 	 m.tcCommand + chr(13) + chr(10) + Log_Error(m.loException)
>	else
>	 =messagebox("Run-time error: WScript.Shell: " + m.tcCommand)
>	endif
>    llError = .t.
> endtry
>endif
>release oShell
>
>return !llError
>
>
>but even if command fails, I don't get an error. What should I do to always get an error?
>
>Thanks in advance.
Rick Borup, MCSD

recursion (rE-kur'-shun) n.
  see recursion.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform