@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The FindExecutable API !!!!C# Signature: [DllImport("shell32.dll")] static extern IntPtr FindExecutable(string lpFile, string lpDirectory, [Out] StringBuilder lpResult); !!!!VB Signature: <DllImport("shell32.dll")> _ Private Shared Function FindExecutable(ByVal lpFile As String, ByVal lpDirectory As String, ByRef lpResult As StringBuilder) As IntPtr End Function !!!!VBA Signature: Private Declare Function FindExecute Lib "shell32.dll" Alias _ "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory _ As String, ByVal lpResult As String) As Long !!!!User-Defined Types: None. !!!!Notes: 1) When using VB, one cannot place the declaration for FindExecutable within the code portion of a form. If one needs to search for an executable from within a form, though, it is easy enough to open a module and place the declaration there. From the form code, make a call to a function in the module. Within the module function, execute FindExecutable and return any results to the form routine. steveapub@pineclifftech.com 2) Make sure the following references are available: Imports System.Runtime.InteropServices Imports System.Text !!!!Tips & Tricks: Error Codes that can be returned: Public Enum FindExecutableErrorCodes ''' <summary>The specified file was not found.</summary> SE_ERR_FNF = 2 ''' <summary>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. </summary> SE_ERR_NOASSOC = 31 ''' <summary>There was not enough memory to complete the operation.</summary> SE_ERR_OOM = 8 End Enum !!!!Sample Code: Please add some!! !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: FindExecutable@msdn on MSDN ******************** Win32API.cs ****************** using System; using System.Text; using System.Runtime.InteropServices; namespace QuickTool { public class Win32API { [DllImport("shell32.dll", EntryPoint="FindExecutable")] public static extern long FindExecutableA( string lpFile, string lpDirectory, StringBuilder lpResult); public static string FindExecutable( string pv_strFilename) { StringBuilder objResultBuffer = new StringBuilder(1024); long lngResult = 0; lngResult = FindExecutableA(pv_strFilename, string.Empty, objResultBuffer); if(lngResult >= 32) { return objResultBuffer.ToString(); } return string.Format( "Error: ({0})", lngResult); } } } ************************************************************** **************** Form1.cs **************** private void mnuDynamic_Click(object sender, System.EventArgs e) { MenuItem theMenuItem = (MenuItem) sender; MessageBox.Show(Win32API.FindExecutable(theMenuItem.Text)); } ******************************************************************
Edit shell32.findexecu...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.