[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!
Process.Start Method
Starts a process resource and associates it with a Process component.
Overload List
Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.
[Visual Basic] Overloads Public Function Start() As Boolean
[C#] public bool Start();
[C++] public: bool Start();
JScript public function Start() : Boolean;
Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.
[Visual Basic] Overloads Public Shared Function Start(ProcessStartInfo) As Process
[C#] public static Process Start(ProcessStartInfo);
[C++] public: static Process* Start(ProcessStartInfo*);
JScript public static function Start(ProcessStartInfo) : Process;
Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.
[Visual Basic] Overloads Public Shared Function Start(String) As Process
[C#] public static Process Start(string);
[C++] public: static Process* Start(String*);
JScript public static function Start(String) : Process;
Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.
[Visual Basic] Overloads Public Shared Function Start(String, String) As Process
[C#] public static Process Start(string, string);
[C++] public: static Process* Start(String*, String*);
JScript public static function Start(String, String) : Process;
Example
[Visual Basic]
Imports System
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
_
'/ <summary>
'/ Shell for the sample.
'/ </summary>
Public Class MyProcess
'/ <summary>
'/ Opens the Internet Explorer application.
'/ </summary>
Public Sub OpenApplication(myFavoritesPath As String)
' Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe")
' Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath)
End Sub 'OpenApplication
'/ <summary>
'/ Opens urls and .html documents using Internet Explorer.
'/ </summary>
Public Sub OpenWithArguments()
' url's are not considered documents. They can only be opened
' by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com")
' Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
End Sub 'OpenWithArguments
'/ <summary>
'/ Uses the ProcessStartInfo class to start new processes, both in a minimized
'/ mode.
'/ </summary>
Public Sub OpenWithStartInfo()
Dim startInfo As New ProcessStartInfo("IExplore.exe")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
Process.Start(startInfo)
startInfo.Arguments = "www.northwindtraders.com"
Process.Start(startInfo)
End Sub 'OpenWithStartInfo
Public Shared Sub Main()
' Get the path that stores favorite links.
Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
Dim myProcess As New MyProcess()
myProcess.OpenApplication(myFavoritesPath)
myProcess.OpenWithArguments()
myProcess.OpenWithStartInfo()
End Sub 'Main
End Class 'MyProcess
End Namespace 'MyProcessSample
[C#]
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
/// <summary>
/// Shell for the sample.
/// </summary>
public class MyProcess
{
/// <summary>
/// Opens the Internet Explorer application.
/// </summary>
public void OpenApplication(string myFavoritesPath)
{
// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");
// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);
}
/// <summary>
/// Opens urls and .html documents using Internet Explorer.
/// </summary>
public void OpenWithArguments()
{
// url's are not considered documents. They can only be opened
// by passing them as arguments.
Process.Start("IExplore.exe", "www.northwindtraders.com");
// Start a Web page using a browser associated with .html and .asp files.
Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}
/// <summary>
/// Uses the ProcessStartInfo class to start new processes, both in a minimized
/// mode.
/// </summary>
public void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);
}
public static void Main()
{
// Get the path that stores favorite links.
string myFavoritesPath =
Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
MyProcess myProcess = new MyProcess();
myProcess.OpenApplication(myFavoritesPath);
myProcess.OpenWithArguments();
myProcess.OpenWithStartInfo();
}
}
}