Shell command in WinXP

H

Hootie

Running an Access97 database in Win98 I use the command
AB = Shell ("C:\Folder\Executable")
The command worked fine. The executable started and worked. Using the same
database in a machine running WinXP I get an error message telling me the
executable file can't be found.
I believe XP assumes the executable is in the directory the database is in
even though the path is in the shell statement. Is there a way to force XP
to look to the proper directory for the executable?

Thanks.
 
D

Douglas J. Steele

I just tested using that exact combination (WinXP/Access 97), and it worked
fine. There must be something else that's different about your WinXP
machine.
 
L

losmac

Use ShellExecute() functio

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

Operating Systems Supported
Requires Windows NT 3.1 or later; Requires Windows 95 or later

Library
Shell32

Parameter Information
· hwn
Specifies a parent window. This window receives any message boxes that an application produces. For example, an application may report an error by producing a message box
· lpOperatio
Pointer to a null-terminated string that specifies the operation to perform. The following operation strings are valid
“openâ€
The function opens the file specified by lpFile. The file can be an executable file or a document file. The file can be a folder to open
“printâ€
The function prints the file specified by lpFile. The file should be a document file. If the file is an executable file, the function opens the file, as if “open†had been specified
“exploreâ€
The function explores the folder specified by lpFile
The lpOperation parameter can be NULL. In that case, the function opens the file specified by lpFile
· lpFil
Pointer to a null-terminated string that specifies the file to open or print or the folder to open or explore. The function can open an executable file or a document file. The function can print a document file
· lpParameter
If lpFile specifies an executable file, lpParameters is a pointer to a null-terminated string that specifies parameters to be passed to the application
If lpFile specifies a document file, lpParameters should be NULL
· lpDirector
Pointer to a null-terminated string that specifies the default directory
· nShowCm
If lpFile specifies an executable file, nShowCmd specifies how the application is to be shown when it is opened. This parameter can be one of the following values
SW_HID
Hides the window and activates another window
SW_MAXIMIZ
Maximizes the specified window
SW_MINIMIZ
Minimizes the specified window and activates the next top-level window in the Z order
SW_RESTOR
Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window
SW_SHO
Activates the window and displays it in its current size and position
SW_SHOWDEFAUL
Sets the show state based on the SW_ flag specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application. An application should call ShowWindow with this flag to set the initial show state of its main window
SW_SHOWMAXIMIZE
Activates the window and displays it as a maximized window
SW_SHOWMINIMIZE
Activates the window and displays it as a minimized window
SW_SHOWMINNOACTIV
Displays the window as a minimized window. The active window remains active
SW_SHOWN
Displays the window in its current state. The active window remains active
SW_SHOWNOACTIVAT
Displays a window in its most recent size and position. The active window remains active
SW_SHOWNORMA
Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time

If lpFile specifies a document file, nShowCmd should be zero.

Return Values

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.

If the function fails, the return value is an error value that is less than or equal to 32. The following table lists these error values
0
The operating system is out of memory or resources.

ERROR_FILE_NOT_FOUND
The specified file was not found.

ERROR_PATH_NOT_FOUND
The specified path was not found.

ERROR_BAD_FORMAT
The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).

SE_ERR_ACCESSDENIED
The operating system denied access to the specified file.

SE_ERR_ASSOCINCOMPLETE
The filename association is incomplete or invalid.

SE_ERR_DDEBUSY
The DDE transaction could not be completed because other DDE transactions were being processed.

SE_ERR_DDEFAIL
The DDE transaction failed.

SE_ERR_DDETIMEOUT
The DDE transaction could not be completed because the request timed out.

SE_ERR_DLLNOTFOUND
The specified dynamic-link library was not found.

SE_ERR_FNF
The specified file was not found.

SE_ERR_NOASSOC
There is no application associated with the given filename extension.

SE_ERR_OOM
There was not enough memory to complete the operation.

SE_ERR_PNF
The specified path was not found.

SE_ERR_SHARE
A sharing violation occurred.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top