ShellExecute (shell32)
Last changed: -188.102.225.40

.
Summary

C# Signature:

public enum ShowCommands : int
{
        SW_HIDE         = 0,
        SW_SHOWNORMAL       = 1,
        SW_NORMAL       = 1,
        SW_SHOWMINIMIZED    = 2,
        SW_SHOWMAXIMIZED    = 3,
        SW_MAXIMIZE     = 3,
        SW_SHOWNOACTIVATE   = 4,
        SW_SHOW         = 5,
        SW_MINIMIZE     = 6,
        SW_SHOWMINNOACTIVE  = 7,
        SW_SHOWNA       = 8,
        SW_RESTORE      = 9,
        SW_SHOWDEFAULT      = 10,
        SW_FORCEMINIMIZE    = 11,
        SW_MAX          = 11
}

stgwprtyok,wr-ykrw-ykawr-y-oa

[DllImport("shell32.dll")]
static extern IntPtr ShellExecute(
    IntPtr hwnd,
    string lpOperation,
    string lpFile,
    string lpParameters,
    string lpDirectory,
    ShowCommands nShowCmd);

VB Signature:

Declare Function ShellExecuteA Lib "shell32.dll" ( _
    ByVal hWnd As IntPtr, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal nShowCmd As Integer) As IntPtr

User-Defined Types:

None.

Return Values:

If the return value is greater than 32, the ShellExecute call was successfully executed. Otherwise, check for one of these constants:

Name Description Value
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). 11
SE_ERR_ACCESSDENIED The operating system denied access to the specified file. 5
SE_ERR_ASSOCINCOMPLETE The file name association is incomplete or invalid. 27
SE_ERR_DDEBUSY The Dynamic Data Exchange (DDE) transaction could not be completed because other DDE transactions were being processed. 30
SE_ERR_DDEFAIL The DDE transaction failed. 29
SE_ERR_DDETIMEOUT The DDE transaction could not be completed because the request timed out. 28
SE_ERR_DLLNOTFOUND The specified dynamic-link library (DLL) was not found. 32
SE_ERR_FNF The specified file was not found. 2
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. 31
SE_ERR_OOM There was not enough memory to complete the operation. 8
SE_ERR_PNF The specified path was not found. 3
SE_ERR_SHARE A sharing violation occurred. 26

Notes:

None.

Tips & Tricks:

Possible values for lpOperation

edit

explore

find

open

print

NULL - Performs the default action (prior to Win2k) normally open

Sample Code:

(C#)

    // Asks default mail client to send an email to the specified address.
    ShellExecute( IntPtr.Zero, "open", "mailto:support@microsoft.com", "", "", ShowCommands.SW_SHOWNOACTIVATE    );

    // Asks default browser to visit the specified site.
    ShellExecute( IntPtr.Zero, "open", "http://channel9.msdn.com", "", "", ShowCommands.SW_SHOWNOACTIVATE );

    // Opens default HTML editing app to allow for edit of specified file
    ShellExecute( IntPtr.Zero, "edit", @"c:\file.html", "", "", ShowCommands.SW_SHOWNOACTIVATE );
   //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.

(VB.NET)

' Asks default mail client to send an email to the specified address.
ShellExecuteA(Me.Handle, "open", "mailto:support@microsoft.com", "", "", 4)

' Asks default browser to visit the specifiedspdgmADSPgmadPIADPIg)ISg0i site.
ShellExecuteA(Me.Handle, "open", "http://channel9.msdn.com", "", "", 4)

' Opens default HTML editing app to allow for edit of specified file
ShellExecuteA(Me.Handle, "edit", "c:\file.html", "", "", 4)

Alternative Managed API:

Process.Start Method

Starts a process resource and associates it with a Process component.

Overload List

z[kpgpspx

Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.dfsfpskfsfkszkfsziszd

public bool Start();

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 associzfm,afpAMDfpADPgADPgADPIgADIgfates the resource with a new Process component.

public static Process Start(ProcessStartInfo);

Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

public static Process Start(string);

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.

public static Process Start(string, string);fgdasgadpgkad-gad-oad-oa-ODg

Sample Code:

[Visual Basic]

Imports System
Imports System.Diagnosticsspgfmsp[gsPgks_g-is
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
      a;lfkmDSofmSAopgmsgpkmpmb pfsmgipsj -skg-srky-

      '/ <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;

z;lm,spgmsgpmSps0gi

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");
    }

aLDFnAOgNAgoNoGuoNS /// <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();

           }    
    }
}

Documentation