[DllImport("shell32.dll")]
static extern IntPtr ShellExecute(
IntPtr hwnd,
string lpOperation,
string lpFile,
string lpParameters,
string lpDirectory,
int nShowCmd);
None.
If the return value is greater than 32, the ShellExecute call was successfully executed. Otherwise, check for one of these constants:
ERROR_SUCCESS | 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-Microsoft Win32 .exe or error in .exe image). |
SE_ERR_ACCESSDENIED | The operating system denied access to the specified file. |
SE_ERR_ASSOCINCOMPLETE | The file name association is incomplete or invalid. |
SE_ERR_DDEBUSY | The Dynamic Data Exchange (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 (DLL) was not found. |
SE_ERR_FNF | The specified file was not found. |
SE_ERR_NOASSOC | 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. |
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. |
None.
Possible values for lpOperation
edit
explore
find
open
NULL - Performs the default action (prior to Win2k) normally open
// Asks default mail client to send an email to the specified address.
ShellExecute( IntPtr.Zero, "open", "mailto:support@microsoft.com", "", "", 4 );
// Asks default browser to visit the specified site.
ShellExecute( IntPtr.Zero, "open", "http://channel9.msdn.com", "", "", 4 );
// Opens default HTML editing app to allow for edit of specified file
ShellExecute( IntPtr.Zero, "edit", @"c:\file.html", "", "", 4 );
//Modified by Aljaz: Replaced the last zero in these calls with 4 otherwise it wouldn't show anything
// 0 stands for SW_HIDE contant, which means execute but don't show the window which is probably not
// what we want.
Do you know one? Please contribute it!