我正在使用devcon.exe的启用和禁用设备功能的程序。它运作良好,但我不认为我可以合法地将devcon.exe的副本与程序打包在一起。我有这个程序的来源,它在C ++或C#中不确定我没有经验和C的类型。保持不知道C的事情;如何使用启用和禁用设备功能从devcon.exe代码中创建DLL?此DLL也用于vb.net程序,如果这有任何区别。 (如果我需要将整个exe放入DLL中,那么我只是认为只有两个函数才能使它更容易制作。)
devcon.exe下载here
devcon.exe源码下载here
答案 0 :(得分:2)
devon.exe使用cfgmgr32.dll和setupapi.dll来完成实际工作 - 而不是将devcon.exe转换为dll - 而是使用它使用的dll。
要从32位vb.net程序调用,您需要使用pinvoke,一种IJW(它正常工作)技术,它是.NET的一部分,用于处理从.NET调用Win32 dll的方法。声明DLL导入。
大多数情况下,您可以查看http://pinvoke.net的正确声明。例如,SetupDiEnumDeviceInfo可以声明为:
Private Declare Auto Function SetupDiEnumDeviceInfo Lib "setupapi.dll" ( _
ByVal DeviceInfoSet As Integer, _
ByVal MemberIndex As Integer, _
ByRef DeviceInfoData As SP_DEVINFO_DATA) As Boolean
SetupDiEnumDeviceInfo
的pinvoke.net条目也有一个如何调用它的示例。
您必须学习setupapi,但我认为这比将devcon.exe转换为DLL更容易,这仍然需要pinvoke来调用。