Jak zainstalować sterownik za pomocą InnoSetup?

Chciałbym zainstalować sterownik dla portu szeregowego za pomocą InnoSetup. Mam plik inf i mogę zainstalować sterownik ręcznie za pomocą Menedżera urządzeń, ale chciałbym móc uwzględnić sterownik w moim instalatorze, aby użytkownicy nie musieli zadawać sobie trudu z instalacją samego sterownika.

Author: nathan, 2011-09-13

3 answers

Zobacz InstallHinfSection na MSDN. Dokumentacja wspomina również, jak wywołać instalację, wywołując ' Rundll32.exe". Pewnie skończysz z czymś takim:

[Files]
..
Source: "driver\my_x86driver.inf"; DestDir: {app}\driver;
Source: "driver\my_x86driver.sys"; DestDir: {app}\driver;

[Run]
..
Filename: {sys}\rundll32.exe; Parameters: "setupapi,InstallHinfSection DefaultInstall 128 {app}\driver\my_x86driver.inf"; WorkingDir: {app}\driver; Flags: 32bit;


zauważ, że może być konieczne uruchomienie konfiguracji w trybie 64-bitowym w systemach 64-bitowych, aby móc zainstalować sterownik:

[Setup]
..
ArchitecturesInstallIn64BitMode=x64 

Również można umieścić kontrole, aby uruchomić wersję .plik inf w zależności od architektury maszyny (np. Check: Is64BitInstallMode).

 13
Author: Sertac Akyuz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-13 22:44:12

To jest lepsza odpowiedź: Inno setup: zainstalować sterowniki z rundll32 lub dpinst?

Używanie InstallHinfSection w Windows 7 i nowszych systemach wydaje się być albo zepsute, albo obarczone trudnościami. Wykonywanie pracy z pliku wsadowego jest trudne, wykonywanie pracy z innosetup jest jeszcze trudniejsze. DPINST wydaje się preferowany i jest prostszy.

 3
Author: quickly_now,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:13

Użyłem dpinst tak:

 [Files]    
Source: "Source\dpinst\dpinst32.exe"; DestDir: "{app}\driver"; DestName: dpinst.exe; Check: not IsWin64; Flags: ignoreversion
Source: "Source\dpinst\dpinst64.exe"; DestDir: "{app}\driver"; DestName: dpinst.exe; Check: IsWin64; Flags: ignoreversion

[Run]
Filename: "{app}\driver\dpinst.exe"; Parameters: "/A /LM";
 1
Author: Michael Richardson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-12 12:01:11