[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

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


Last edited by AZJIO on 2020-07-19 23:55; edited 41 times in total

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
KisPavVlad, проверил на втором компе, у меня же тоже есть картридер-флешка с одним логическим входом, но 2-мя физическими под разные размеры. В моём компе он не даёт ошибку, а в другом компе на WinXP даёт, перенёс утилиту туда, ошибка не вылетает с новой версией, а при использовании позже предыдущей версии с MBR ошибка снова вылетает. То есть теоретически работает как надо.
В модуле работы с реестром есть такая вещь
WOW64 = #False,      ; If #TRUE, uses the 'Wow6432Node' path for Key
...
Procedure.i DeleteKey(topKey, KeyName.s, WOW64 = #False, *Ret.RegValue = 0)
  Protected error, samDesired = #KEY_WRITE
  If WOW64
    CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
      samDesired | #KEY_WOW64_64KEY
    CompilerElse
      samDesired | #KEY_WOW64_32KEY
    CompilerEndIf
  EndIf
Но так как она отключена по умолчанию, то я не стал экспериментировать с добавлением флага, так как по умолчанию должно работать.

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
Нет

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
KisPavVlad, обновил временную версию, но для теста. Вместо Long сделал Integrer, по причине что в других вариантах кода видел именно Integrer, хоть и не понял почему. Но провёл тест зависимости от ширины, происходит ли конвертирование числа в нужную ширину, и оказалось что тип ".b" (число от -127 до + 127 приводит к проблеме), значит число не конвертируется в нужную ширину и зависит от типа. Ну собственно последнее предположение, которое может помочь.
Может всё-таки проставить вариант 0-2-0 и так оставить?
теоретически если в реестре 0, то работает по схеме 0-2-0.
И ещё, наверно всё таки я всё равно буду выкладывать две версии с админом и без. Проблема, например на работе комп с паролем на админа, и фактически я не могу использовать прогу из под админа, хотя без админа основной функционал сохраняется, единственное в колонке MBR будет "---" для всех дисков, и не будет отключение ошибок для картридеров.

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
79233Только придать бы ей название.
Сразу давай предложение, при условии, чтобы колонка не расширилась, то есть 3 буквы доступны для названия. У меня версий нет, иначе это было бы отражено.

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
KisPavVlad, попробуй тест.
1. проверь, что ошибка вылетает для старых версий x86 и x64, потом запусти новую x86 и проверь на старых пропала ли ошибка, потом запусти новую x64 и проверь на старых пропала ли ошибка.
2. Как я понимаю ты версией от avalat восстанавливаешь как было... Но не важно восстанови как было, сделай снимок реестра прогой regshot, далее запусти новую x86 или x64, чтобы возникла проблема, далее сделай второй снимок в regshot и сравни снимки. Будет понятно что меняется у тебя в реестре после использования ChkDskGui. Или проверь упрощённо, просто экспортируй ErrorMode в reg-файл, до и после. У меня получаются одинаковые reg-файлы, поэтому я не понимаю, что ты от меня хочешь.
Кстати, будет поправка, MBR/GPT оказывается не требует админа, если флаг 0 (вместо GENERIC_READ), что обозначает запрос параметров диска без обращения к диску, то есть запрос атрибутов. Я хотел скрыть колонку указав ширину 0 если запуск без админа, но благодаря тому что у меня не появились фирм.имена физ.дисков выявил что раньше то работало, а разница только во флаге GENERIC_READ, думая что это правильно вместо явных чисел, а оказалось в справке указано что надо 0.

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
KisPavVlad,
но перезапуск самой службы не возвращает как было. Восстановление системы теперь уже не сделаешь. Вот не знаю что теперь делать.
То есть вы уже не тестируете, а просто описываете, что не работает и мол впиндюрь строку от avalat, я всё равно буду писать, что не работает пока не будет вариант от avalat?
Чтобы запустить службу нужно выполнить services.msc. Найти название службы, в контекстном меню выбрать "Запустить". Твик мог помешать только процессу использующему этот твик, при чём перезапуск Windows перезапустит службу, потому что запуск определяется иными параметрами и падение не отключает службу, а лишь убивает процесс.
Обновил основную версию, 4.2

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
79269после всё работает как и работало, а в вашем такая фишка.
Ну у тебя же не восстанавливается, сам говорил, то есть ты уже не можешь это проверить. Нужен новый непорочный компьютер. На LiveCD можно проверить.
Я почитал про ErrorMode этот флаг используется в очень многих вариантах ошибок, то есть фактически переводит его в 2 не рекомендуется кроме случая если мессага сильно мешает. Хотел найти какой процесс использует этот твик, но похоже любая прога которая делает возврат ошибок системой использует этот твик как условие разрешения на вывод ошибки.
неувязочка с билдом
перезалил
Разметка -> Р-а? а кто догадается что означает Р-а? Само название MBR говорит само за себя. Так что пусть остаётся как есть.

[Quote]

    rekshd
  • 19892
  • Longevity: 3 years 7 months
  • Posts: 238
  • REPUTATION:5

    [+] [-]
Любая x64 версия ChkDskGui из свежего архива не хочет поверять NTFS
Пишет следующее:
Тип файловой системы NTFS
CHKDSK недопустим для дисков NTFS

Проверял на Win7x64 из под обычного пользователя, админа и ТИ
Версии же x86 работют идеально.
Вот я и чешу свою репу ... Как такое может быть ?
Если нужно, то скрины приложу

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
rekshd, проблема случайно не эта? Скачал с шапки, запустил x64, проверил загрузочный NTFS диск S:\ размером 500Мб с занятым пространством 100Мб, мгновенно отработал. Там по сути работает родной CHKDSK, прога просто формирует ключи, делает удобный выбор, а работает CHKDSK находящийся в ОС. Там есть опция копирования ком-строки, чтобы выполнить через Win+R, то есть прога не может ни запретить CHKDSK работать, ни помешать ему как то.
MD5 ChkDskGui_x64.exe: AB42692603C1933A5CBB25B4ABD9AA63
Проверка с помощью 7zip
Имя: ChkDskGui_x64.exe
Размер: 162816 байтов (159 KiB)
CRC32: 5C2B824E
CRC64: D410AF2DDDD1859A
SHA256: EDDA49CC3EAA5893ABBD40AA349A1CB02867E834D983D9EBB6938879F4A75E2B
SHA1: A1C55336FE2A28E8A54620900B5B61618EDB433D
BLAKE2sp: 0B7644DC91BCCEC7907743ADFA44D997DD426287505DC39C810BAF357278F49E

[Quote]

    rekshd
  • 19892
  • Longevity: 3 years 7 months
  • Posts: 238
  • REPUTATION:5

    [+] [-]
AZJIO
Поэкспериментировал с батником ChkDsk.cmd , который в архиве. Экспериментировал на установленной Win7x64SP1ru. Из под админской учёки
Так вот - если ChkDsk.cmd запускать из под проводника, то в окне после указания любого диска выводится "Тип файловой системы NTFS. CHKDSK недопустим для дисков NTFS"
(а у меня все диски NTFS) aq
Через некоторое время ...
Вообщем причина косяка был в моем шестьдесятчетырёхбитном chkdsk.exe.
x86 версия chkdsk.exe у меня работает безупречно.

[Quote]

    AZJIO
  • 17953
  • Longevity: 4 years 5 months
  • Posts: 1054
  • REPUTATION:127

    [+] [-]
Не так давно нашёл в чужом коде
SetErrorMode_(#SEM_FAILCRITICALERRORS)
не выдавать критических сообщений в случае ошибки при работе с дисками. Мне показалось что это правильный способ исключить 4 сообщения картридера что отсутствует диск при запуске ChkDskGui. Мне попался комп который выдал эти сообщения и я понял что встроенная защит от этого не работает. Когда я обнаружил выше указанный код, то не стал ничего делать так как тестировать не на чем. А сейчас опять попался комп с этими сообщениями. В общем надо будет пробовать и таскать с собой две версии чтобы проверить, что в одной проблема есть, а в другой нет.

Page 34 of 34


Display posts:    

Current time is: 20-Aug 05:20

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