Talk:Driver installation and update: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
m (Added signature)
 
(One intermediate revision by one other user not shown)
Line 11: Line 11:
[[User:Rafael Vargas|Rafael Vargas]] 09:37, 27 August 2008 (PDT)
[[User:Rafael Vargas|Rafael Vargas]] 09:37, 27 August 2008 (PDT)


Code that should be added to '''drvsetup.nsh''' (values taken from newdev.h):
<highlight-nsis>
!define INSTALLFLAG_FORCE 0x1
!define INSTALLFLAG_READONLY 0x2
!define INSTALLFLAG_NONINTERACTIVE 0x4
</highlight-nsis>
--[[User:Crayon|Crayon]] 15:51, 16 December 2008 (UTC)


== Alternative to GetWindowsVersion ==
== Alternative to GetWindowsVersion ==
Line 33: Line 41:
</highlight-nsis>
</highlight-nsis>
If you use it, '''$R3''' will be empty so make sure all the places were it is shown are modified.
If you use it, '''$R3''' will be empty so make sure all the places were it is shown are modified.
--[[User:Crayon|Crayon]] 15:51, 16 December 2008 (UTC)

Latest revision as of 15:51, 16 December 2008

Extra functionality

I've used this function to install drivers. And in some circumstances I had to install an older driver over a new one, for this, i've changed the fourth parameter (flags) to 1 (INSTALLFLAG_FORCE) and it did the work.

 System::Call '${sysUpdateDriverForPlugAndPlayDevices}?e (0, R0, R1, 1, 0) .r0'

Maybe someone could add the this as an optional functionality to this function...

Rafael Vargas 09:37, 27 August 2008 (PDT)


Code that should be added to drvsetup.nsh (values taken from newdev.h):

!define INSTALLFLAG_FORCE 0x1
!define INSTALLFLAG_READONLY 0x2
!define INSTALLFLAG_NONINTERACTIVE 0x4

--Crayon 15:51, 16 December 2008 (UTC)

Alternative to GetWindowsVersion

Instead of using the following block of code:

 ; Get the Windows version
 Call GetWindowsVersion
 Pop $R3 ; Windows Version
 ;DetailPrint 'Windows Version: $R3'
 StrCmp $R3 '2000' lbl_upgrade
 StrCmp $R3 'XP' lbl_upgrade
 StrCmp $R3 '2003' lbl_upgrade
 DetailPrint "Windows $R3 doesn't support automatic driver updates."

You could use this one (built-in function in winver.nsh):

 ${If} ${AtLeastWin2000}
  Goto lbl_upgrade
 ${EndIf}
 DetailPrint "This Windows version doesn't support automatic driver updates."

If you use it, $R3 will be empty so make sure all the places were it is shown are modified. --Crayon 15:51, 16 December 2008 (UTC)