Подскажите, есть ли возможность выполнить INF файл внутри приложения?
Или выполнить все тоже самое, только через код C#
Код файла INF (защита MBR):
; MBRFilter.inf
;
[Version]
Signature = "$Windows NT$"
Class = DiskDrive
ClassGUID = {4d36e967-e325-11ce-bfc1-08002be10318}
Provider = %csco%
DriverVer=09/21/2016,11.39.10.746
CatalogFile=MBRFilter.cat
;
; General installation section
;
[DefaultInstall]
CopyFiles = @MBRFilter.sys
Addreg = MBRFilter.AddReg
[DefaultInstall.NT]
CopyFiles = @MBRFilter.sys
Addreg = MBRFilter.AddReg
[DestinationDirs]
DefaultDestDir = 12
[MBRFilter.AddReg]
HKLM, System\CurrentControlSet\Control\Class\{4d36e967-e325-11ce-bfc1-8002be10318}, UpperFilters, 0x00010008, MBRFilter
;
; Service installation section
;
[DefaultInstall.Services]
AddService = MBRFilter, , MBRFilter.Service.Install
[DefaultInstall.NT.Services]
AddService = MBRFilter, , MBRFilter.Service.Install
[MBRFilter.Service.Install]
DisplayName = %service_desc%
ServiceType = 1
StartType = 0
ErrorControl = 1
ServiceBinary = %12%\MBRFilter.sys
LoadOrderGroup = "PnP Filter"
[SourceDisksFiles]
MBRFilter.sys=1
[SourceDisksNames]
1 = %diskid1%,,,
;
; Localizable Strings
;
[Strings]
csco = "Cisco Talos"
service_desc = "MBR write filter"
diskid1 = "Cisco Talos MBR filter"
Можно попробовать через Process
запустить в инсталляторе InfDefaultInstall
, запуск процесса лучше обернуть в блок try...catch
:
var pathInf = "C:\\MBR.inf"; // путь к вашему inf файлу
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 " + pathInf;
try
{
process.Start();
process.WaitForExit();
}
catch(Exception ex)
{
// ex.Message - будет хранить текст возникшего исключения
}
finally
{
process.Dispose();
}
А еще нашел вот такой способ запуска (для начала импортировать):
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, "путь к .inf файлу", 0);
Ссылка на источник: install/uninstall an .inf driver programmatically using C# .net
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день , столкнулся с проблемой при парсинге Json средствами C#Библиотека:Newtonsoft
Нужно создать открытку на новогоднюю тематику на языке C#Помогите пожалуйста, как сделать падающий снег и еще что нибудь подобное!
Здравствуйте, есть ли способ правильно складывать прошлые значения аргументов с новыми?