[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
Иногда требуется собрать какое то количество программ в оболочку, для удобного запуска.
Программ AutoPlay, имеется множество, но если по каким то критериям, они не устраивают, можно написать свою.
В данной теме, покажу (напишу и выложу исходник) как создать оболочку в PureBasic (если у пользователей появится интерес к данной теме)
Как то давно, пытался понять, принципы написания программ на PureBasic...
Но язык не в какую не поддавался осмыслению.
Хотелось написать лаунчер, нарисовал окно в редакторе форм и... завис...
Долго думал, как навесить события на нажатие клавиш, как подправить дизайн созданного окна,
так как в редакторе форм, нет возможности изменять все свойства элементов...
Но так и не справился...
Теперь чуть накопил знаний, могу научить и вас.
В чем же преимущество данного Лаунчера:
Малый размер файла
Можно создать как х86 так и х64
Можно добавить любой функционал, ограниченный лишь вашими знаниями языка.
Познакомитесь с PureBasic и возможно возьмете его на вооружение.
Минусы:
Сам язык платный, но не дорогой... (в интернете можно найти, полные, свежие версии)
Рисовать интерфейс лучше вручную, указывая позицию и размер элементов
Ну или в редакторе форм, набросать интерфейс, а потом перенести код, в основной...
Набросал тестовый проект, прошу протестировать правильное отображение кнопок (сверить с картинкой)

(в PureBasic изначально нет функции показа картинки с текстом на кнопке, поэтому сделана отдельная процедура на API)
Attachments


Last edited by Joker-2013 on 2019-03-03 16:32; edited 2 times in total

[Quote]

    vampir225
  • 16411
  • Longevity: 1 year 10 months
  • Posts: 15
  • REPUTATION:0

    [+] [-]
Joker-2013, как раз то что я делаю через AMS (оболочку для запуска программ). Буду внимательно следить за темой ))

[Quote]

    4uk4a
  • 14149
  • Longevity: 2 years 9 months
  • Posts: 101
  • REPUTATION:17

    [+] [-]
  • Location: Transcarpathia
Всем доброго здоровья!
53047мне нужны результаты тестов.
Если изображение на кнопках будет, то значит всё хорошо...
У меня имеется код попроще, но в ХР иконки не отображаются, тут вроде должны....

Картинка на ХР и на 7х32

[Quote]

    Nestor2015
  • 17157
  • Longevity: 1 year 5 months
  • Posts: 64
  • REPUTATION:7

    [+] [-]
доброго вечера всем
вин хр х32, 10 х32 и 10х64
в РЕ 8 тоже работает:
ag

[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
Обновил тестовый проект, добавил исходник, подчистил тему.
Нужно понять, как лучше создать, что бы новичку было проще править и желательно в редакторе форм...
Ручками, то оно надежнее, но муторно.

[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
AZJIO, смена иконки у запущенного\запускаемого файла:
SendMessage_(WindowID(0),#WM_SETICON,0,ExtractIcon_(0,"Shell32.dll",23))
If PathFileExists_(GetExePath()+"icon.ico")
    LoadImage(0, GetExePath()+"icon.ico")
    If IsImage(0)
      SendMessage_ (WindowID(0, #WM_SETICON, 0, ImageID(0))
    EndIf
  EndIf
Извлечение иконок из файла:
OpenWindow(0,0,0,320,240,"Window",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
ListIconGadget(1,10,10,300,220,"Icon #",280)
  count.l = ExtractIconEx_("C:\WINDOWS\explorer.exe",-1,0,0,0)
  For i = 0 To count - 1
   hIcon.l = 0
   ExtractIconEx_("C:\WINDOWS\explorer.exe",i,0,@hIcon,1)
   AddGadgetItem(1,-1,"Icon #" + Str(i),hIcon)
  Next
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow


Last edited by Joker-2013 on 2019-03-02 22:10; edited 1 time in total

[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
В вообще, по поводу Лаунчера с ini...
Если есть время, то можно сделать приложение, без ручной конфигурации файла ini
Видел код, когда объекты можно двигать по окну.
В итоге, делаем небольшой конструктор, в котором можно создавать объекты, например кнопки,
размещать их в окне приложения, растягивать окно итд итп...
Или как делфи7 отдельное окно с объектами и рабочее окно...
Но нужно много сил и времени.

[Quote]

    AZJIO
  • 17953
  • Longevity: 1 year 1 month
  • Posts: 166
  • REPUTATION:40

    [+] [-]
Joker-2013
Но нужно много сил и времени.
вот это наверно определяющее, и ещё желание. Я уже делал прогу для создания гуи где можно перемещать элементы и делать доводку до пикселей стрелками, но это в лаунчере лишнее. Я наоборот делал чтобы кнопки сами размещались автоматически. Вариант на AutoIt3 протестирован, можно указать область размещения кнопок, указать число колонок, отступы между кнопками и они сами подстроятся под размеры.
Но я пробовал лаунчеры с пропиской координат кнопок, не знаю насколько это удобно, каждому своё, но там проблема допустим втиснуть кнопку, надо все переписывать.
LauncherPB - добавил Выход, сворачивание и область в ini

[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
AZJIO, Вот ещё волшебная команда для управления только клавиатурой (Tab Enter)
;Навешиваем на окно:
AddKeyboardShortcut(0, #PB_Shortcut_Return, #Menu_Enter)
;А в действиях: (#Menu_Enter)
PostEvent(#PB_Event_Gadget, GetActiveWindow(), GetGadgetEnter, #PB_EventType_LeftClick)
По Enter выполняется действие как по ЛКМ и не надо дописывать дополнительные события...
Могу рабочий вариант накропать, если надо...

[Quote]

    AZJIO
  • 17953
  • Longevity: 1 year 1 month
  • Posts: 166
  • REPUTATION:40

    [+] [-]
Добавил поддержку иконок. Но в варианте AutoIt3 была функция _WinAPI_PathFindOnPath, то есть найти dll для иконок, я сделал проще, так как скорее всего для иконок и картинок лучше использовать соседнюю папку, то если относительный путь не содержит "\", то ищем в System32. Также остался баг с вычислением колонок, при нечётном, когда не помещаются идеально квадратом, то есть в одной колонке 3 кнопки в другой 2, то не как ожидалось. Скорее всего это связано с тем что в PureBasic интегрер всегда округляется то целого, в AutoIt3 вычисляется в с плавающей точкой, при этом в PureBasic это решается добавлением десятичного к числу, например d*1.0, тогде вычисления будут в типе с плавающей точкой, а округлятся итоговый, но пока не разгадал где нестыковка, надо осмысливать, а я просто конвертировал код.

[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
AZJIO, Круто! ag

[Quote]

    MBTY
  • 1499
  • Longevity: 3 years 7 months
  • Posts: 66
  • REPUTATION:5

    [+] [-]
Насчет запускатора с INI - написан давно.
Называется "Menu 4.2.2.56" функционал гибкий, осваивается быстро, работает уже у меня лет 15.
Автораны для пиратских игровых CD только на нем и писались. Всё время в сети распространяется с примером и хелпами от автора.
P.S. Блин, я такой старый, что вижу снова и снова на форумах одно и то же. Прогеры пишут то, шо давно написано, потом про их труды забывают и новые прогеры пишут то же самое по новой...

[Quote]

    dialmak
  • 2607
  • Longevity: 3 years 2 months
  • Posts: 1065
  • REPUTATION:40

    [+] [-]
да есть уже ланчер давно универсальный, скрин, называется TBLauncher, есть x86 и x64
можно запускать что угодно, настраивается в INI
единственная загвоздка - не работает на XP, только на 7 и выше, ну и re\pe соответствующем
может и на виста, не проверял..
как пример используется в TBPortable

[Quote]

    Joker-2013
  • 1039
  • Longevity: 3 years 10 months
  • Posts: 2660
  • REPUTATION:127

    [+] [-]
  • Location: из прошлого
62999TBLauncher
Да топорный он какой то...
Как то хотел применить в одном проекте, посмотрел и забил...

[Quote]

    dialmak
  • 2607
  • Longevity: 3 years 2 months
  • Posts: 1065
  • REPUTATION:40

    [+] [-]
Да топорный он какой то...
Да, простой, топорый, чем и хорош
запускает что угодно, умеет импортировать иконки
имхо зе бест, но не автор, поэтому...
конечно, если нужен комбайн - не подойдет ;)
сами пилите на автоит, пурике и т.д.
удачи...

Page 1 of 2


Display posts:    

Current time is: 24-Apr 01:09

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum