PDA

Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

K.A.V.
15-12-2013, 18:35
Объясняю. Имею консольную программу распаковщик. Туда нужно вводить команды, нажать' enter' он и начнет распаковывать. »
Прочитайте в интернете о том, что такое консольная программа и для чего она нужна, ибо с такими знаниями вам рановато идти в программирование

А как же тогда делать? Ведь программа консольная... »
Вы могли это выложить в самом первом своём сообщении, о чем вас здесь постоянно просили, сказать, что имеете и что нужно реализовать?
Ваша задача решается за 1 минуту без "необходимых" вам извращений в коде

Создайте bat-файл следующего содержания:

sisInstall
pause

положите созданный файл в папку с вашим консольным приложением и запустите, когда консольное приложение исполняют без параметров - оно отображает синтаксис своих доступных команд

Что такое bat-файл читайте также в интернете, готовый вам давать не буду

Vincent7
16-12-2013, 09:53
K.A.V., а на что мне этот bat файл если мне нужно gui создать..

K.A.V.
16-12-2013, 10:53
K.A.V., а на что мне этот bat файл если мне нужно gui создать.. »
:shot:

Прочитайте в интернете о том, что такое консольная программа »
И выясните, чем отличается консольная программа от программы с графическим интерфейсом, это и будет ответ на все ваши "зачем" и "как"
Вы не знаете, что в итоге получите от запуска вашего приложения в таком виде (через bat-файл) и уже спрашиваете, зачем это делать

Теперь я буду уговаривать вас здесь неделю найти различия и почитать, что такое консольное приложение?
Здесь тема по помощи в скриптах NSIS, а не в обучении совсем новичков (как вы, которые не знают, что такое консольное приложение и для чего оно нужно) и здесь мы не разжевываем знакомство с миром перепаковки с самого начала.

1. Научитесь искать информацию в интернете
2. Научитесь слушать и прислушиваться к тем, у кого сами просите помощи, по крайней мере в этой теме - всё, что вам здесь будут советовать просто так не пишется, во всём будет смысл. Если я вам сказал, что вам нужно сделать bat-файл и запустить его в папке с вашей программой - значит это не просто так

Наше дело - дать вам советы, если вы чего-то не знаете или не понимаете, ваше дело - отказаться, но тогда какой смысл просить помощи, если вы не зная результата уже можно сказать отказываетесь??

Begin2Fly
16-12-2013, 16:08
kotkovets, прошу прощения за беспокойство, снова проблема с WinVer2.
Windows XP x86 со старой версией библиотеки определялась нормально - как "WinXP", теперь же это "Win32s". Баг?
NSIS 3.0a1, Unicode.

Vincent7
16-12-2013, 17:40
K.A.V., от этого батника мне пользы никакой нет. Я же писал- хочу автоматизировать и упростить процесс распаковки. Понимаете, в процессе программа будет просить нужные файлы, просить второй диск, а я хочу заранее в nsis задать все нужные данные в переменные, и исходя из сообщений распаковщика автоматически посылать их программе, чтобы вводить ничего не нужно было в процессе распаковки.

K.A.V.
16-12-2013, 18:54
K.A.V., от этого батника мне пользы никакой нет »
Хорошо, значит, я не могу помочь вам в реализации необходимого вам функционала.

Здесь, я думаю, кроме меня есть и другие люди, которые читая ваши сообщения недоумевают с вашей твердолобости и упрямости

kotkovets
16-12-2013, 20:00
прошу прощения за беспокойство, снова проблема с WinVer2 »
проверил, именно с юникодной версией,
unicode true
никаких проблем не заметил.

Krinkels
16-12-2013, 20:44
Здесь, я думаю, кроме меня есть и другие люди, которые читая ваши сообщения недоумевают с вашей твердолобости и упрямости »
Ну я бы сказал что это банальная лень, и не желание в чем то самому разобраться. Парнишка просто хочет чтоб за него все сделали, а он только пожинал плоды.

Begin2Fly
16-12-2013, 21:39
проверил, именно с юникодной версией,
никаких проблем не заметил. »
Виноват, попробовал на лёгком скрипте - всё правильно. Видимо, с чем-то конфликтует.
Если разберусь, отредактирую свой пост. Спасибо.

kotkovets
16-12-2013, 22:31
Если разберусь, отредактирую свой пост »
Обязательно, укажите суть разборки - значение win32s берется из стека WinVer2 больше неоткуда..

MKN
17-12-2013, 11:52
Воспроизведение MP3 файлов

MP3 можно проигрывать с помощью известного кода : http://nsis.sourceforge.net/Play_Sound
или с помощью bass.dll, что гораздо удобнее и более гибко (если знать вызов всех команд...)


!define BASS_DLL "bass.dll"
!define BASS_LOC "$PLUGINSDIR\${BASS_DLL}"
!define MP3 "demo.mp3"
!define MP3_LOC "$PLUGINSDIR\demo.mp3"
; для зацикливания воспроизведения
;!define BASS_SAMPLE_LOOP 4

OutFile "Bass_Test.exe"
Page instfiles

Function .onInit
InitPluginsDir
File "/oname=${MP3_LOC}" "${MP3}"
File "/oname=${BASS_LOC}" "${BASS_DLL}"
FunctionEnd

Section
FindWindow $0 "#32770" "" $HWNDPARENT
System::Call /NOUNLOAD '${BASS_LOC}::BASS_Init(i -1,i 44100,i 0,i r0,i n) b.r0'
System::Call /NOUNLOAD '${BASS_LOC}::BASS_Start() b.r0'
System::Call /NOUNLOAD '${BASS_LOC}::BASS_StreamCreateFile(b 0,t "$PLUGINSDIR\demo.mp3",i 0,i 0,i 0) i.r1'
; для зацикливания воспроизведения
;System::Call /NOUNLOAD "${BASS_LOC}::BASS_ChannelFlags(i r1, i ${BASS_SAMPLE_LOOP}, i ${BASS_SAMPLE_LOOP}) i.R0"
System::Call /NOUNLOAD '${BASS_LOC}::BASS_ChannelPlay(i r1, b 0) i.R1'
SectionEnd

Function .onGUIEnd
System::Call /NOUNLOAD "${BASS_LOC}::BASS_StreamFree(i) v (r1)"
System::Call /NOUNLOAD "${BASS_LOC}::BASS_Stop() b () .r0"
FunctionEnd

MKN
17-12-2013, 12:52
Ведь программа консольная... вот, посмотрите http://cs.rin.ru/forum/download/file.php?id=13154 »
Вскользь посмотрел...
sisinstall - это хрень для распаковки некоторых игр. Во-первых, у кого windows 7 надо переименовать sisinstall.exe в sis.exe.
Какие команды с sisinstal можно использовать - уже сказано.

Первая команда - sis.exe update. Прога законнектится с каким то ресурсом и скачает какой то файл contentDescriptionRecord.bin

Потом можно распаковывать игру . Например, игру King Arthur - The Role-playing Wargame
распаковать можно командой : sis.exe extractAll "C:\sisinstall\King Arthur - The Role-playing Wargame_disk1.sis" "C:\Arthur"
В ряде случаев в папки надо обязательно добавлять доп файлы ( какие то манифесты, SID и пр. Мне это не известно и не интересно... )

Этот обзор, для пользователей, принимающих участие в тяжёлой дискуссии... :)

Как эти команды привязать к GUI я уже пытался посоветовать... Как запускать команды из скрипта тыщу раз сказано и тыщи примеров здесь и в сети, приведены.
Более добавить нечего... Надо Vincent7 - просто самому поработать...

kotkovets
17-12-2013, 21:12
Надо Vincent7 - просто самому поработать... »
Vincent7 понятие не имеет, что такое поработать..

Vincent7
18-12-2013, 00:42
kotkovets, за себя отвечайте

K.A.V.
18-12-2013, 02:05
kotkovets, за себя отвечайте »
Не нужно здесь разводить срач и перепираться, вас уже просят, сделайте так, сделайте это, чтобы вы могли решить нужную вам проблему, а вы идёте в отказ, говоря, что "мне это не нужно", но заранее даже не посмотрев на результат, как это ещё можно расценить? Просто нежелание что-то делать и изучать самому, и так думаю не один я.

Что касается вашего высказывания - посмотрите, кто в данной теме (и чей ник в авторстве справочника NSIS) постоянно отвечает пользователям и помогает писать NSIS скрипты, а потом посмотрите на ваши сообщения в этой теме и попробуйте что-то сказать про себя, посмотря на все свои сообщения со стороны.

А вообще, наверное, нужно игнорить подобных "уникумов", которые не прочитав справочник от страницы до страницы, приходят сюда и задают вопросы, которые уже там описаны, мы здесь всем пытаемся помочь по возможности, но я уже в этой теме много раз говорил - поможем, если у вас у самих есть желание что-то изучать и делать, в противном случае, если:
1. Я не знаю что это и что мне это даст, но это мне не нужно
2. Дайте полностью рабочий код
3. Не хочу ничего читать
4. Просто нужен такой функционал

то данная тема не для вас.

Vincent7
18-12-2013, 06:21
вас уже просят, сделайте так, сделайте это, чтобы вы могли решить нужную вам проблему, а вы идёте в отказ, говоря, что "мне это не нужно", но заранее даже не посмотрев на результат, как это ещё можно расценить?Вы bat файл имеете ввиду? Я знал каким будет результат, честное слово... поэтому и не создал. Он моей задачи не решает.

K.A.V.
18-12-2013, 06:59
Вы bat файл имеете ввиду? Я знал каким будет результат, честное слово... »
Знаете, у меня сейчас складывается впечатление, что здесь сейчас развернётся дискуссия, более похожая на ваш экзамен с пропуском в мир перепаковки, потому как если вы посылая текст в консольное приложение называете выполнением команды в консольном приложении, то я очень сильно сомневаюсь, что вы знаете предназначение bat файла и понимаете, какую ценность он лично вам несёт.
Консольные приложения имеют командную строку (команды), которые передаются непосредственно в момент запуска этого приложения и команды сопровождаются ключами/параметрами/значениями и т.д.
То, что вы посылаете текст в консольное приложение, а не исполняете его через его командную строку говорит о том, что вы мало чего понимаете в этом, вот мой вывод.

MKN
18-12-2013, 13:15
Функция NetWkstaGetInfo возвращает информацию о конфигурации рабочей станции (имени домена, локального компьютера, информацию о OC)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa370663(v=vs.85).aspx


Outfile "NetWkstaGetInfo_test.exe"

Section
System::Call "netapi32::NetWkstaGetInfo(i0, i100, *i r0 r0) i.r6"
System::Call "*$0(i.r1, w.r2, w.r3, i.r4, i.r5)"
MessageBox MB_OK "$2 $3 domain (platform_id $1 - ver $4.$5) "
System::Call "netapi32::NetApiBufferFree(*i r0) i.r6"
; 500 - The Windows NT platform * http://msdn.microsoft.com/en-us/library/windows/desktop/aa371402(v=vs.85).aspx
SectionEnd

Vincent7
19-12-2013, 15:45
K.A.V., но ведь для выполнения команды нужно напечатать например' C:\папка_с_манифестом'

K.A.V.
19-12-2013, 21:01
K.A.V., но ведь для выполнения команды нужно напечатать например' C:\папка_с_манифестом' »
Может модератор угомонит предупреждением данную личность?
Писать как попугай и объяснять всё по миллион раз мне надоело, я вам просто тонну инфы уже выложил, а вы как умолишенный (простите, но со стороны это выглядит именно так) упёрлись в ваши "знания" и пытаетесь с их помощью что-то сделать.

На все ваши вопросы я уже ответил, либо идите с самого начала читать все мои ответы, либо прошу модератора избавить уже эту тему от издевательских сообщений от данной личности.

Раз (http://forum.oszone.net/post-2272782-862.html)
Два (http://forum.oszone.net/post-2273084-864.html)
Три (http://forum.oszone.net/post-2274179-878.html)




© OSzone.net 2001-2012