Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Edzan:
Можно ли вот этот как нибудь организовать в NSIS? http://forum.oszone.net/post-1217528-97.html
Можно, накидал макрос по быстрому:
Код: Выделить весь код
${GetGameDrive} "путь установки игры без буквы диска"
Код: Выделить весь код
outfile test.exe


!define GetGameDrive "!insertmacro _GetGameDrive"
!macro _GetGameDrive hPatch
  !include Logiclib.nsh
  System::Store S
  System::Call 'kernel32::GetLogicalDrives(v)i.r0'
  StrCpy $1 $WINDIR 3
  StrCpy $3 65
  StrCpy $5 -1
  ${Do}
      IntOp $2 $0 & 1
      ${If} $2 <> 0
          IntFmt $2 "%c:\" $3
          System::Call 'kernel32::GetDriveType(tr2)i.r4'
          ${If} $4 == 3
              IntOp $5 $5 + 1
              ${IfNot} $2 == $1
                 StrCmp $5 1 0 +2
                 StrCpy $INSTDIR "$2${hPatch}"
                 StrCmp $5 0 0 +2
                 StrCpy $INSTDIR "$1${hPatch}"
              ${EndIf}
          ${EndIf}
      ${EndIf}
      IntOp $3 $3 + 1
      IntOp $0 $0 >> 1
  ${LoopUntil} $0 == 0
  System::Store L
!macroend

Function .OnInit
  ${GetGameDrive} "Games\My Game"
FunctionEnd

Section
  MessageBox MB_ICONINFORMATION|MB_OK "$INSTDIR"
SectionEnd
Макрос перезаписывает переменную $INSTDIR в самой первой функции установщика (пример).
Макрос определяет логические диски на компьютере и предлагает установить на первый логический диск не являющийся системным, в противном случае будет предложен системный диск.

Цитата Begin2Fly:
Появилась вторая бетка 3-й версии: »
как всегда, РОВНОМ НИЧЁ НЕ СДЕЛАЛИ ))

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 06-08-2015 в 22:14.


Отправлено: 12:45, 06-08-2015 | #1734