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

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

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

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

v1.4 Fix4



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

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
nikzzzz, Давай всё таки этот кусок запилим, раз уж рекомендуют...
user32_dll = OpenLibrary(#PB_Any, "user32.dll")
  If GetFunction(user32_dll, "ChangeWindowMessageFilterEx")
    Debug "New"
    CallFunction(user32_dll, "ChangeWindowMessageFilterEx", hwid, #WM_DROPFILES, #MSGFLT_ADD, 0)
    CallFunction(user32_dll, "ChangeWindowMessageFilterEx", hwid, #WM_COPYDATA, #MSGFLT_ADD, 0)
    CallFunction(user32_dll, "ChangeWindowMessageFilterEx", hwid, $0049, #MSGFLT_ADD, 0)
  ElseIf GetFunction(user32_dll, "ChangeWindowMessageFilter")
    Debug "old"
    CallFunction(user32_dll, "ChangeWindowMessageFilter", #WM_DROPFILES, #MSGFLT_ADD)
    CallFunction(user32_dll, "ChangeWindowMessageFilter", #WM_COPYDATA, #MSGFLT_ADD)
    CallFunction(user32_dll, "ChangeWindowMessageFilter", $0049, #MSGFLT_ADD)
  EndIf
  CloseLibrary(user32_dll)
Нужно только указать Hwid объекта...
CallFunction(user32_dll, "ChangeWindowMessageFilterEx", hwid, #WM_DROPFILES, #MSGFLT_ADD, 0)
Как это сделать?

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

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Joker-2013,
ChangeWindowMessageFilterEx нужно прописывать для каждого гаджета, в отличии от ChangeWindowMessageFilter , которая прописывает все для всех.
Не вижу смысла.
52765
У меня почему то не работает не так:
CallFunction(user32_dll, "ChangeWindowMessageFilterEx", #WM_DROPFILES, #MSGFLT_ADD, #Null)
не так:
CallFunction(user32_dll, "ChangeWindowMessageFilterEx", #WM_COPYDATA, #MSGFLT_ADD, 0)
наверное hwid окна не указал...
CallFunction(user32_dll, "ChangeWindowMessageFilterEx",GadgetID(GadgetNumber) ,#WM_DROPFILES, #MSGFLT_ADD, #Null)

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
nikzzzz, Ну тогда, да...
То есть устаревший фильтр глобален, а новый на каждый объект...
Если работает и так, что заморачиваться...
Добавил DragAcceptAction
ay

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

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
ac Joker-2013,
52768То есть устаревший фильтр глобален
52762ChangeWindowMessageFilter может не поддерживаться в будущих версиях Windows.
Он не устаревший, просто в то время, когда это писалось, было предположение , что эту функцию могут удалить.
Лучшее — враг хорошего , microsoft никогда не следовала этому принципу. ac


Последний раз редактировалось: nikzzzz (2018-04-12 12:51), всего редактировалось 1 раз

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

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Поправил пост

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
Новая версия 1.4 FIX
Надеюсь что решена проблема с перетаскиванием, при включенном UAC и запуском от имени Администратора
Благодарю nikzzzz за помощь!
Прошу протестировать утилиту с включенным UAC Vista+ 10 Server и в XP
На предмет возможности перетаскивания в объекты программы.

Go тестировать!!! ag

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
1.4 Fix2
При двойном клике левой клавиши мыши, на кнопку, открывается соответствующее окно BootICE
Получается так, что первые две кнопки - редактирование системного BCD а последняя - типо текстового редактора.
Кстати в BootIce, не решена проблема с перетаскиванием...

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

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1325
  • Репутация:127

    [+] [-]
Joker-2013
1. При нажатии кнопок можно сделать диалог "Открыть".
2. Почему бы не сделать русификацию, хотя бы по принципу получения языка системы и если ru, то ...
3. Редактор показался слишком прост. Любой блокнот подойдет. Кстати у него не работает тащить-бросить файл. Если гаджет поддерживает подсветку, то можно было бы добавить кнопку "подсветить" и он уже бы выгодно отличался, регулярными выражениями можно анализировать код. Тот же RTF может это сделать. Ну и конечно штучки посложней, это добавить поиск, поиск/замена, вставка шаблонов.
4. Можно магнитить BootIce под кнопками, тогда не нужно бросать в сам BootIce, а на прогу.

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

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Обновил пост
Переписал DragAcceptAction.

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
AZJIO,
1. Да я не утиль развиваю, а эксперементирую просто...
Есть три кнопки, хочется же пользователям нажать.. Вот и пусть жмахают.
2. Так есть исходник, есть портативный пьюрик.
Пусть пользователи, чуть извилинами покрутят....
3. Так это же BootIce а про перетаскивание, я писал, оно не работает в нем....
4. Я не волшебник, я только учусь, да и лишнее это мероприятие...
В общем, спасибо за советы и участие в данной теме.
nikzzzz, aa ay az ba bb

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

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1325
  • Репутация:127

    [+] [-]
52795Так это же BootIce
кстати сейчас хотел вытащить PBR BootIce'ом с раздела, а он может вытащить только как бы с физического диска, возможно надо было активировать другой диск, чтобы снять PBR (не догадался попробовать), но удивило что заткнулся на такой мелочи, пришлось старой утилиткой ptdd35.exe вытаскивать, до сих пор не выкидываю. Хорошо бы придумать чем снимать МБР/PBR каким нибудь скриптом, ведь это элементарно, просто начало диска скинуть в файл, указав число секторов.

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

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
AZJIO, Так напиши утиль... Ты же спец в этом.

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

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1325
  • Репутация:127

    [+] [-]
Joker-2013
В линукс я делаю так
sudo dd if=/dev/sda3 of=/media/windows/ubn.bin bs=512 count=1
сразу на виндовый диск, иначе с правами плясать. Так как dd есть виндовый вариант, то можно попробовать погуглить. Ладно, я просто описал "Дано:", а решение либо я (не говори гоп), либо кто опередит.
Конечно, это больше мои хотелки для линукс, потому что только в нём ПБР на другом разделе (у меня) и uuid диска приходится вытаскивать с помощью "sudo blkid", приходится грузится с линуксового LiveCD, ну или делать сразу после инсталяции без перезагрузки, а не настроенный линукс там мучение.
ptdd35.exe (Partition Table Doctor)

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

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
AZJIO,
Так в чем проблема?
Пример на Autoit
#include <WinAPI.au3>
#include <WinAPIFiles.au3>
;Читаем MBR или PBR , 2048 байт для примера
Global $nBytes=2048, $iRead
;$sFile="\\?\h:" ; PBR
$sFile="\\.\PhysicalDrive0" ; MBR
$sFileResult='Result.bin'
$tBuffer = DllStructCreate("byte[" & $nBytes & "]")
$hFile = _WinAPI_CreateFile( $sFile, 2, 6,7)
_WinAPI_SetFilePointer($hFile, 0)
_WinAPI_ReadFile($hFile, $tBuffer, $nBytes, $iRead  )
_WinAPI_CloseHandle($hFile)
;Сохраняем в файл
$hF=FileOpen($sFileResult,16 +2 )
FileWrite($hF,DllStructGetData($tBuffer,1) )
FileClose($hF)
Аналогично можно и писать напрямую , например для восстановления MBR из копии.

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

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1325
  • Репутация:127

    [+] [-]
nikzzzz
вот ещё тема
и dd.exe нашёл
Как винду восстановлю, буду пробовать.

Страница 4 из 5


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

Текущее время: 21-Дек 17:30

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


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