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

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

    [+] [-]
ChkDskGui (PureBasic) Исходник + EXE, v4.2 (x86, x64)Скачать yadi.sk upload.eeвременная версия


Последний раз редактировалось: AZJIO (2023-01-25 16:21), всего редактировалось 43 раз(а)

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

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

    [+] [-]
Перезалил, заменил строку вызова окна "Выполнить", так как в LiveCD заголовок был другой почему-то, теперь работает в LiveCD, проверил.
; RunProgram("RUNDLL32", "SHELL32.DLL,#61", "")
SendMessage_(FindWindow_("Shell_TrayWnd",""),#WM_COMMAND,$191,0)

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

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

    [+] [-]
  • Откуда: из прошлого
AZJIO, Привет! Я как то тестировал без Explorer пешку и у меня не вызывалось окно Выполнить, хотя оно было...
Смущает это Shell_TrayWnd, то есть нет трея, нет запуска?

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

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

    [+] [-]
Joker-2013, теоретически можно проверить результат FindWindow_, если вернёт 0, то использовать RUNDLL32, но по причине, что вызывается какой то аналог окна с другим заголовком, то последующая вставка не срабатывает, и соответственно результат опять нулевой. Главное в буфере есть, остаётся вызвать Win+R и Ctrl+V. Хотя если оболочка другая будет ли работать Win+R.

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

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

    [+] [-]
  • Откуда: из прошлого
63082то последующая вставка не срабатывает, и соответственно результат опять нулевой
можно поподробнее?
Я проверил у себя, вроде всё ок.
Окно чуть другое, но работает же...

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

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

    [+] [-]
Joker-2013, да но вставлять руками. Ладно я сделаю как говорил. У меня ещё две хотелки, сделать кнопку меню такой же как » (кавычка) на панели инструментов, когда кнопки не умещаются. И попробовать если не используется ini-файл, то размер окна вычислять из количества найденных дисков умноженное на высоту пунктов ну и плюс остальные размеры полей и заголовков.
(цветы подарил и опять за комп...)

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

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

    [+] [-]
  • Откуда: из прошлого
да но вставлять руками.
Что вставлять текст? Ничего я не вставлял, оно там было...
И попробовать если не используется ini-файл, то размер окна вычислять из количества найденных дисков умноженное на высоту пунктов ну и плюс остальные размеры полей и заголовков.
А я для себя уже понял, что математик из меня никакой... И забил на всяческие расчеты.
(цветы подарил и опять за комп...)
А у меня котлетки женским полом готовятся...

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

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

    [+] [-]
Обновил по выше перечисленным:
1. при сбое FindWindow_ используем RUNDLL32
2. Вычисление высоты окна от количества дисков (при отстутствии ini)
3. Сменил вид кнопки (На урезанной LiveCD-WinXP стрелка может отображаться квадратом)
4. Исправил экспорт ком-строки в окно "Выполнить", я забыл туда вставить самое главное cmd.exe, то есть фактически строка была нерабочей (в буфере обмена правильная была).

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

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
ay
Пользую часто через Winpe aa

_________________
Подпись отключена за нарушение правил форума

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

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

    [+] [-]
Обновил.
Теперь список дисков обновляется при вставке/извлечении флешки. То есть не надо перезапускать прогу если забыл вставить флешку.
Обновил ещё раз, изменив алгоритм обновления при вставке/извлечении флешки. Если раньше очищался список и снова искались все диски, то теперь функция добавляет к списку подключенный диск или удаляет из списка отключенный диск по букве.
Обновил ещё раз. Теперь если нет справки, то пункт называется "Скачать справку", а клик открывает ссылку закачки, то есть открывается браузер на страницу закачки. Также пункт "Создать ini" при его наличии переспросит нужно ли заменить существующий.
Обновил.
Добавил ком-строку. Теперь можно в реестр добавить данные этого reg-файла:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Drive\shell\ChkDskGui]
@="ChkDskGui"
"Icon"="\"C:\\папка\\ChkDskGui.exe\""
[HKEY_CLASSES_ROOT\Drive\shell\ChkDskGui\command]
@="\"C:\\папка\\ChkDskGui.exe\" \"%1\""
Теперь если выбрать в контекстном меню, то при запуске будет выбран этот диск.
Добавил выше сказанное пунктом в меню "Добавить себя в меню дисков"


Последний раз редактировалось: AZJIO (2019-03-17 08:44), всего редактировалось 1 раз

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

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

    [+] [-]
ChkDskGui_временно.7z
Поступила просьба показать окно сразу и наблюдать как добавляются диски, если они раскручиваются, а не ждать пока все раскрутятся и в этот момент чувствовать неопределённость, вроде как запущена прога а фейса нет. Я не нашёл функцию показать фейс, поэтому сделал флаг в основном цикле, если он 17 раз прокрутился, то появляется фейс и в этот момент добавление дисков.
Кстати проверил на своём USB-диске, подождав когда он остановится, прога всегда запускается с ним, то есть как будто не ждёт раскручивания, а если я открываю для просмотра файлов, то он выполняет с задержкой, как будто раскручивается.

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

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

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

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

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

    [+] [-]
Joker-2013, всё ясно, у меня же диски сканируются вообще до создания гуи.
Максимизация сохраняется у меня.

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

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

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

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

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

    [+] [-]
Joker-2013, Качай опять временный, проверь исходник там, сделал вторым потоком.
Пока надежда что GetLogicalDrives_() не обращается к дискам, так как содержит существующие флаги и покажет сразу предварительное количество дисков и растягивать окно не придётся за каждым диском.
Если всё получится я оптимизирую под текущий вариант.

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

    zdoba
  • 138
  • Стаж: 9 лет 3 месяца
  • Сообщений: 357
  • Репутация:22

    [+] [-]
  • Откуда: Россия
Всем добрый день. aa
Решил немного потестировать программу (которая временная).У меня Windows 8.1x64. Все действия от администратора.

Результат

Запуск программы.

Подключил внешний HDD на 2 ТБ.Определился только один раздел.

Отключил внешний диск. Раздел остался.

Закрыл программу. Подключил внешний диск, подождал сообщения в трее, что диск подключен, запустил программу.
Окно программы "разъехалось".


Через раз "вылетает".

Может из-за того, что тестовая версия?

Страница 17 из 34


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

Текущее время: 28-Мар 13:59

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


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