Установщик FileCopy для NSIS не работает в Windows 7, но работает в Windows XP - PullRequest
0 голосов
/ 11 мая 2011

Я использую FileCopy установщика NSIS для копирования папки вместе со всеми ее подфайлами из источника в место назначения.Это работает в XP, но не в Windows 7. Когда я запускаю установщик в Windows 7, диалоговое окно FileCopy даже не появляется, оно просто пропускается.Но в Windows XP он правильно показывает диалоговое окно «Копирование файлов» и завершается успешно.В чем проблема?Пожалуйста, помогите.

!define FileCopy `!insertmacro FileCopy`
!macro FileCopy FilePath TargetDir
  CreateDirectory `${TargetDir}`
  CopyFiles `${FilePath}` `${TargetDir}`
!macroend

   ${FileCopy} 'C:\ACCBK\*.*' '$INSTDIR\ACCBK\'

1 Ответ

2 голосов
/ 12 мая 2011

Чтобы убедиться, что установщик работает от имени администратора, используйте этот код:

RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)

!include LogicLib.nsh

Function .onInit
UserInfo::GetAccountType
pop $0
${If} $0 != "admin" ;Require admin rights on NT4+
    MessageBox mb_iconstop "Administrator rights required!"
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
    Quit
${EndIf}
FunctionEnd

Если это проблема, это означает, что она действительно была повреждена и на XP (на самом деле, на любой версии NT), выпросто забыл проверить как не администратор.

CopyFiles просто вызывает SHFileOperation, но, конечно, могут быть некоторые критические изменения между XP и Vista + ...

...