[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года
  • Сообщений: 831
  • Репутация:38

    [+] [-]
EasyBOOTICE v1.2 & v1.4
Очень удобная программа для редактирования файлов BCD, GRLDR, Menu.lst.
Программа очень проста, просто перетащите файл в нужное окно программы.
Откроется окно BootIce для редактирования файла.
Окно утилиты сохраняет свою позицию в файл конфигурации.
В файле конфигурации можно "включить" режим: "Поверх всех окон"
Кино:

Дополнительная информация

У утилиты версии 1.2 есть неприятная особенность.
Если включен UAC, то при запуске BootIce, постоянно просит права Администратора (они ему требуются)
Если запустить утилиту от имени Администратора, не работает перетаскивание в окно.
Это не решаемая на данный момент задача. связана с языком программирования.
Можно переписать функцию в WinAPI, но у меня нет таких знаний и возможностей.

В версии 1.4 данный недостаток устранён.
Новая версия 1.4 Fix4
Добавлена х64
При двойном клике на кнопки, открывается соответствующее окно BootICE
Решена проблема с перетаскиванием, при включенном UAC и запуском от имени Администратора
Благодарю nikzzzz за помощь!
Файл подписан самопальным сертификатом, что бы UAC писал корректные данные, установите Sert.cer в систему (не обязательно)
Вложение

v1.4 Fix4

Вложение

v1.2



Последний раз редактировалось: puhpol (2017-01-27 18:45), всего редактировалось 1 раз

[Цитировать]

    Metamorf
  • 462
  • Стаж: 3 года 8 месяцев
  • Сообщений: 91
  • Репутация:0

    [+] [-]
  • Откуда: Барнаул
Какие изменения в версии 1.1?

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года
  • Сообщений: 831
  • Репутация:38

    [+] [-]
Metamorf, Приветствую!
Обновлено до версии 1.1
Программа теперь корректно работает,
если есть пробелы в пути к файлу.

[Цитировать]

    KaSpieC 666
  • 260
  • Стаж: 3 года 9 месяцев
  • Сообщений: 703
  • Репутация:116

    [+] [-]
  • Откуда: Одесса
Доброго всем времени суток!
Заметил при каких условиях, "сбивается" расположение окна программы (не видно на экране), и приходиться удалять .ini, чтобы окно сново было видно.
Так вот - если программа свернута, и была закрыта через контекстное меню (ПКМ), то при следующем запуске, окна не будет видно.
А если закрывать через "крестик" в программе, то настройки расположения окна, при следуюшем запуске, не сбиваются.
P.S. может кому будет полезно/интересно.

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 3 года 4 месяца
  • Сообщений: 2427
  • Репутация:127

    [+] [-]
  • Откуда: Админ от сюда
Утилита обновлена!
Окно программы не уходит за границы экрана.
В файле конфигурации можно "включить" режим: "Поверх всех окон"

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 3 года 4 месяца
  • Сообщений: 2427
  • Репутация:127

    [+] [-]
  • Откуда: Админ от сюда
nikzzzz, AZJIO,
сорри что вмешиваюсь, но попробуйте вместо
RunWait('"BootIce.exe"'
использовать
ShellExecuteWait('"BootIce.exe"'
работает и без админских прав, и drag&drop в порядке
Ну, не знаю... У меня всё равно требует права Администратора...
ShellExecute_(0, "Open", GetExePath()+"BootIce.exe", "/edit_bcd /easymode /file="+Chr(34)+File+Chr(34), "", #SW_SHOWNORMAL)
Попробуйте сами... Исходник в комплекте.
Портативный пьюрик можно скачать тут


Последний раз редактировалось: Joker-2013 (2018-04-10 12:24), всего редактировалось 2 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 3 года 9 месяцев
  • Сообщений: 2250
  • Репутация:127

    [+] [-]
Joker-2013,
52660У меня всё равно требует права Администратора..
Может надо в манифесте прописать
level="asInvoker"

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 3 года 4 месяца
  • Сообщений: 2427
  • Репутация:127

    [+] [-]
  • Откуда: Админ от сюда
nikzzzz, в манифесте чего? Бутайса или моей утили?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 3 года 9 месяцев
  • Сообщений: 2250
  • Репутация:127

    [+] [-]
Joker-2013,
В твоей.

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 3 года 4 месяца
  • Сообщений: 2427
  • Репутация:127

    [+] [-]
  • Откуда: Админ от сюда
nikzzzz,
Лучше помоги мне реализовать функцию перетаскивания, нормальную...
Тут стали обсуждать, но тема заглохла...
Если бы не было проблем с перетаскиванием, я бы написал еще несколько проектов на пьюрике...

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 3 года 9 месяцев
  • Сообщений: 2250
  • Репутация:127

    [+] [-]
Joker-2013,
Я как-то делал такую функцию на Autoit, когда возникли проблемы на Win8, вроде проблемы исчезли.
Сделал два аналога на пурике.

вариант с Callback, тот, что использовал на Autoit

Procedure WndProc(hwnd, uMsg, wParam, lParam)
OperationResult.i = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_DROPFILES
*DroppedFilesArea = wParam
NumberOfCharactersDropped.i = DragQueryFile_(*DroppedFilesArea , $FFFFFFFF, ReturnedFileName.s, 0)
For CharacterIndex.i = 0 To NumberOfCharactersDropped.i - 1
CharacterBuffer.s = Space(#MAX_PATH)
DragQueryFile_(*DroppedFilesArea , CharacterIndex.i, CharacterBuffer.s, #MAX_PATH)
GetCursorPos_(p.POINT)
PbGadgetId.i = GetDlgCtrlID_(WindowFromPoint_(p\x + p\y << 32))
AddGadgetItem(PbGadgetId.i, -1, CharacterBuffer.s)
Next
DragFinish_(*DroppedFilesArea)
EndSelect
ProcedureReturn OperationResult.i
EndProcedure
OpenWindow(0, 0, 0, 200, 200, "Drag & Drop", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(2, 10, 10, 180, 180)
DragAcceptFiles_(WindowID(0), 1)
SetWindowCallback(@WndProc())
Repeat
Select WaitWindowEvent ()
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1

вариант без Callback

OpenWindow(0, 0, 0, 200, 200, "Drag & Drop", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(2, 10, 10, 180, 180)
DragAcceptFiles_(WindowID(0), 1)
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_DROPFILES
*DroppedFilesArea = EventwParam()
NumberOfCharactersDropped.i = DragQueryFile_(*DroppedFilesArea , $FFFFFFFF, ReturnedFileName.s, 0)
For CharacterIndex.i = 0 To NumberOfCharactersDropped.i - 1
CharacterBuffer.s = Space(#MAX_PATH)
DragQueryFile_(*DroppedFilesArea , CharacterIndex.i, CharacterBuffer.s, #MAX_PATH)
GetCursorPos_(p.POINT)
PbGadgetId.i = GetDlgCtrlID_(WindowFromPoint_(p\x + p\y << 32))
AddGadgetItem(PbGadgetId.i, -1, CharacterBuffer.s)
Next
DragFinish_(*DroppedFilesArea)
EndSelect
Until Event = #PB_Event_CloseWindow

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 3 года 4 месяца
  • Сообщений: 2427
  • Репутация:127

    [+] [-]
  • Откуда: Админ от сюда
nikzzzz, Второй вариант:

но что можно заметить, если не в объект тащить, а в окно, то кружочек не перечеркнутый...
В манифесте прописан запуск от имени Администратора, UAC - включен
Вариант первый:

Прогресс есть, но...
Похоже, ты где то не дожал....
То есть оба проекта работают сейчас одинаково.
Функция перетаскивания работает на окне, но заблокирована на гаджете...

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 3 года 9 месяцев
  • Сообщений: 2250
  • Репутация:127

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

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 3 года 4 месяца
  • Сообщений: 2427
  • Репутация:127

    [+] [-]
  • Откуда: Админ от сюда
52675протестируйте три тестовых скомпилированных скрипта.
Так они у тебя, без завышения прав манифестом.
Третий пример славливает, но не отображает в окне путь...

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 3 года 9 месяцев
  • Сообщений: 2250
  • Репутация:127

    [+] [-]
52674Функция перетаскивания работает на окне, но заблокирована на гаджете...
Попробуй этот вариант.
OpenWindow(0, 0, 0, 200, 200, "Drag & Drop", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(4, 10, 10, 180, 70,#PB_Editor_ReadOnly)
EditorGadget(5, 10, 100, 180, 70,#PB_Editor_ReadOnly)
DragAcceptFiles_(GadgetID(4), 1)
DragAcceptFiles_(GadgetID(5), 1)
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_DROPFILES
*DroppedFilesArea = EventwParam()
NumberOfCharactersDropped.i = DragQueryFile_(*DroppedFilesArea , $FFFFFFFF, ReturnedFileName.s, 0)
For CharacterIndex.i = 0 To NumberOfCharactersDropped.i - 1
CharacterBuffer.s = Space(#MAX_PATH)
DragQueryFile_(*DroppedFilesArea , CharacterIndex.i, CharacterBuffer.s, #MAX_PATH)
GetCursorPos_(p.POINT)
PbGadgetId.i = GetDlgCtrlID_(WindowFromPoint_(p\x + p\y << 32))
AddGadgetItem(PbGadgetId.i, -1, CharacterBuffer.s)
Next
DragFinish_(*DroppedFilesArea)
EndSelect
Until Event = #PB_Event_CloseWindow

Страница 1 из 6


Показать сообщения:    

Текущее время: 19-Ноя 06:34

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы