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 dołączyć sterownik do mojego instalatora, aby użytkownicy nie musieli przechodzić przez problemy z instalacją samego sterownika.Jak zainstalować sterownik za pomocą InnoSetup?
Odpowiedz
Zobacz InstallHinfSection na stronie MSDN. Dokumentacja wspomina również, jak wywołać instalację, wywołując "Rundll32.exe". Prawdopodobnie będziesz skończyć 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 trzeba uruchomić instalację w trybie 64-bitowym w systemach 64-bitowych, aby móc zainstalować sterownik:
[Setup]
..
ArchitecturesInstallIn64BitMode=x64
także możesz umieścić check, aby uruchomić wersję pliku .inf w zależności od architektury maszyny (np. Check: Is64BitInstallMode
).
Tryb 64-bitowy InnoSetup * nie * tworzy 64-bitowy plik wykonywalny instalatora! Musisz użyć małego 64-bitowego pliku wykonywalnego helpera, aby wywołać potrzebne API. Interfejsy API do użycia to 'UpdateDriverForPlugAndPlayDevices' na XP i' DiInstallDriver' na dowolnych poprzednich XP. –
Jest to lepsze rozwiązanie: Inno setup: install drivers with rundll32 or dpinst?
Korzystanie InstallHinfSection na Windows 7 i nie tylko wydaje się być uszkodzony lub najeżona trudnościami. Uruchamianie go z pliku wsadowego jest trudne, co sprawia, że praca z innosetup jest jeszcze trudniejsza. Wydaje się, że DPINST jest lepszy i jest prostszy.
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";
i nie był w stanie zainstalować sterowniki w DESTDIR: "C: \ Windows \ System32 \ drivers \" ;, eventhough I podano dokładną ścieżkę aż dodałem " ArchitecturesInstallIn64BitMode = x64 "do [Setup]. Więc upewnij się, że masz ten zestaw. –