Сейчас на форуме: hgdagon, asfa (+4 невидимых)

 eXeL@B —› Программирование —› Помогите создать установщик на WinAPI.
Посл.ответ Сообщение

Ранг: 36.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 25 февраля 2007 10:13 · Поправил: sxd
· Личное сообщение · #1

Привет Всем! Вот бьюсь над установщиком для программки, знаю, что для этой цели существует много программ которые создают компактный мастер установки, но мне нужен свой. Вообщем хочу сделать, как я уже сказал, мастер-установки, с учётом, что кнопки назад нет, а есть только далее, которую во время установки надо нажать N-ое количество раз, например, 10, указывая ответы на вопросы мастера, типа путь..., где ярлыки и т.д
Скажите как организовать всё поминимому тобишь кнопку и окошко создать не проблема... хочу, чтоб программа была с наименьшим количеством кода, не надо объявлять 10 HWND для окон и ещё 10 для кнопок. И в обработчик кнопки "Далее":

case BN_CLICKED:
if (hwndNext == (HWND)lParam)

//может нужно объявить массив хенделов окон
//в CreateWindow подставлять i-ый элемент массива
//и вызвать SendMessage (хендел предыдущего окна -> i-1, WM_CLOSE или WM_DESTROY,0,0);
break;


какое сообщение использовать для закрытия предыдущего окна WM_CLOSE или WM_DESTROY или другое какое-нибудь? Можно ли убить предыдущее окно и создать новое, SW_HIDE и SW_SHOW не хочу использовать, желательно чтоб в текущий момент у программы было открыто лишь одно окно принимая во внимание и видимые и невидимые окна.



Ранг: 73.1 (постоянный), 130thx
Активность: 0.040.23
Статус: Участник

Создано: 25 февраля 2007 10:39
· Личное сообщение · #2

Лучше не CreateWindowEx, а наделай диалогов, и в обработчике кнопки "Далее" прячь текущий и вызывай следующий.



Ранг: 21.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 25 февраля 2007 10:52
· Личное сообщение · #3

Рекомендую инсталлятор Nullsoft, полностью настраиваемый (скриптуется своим языком, легок в освоении). Сам я его не использовал, но один мой очень хороший знакомый им постоянно пользуется, я ему верю (:
Это если надо уже готовый программный продукт устанавливать, а если чисто для себя, так сказать поучиться, то не останавливаю, просто предлагаю готовое решение (;



Ранг: 73.1 (постоянный), 130thx
Активность: 0.040.23
Статус: Участник

Создано: 25 февраля 2007 11:56
· Личное сообщение · #4

Согласен с KpeHDeJIb, NSIS от NULLSOFT тебе в руки! Постоянно им пользуюсь. Другого не надо.
Маленький SFX модуль, удобный скриптовый язык, осваиваемый за 1-2 дня, гибкие настройки всего, что настраивается.



Ранг: 63.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 25 февраля 2007 12:01
· Личное сообщение · #5

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



Ранг: 73.1 (постоянный), 130thx
Активность: 0.040.23
Статус: Участник

Создано: 25 февраля 2007 12:06
· Личное сообщение · #6

sxd, если уж хочется создать свой, посмотри на wasm.ru, там в исходниках я где-то видел самодельный инсталлятор install_machine от ALx.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 25 февраля 2007 12:26
· Личное сообщение · #7

инсталеры поляков посмотри, и красиво и функционально

-----
Тут не могла быть ваша реклама




Ранг: 36.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 25 февраля 2007 13:14
· Личное сообщение · #8

Привет Всем! Спасибо что откликнулись на мою просьбу... Да в своей первой версии использовал DialogBox и EndDialog, но теперь не хочу использовать диалоговые окна. То есть предлагает создать родительское окно, а с дочерними производить манипуляции типа:

case BN_CLICKED:
if (hwndNext == (HWND)lParam)

CreateWindow ////??????????????????????????????//

SendMessage (hwnd, WM_CLOSE, 0, 0);
break;

Вот не понятно как оптимизированно сделать с CreateWindow, запутаюсь в Хенделах! Помогите плиз...



Ранг: 73.1 (постоянный), 130thx
Активность: 0.040.23
Статус: Участник

Создано: 25 февраля 2007 14:07
· Личное сообщение · #9

>>Вот не понятно как оптимизированно сделать с CreateWindow, запутаюсь в Хенделах!
Может создать список (двусвязный, если с "Back" нужно)?



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 26 февраля 2007 03:41
· Личное сообщение · #10

А при чем тут список, неужели способ с CreateWindow (пусть даже запутанный!) не подойдет? Ведь "особо оптимизировать" тут нет же необходимости. На себя сжатие-то упаковщик возьмет, я так понимаю... Пиши в первую очередь понятно и не в чем себе не отказывай. Или если ты хочешь написать просто очень маленький код - то асм тебе в руки.
RamMerlabs пишет:
NSIS от NULLSOFT

Человек же просил - никаких инсталлеров, все сам собрался писать.
lord_Phoenix пишет:
инсталеры поляков посмотри

А сорсы не подскажешь где отрыть ?
sxd пишет:
запутаюсь в Хенделах

Используй массивы и "однообразность" кода: напиши первые только 3-4 окна, а потом все как по маслу пойдет.

-----
все багрепорты - в личные сообщения




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 26 февраля 2007 03:59
· Личное сообщение · #11

Вот еще линк на шпрот... когда-то давно писал ...
http://exelab.ru/f/files/a004_02.09.2006_CRACKLAB.rU.tgz
могу выложить сорсы, если интересна реализация взаимодействия WinAPI - все писал на асме без использования ресурсов (чистое WinAPI)

-----
все багрепорты - в личные сообщения





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 26 февраля 2007 07:26 · Поправил: FrenFolio
· Личное сообщение · #12

HandMill пишет:
А сорсы не подскажешь где отрыть ?


Типа здесь
--> Link <-- http://smola.prv.pl
В разделе win32asm
, там же найдешь много других интересных сырцов на асме.


HandMill пишет:
могу выложить сорсы, если интересна реализация взаимодействия WinAPI - все писал на асме без использования ресурсов (чистое WinAPI)


Да, слушай, выложи пожалуйста, проты с сырцами не дороге на валяются, да и кроме меня многим интересно было бы.

-----
Программист SkyNet




Ранг: 36.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 26 февраля 2007 08:51
· Личное сообщение · #13

Ребята привет! Знаете один мой знакомый (с которым сейчас временно нет связи) писал какую-то прогу для работы с матрицами, при запуске вылетало маленькое окно с кнопкой и EditBox куда вводился её ранг (тобишь сколько на сколько, 9 на 9, или 3 на 3), а затем выводилась серия таких же окошек (друг за другом) в зависимости от того каков её ранг (тобишь если ранг 3 на 3, то окон для её значений было 3*3=9), таким образом написав "свою" функцию один раз использует её несколько раз, но он мне говорил что там есть типа хитрость: мол при нажатии на кнопку значение считывается окно закрывается (не помню может выходит из цикла обработки сообщений), а затем вновь как-то вновь вызывается его функция, обработчик сообщений тоже в процессе работы. Примерно так точно не помню, потому что тогда было не надо и я не вникал особо, но принцип работы описал вроде достаточно понятно. Вот если мне для диалога написать свою функцию (создания окна, кнопок и т.д.), а потом просто вызывать подобным образом.



Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 26 февраля 2007 13:08
· Личное сообщение · #14

sxd, FrenFolio, надеюсь вам и всем желающим эти сорсы пойдут на пользу ... Старался как мог документировать .... но мой соавтор пожелал что бы всё было в одном-едином файлике ... вот то что из этого вышло ... писать дальше сил уже не было (смотрите на дату выхода последнего обновления).
Забирайте на здоровье:
hxxp://handmill.jino-net.ru/SHProt_update 30.07.06.rar

-----
все багрепорты - в личные сообщения





Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 26 февраля 2007 15:22
· Личное сообщение · #15

x




Ранг: 114.4 (ветеран), 21thx
Активность: 0.040.01
Статус: Участник

Создано: 27 февраля 2007 07:28
· Личное сообщение · #16

Вот еще исходники пары интересных установщиков на WinApi (заточены под Delphi) от Lenin.

770e_27.02.2007_CRACKLAB.rU.tgz - inst_winapi.rar



Ранг: 36.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 27 февраля 2007 08:58
· Личное сообщение · #17

HandMill, Larry огромное спасибо буду изучать... Очень благодарен за Вашу помощь. Спасибо!


 eXeL@B —› Программирование —› Помогите создать установщик на WinAPI.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати