我正在使用c#.net创建一个应用程序。它还包含一个文件系统minifilter驱动程序。我想使用c#.net以编程方式安装和卸载此驱动程序。通常我可以使用.INF文件安装它(通过右键单击+按安装)。但我想以编程方式安装它。有一个SDK函数InstallHinfSection()用于安装.inf驱动程序。我正在寻找这个功能的.net等价物。
此致
Navaneeth
答案 0 :(得分:25)
尝试这样的事情:
using System.Runtime.InteropServices;
[DllImport("Setupapi.dll", EntryPoint="InstallHinfSection", CallingConvention=CallingConvention.StdCall)]
public static extern void InstallHinfSection(
[In] IntPtr hwnd,
[In] IntPtr ModuleHandle,
[In, MarshalAs(UnmanagedType.LPWStr)] string CmdLineBuffer,
int nCmdShow);
然后调用它:
InstallHinfSection(IntPtr.Zero, IntPtr.Zero, "my path", 0);
我使用P/Invoke Signature Generator生成了大部分签名。
此方法及其参数的完整详细信息位于MSDN。根据MSDN,第一个参数可以为null,第二个参数必须为空,最后一个参数必须为0.您只需要传入字符串参数。< / p>
答案 1 :(得分:5)
这个简单的代码对我有用
private void driverInstall()
{
var process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c C:\\Windows\\System32\\InfDefaultInstall.exe " + driverPath; // where driverPath is path of .inf file
process.Start();
process.WaitForExit();
process.Dispose();
MessageBox.Show(@"Driver has been installed");
}