Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как инсталлировать INF файл

Delphi , Файловая система , Форматы файлов

Как инсталлировать INF файл

Автор: http://www.swissdelphicenter.ch

uses
  ShellAPI;

function InstallINF(const PathName: string; hParent: HWND): Boolean;
var
  instance: HINST;
begin
  instance := ShellExecute(hParent,
    PChar('open'),
    PChar('rundll32.exe'),
    PChar('setupapi,InstallHinfSection DefaultInstall 132 ' + PathName),
    nil,
    SW_HIDE);

  Result := instance > 32;
end; { InstallINF }

// Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
  InstallINF('C:\DelphiWorld.inf', 0);
end;

Here's the translation of the text into Russian:

Функция InstallINF в этом коде предназначена для установки файла INF (информационного файла), который используется Windows Setup API для установки драйверов устройств и других системных компонентов.

Вот, как функция работает:

  1. Функция ShellExecute вызывается с несколькими параметрами:

    • hParent: Обратный handle окна родительского окна.
    • PChar('open'): Глагол (действие), которое должно быть выполнено, в этом случае - "открыть".
    • PChar('rundll32.exe'): Исполнимый файл, который будет выполнять действие. В этом случае это системный исполнительный файл, используемый для запуска динамических связок (.dll).
    • PChar('setupapi,InstallHinfSection DefaultInstall 132 ' + PathName): Это аргумент командной строки. Он указывает файлу rundll32.exe, чтобы использовать библиотеку setupapi.dll и выполнить функцию InstallHinfSection с указанными аргументами.
    • nil: Рабочая директория для приложения.
    • SW_HIDE: Флаг, указывающий, как должен быть отображен создаваемое окно. В этом случае он установлен в SW_HIDE, что означает, что окно будет скрыто.
  2. Результат вызова функции ShellExecute хранится в переменной instance.

  3. Функция затем проверяет, является ли результат больше 32, и возвращает это значение как возвращаемое значение функции InstallINF.

Пример в конце демонстрирует, как использовать функцию InstallINF, вызывая ее с путем к файлу INF ('C:\DelphiWorld.inf') и передавая handle основного окна (0) как handle родительского окна.

Этот код может использоваться в приложении Delphi для программной установки файла INF. Однако важно отметить, что функция ShellExecute может не работать корректно, если пользователь не имеет необходимых прав на установку файла INF. Кроме того, это код предполагает, что файл INF находится на локальной системе и имеет правильные права на установку.

Вот некоторые альтернативы:

  1. Вместо использования ShellExecute, можно использовать функцию CreateProcess или компонент TProcess в Delphi для прямого запуска библиотеки setupapi.dll.

  2. Можно также использовать функции Windows Setup API, такие как SetupCopyOEMInf или SetupInstallFile, для программной установки файла INF.

Вот пример, как можно модифицировать код с помощью CreateProcess:

procedure TForm1.Button1Click(Sender: TObject);
var
  si: TStartupInfo;
  pi: TProcessInformation;
begin
  FillChar(si, SizeOf(TStartupInfo), 0);
  si.cb := SizeOf(TStartupInfo);
  si.dwFlags := STARTF_USESHOWWINDOW or STARTF_RUNFULLSCREEN;
  si.wShowWindow := SW_HIDE;

  FillChar(pi, SizeOf(TProcessInformation), 0);

  if CreateProcess(nil, PChar('rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 ' + 'C:\DelphiWorld.inf'), nil, nil, False, 0, nil, nil, si, pi) then
    Result := True;
  else
    Result := False;
end;

Этот код похож на оригинальный вызов ShellExecute, но использует функцию CreateProcess вместо нее. Он создает новый процесс, который запускает файл rundll32.exe с указанными аргументами и ожидает завершения процесса перед возвращением результата.

В статье рассмотрено, как инсталлировать файл INF с помощью функции InstallINF на языке программирования Delphi.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Форматы файлов ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 21:31:59/0.0071201324462891/2