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

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

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


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

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

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

    [+] [-]
AZJIO,
53862Как я ранее читал
Так я примерно это и имел ввиду, не использовать дефолтные установки компилятора.
Protected принудительно объявляет переменную как локальную, Define или вообще без объявления - по усмотрению компилятора.
А вообще, вставляйте первой строкой EnableExplicit , она быстро объяснит, в чем вы не правы. ag

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

    sergeysvirid
  • 104
  • Стаж: 9 лет 3 месяца
  • Сообщений: 2495
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
AZJIO,
Приветствую! aa
На PureBasic компилируется только 32-битная версия приложения?
64-битную никак не получится скомпилировать?

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

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

    [+] [-]
sergeysvirid,
Можно, есть и x64 компилятор.

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

    sergeysvirid
  • 104
  • Стаж: 9 лет 3 месяца
  • Сообщений: 2495
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
53874есть и x64 компилятор
Приветствую! aa
А где можно позаимствовать? ah ab
Вы как-то скидывали свой наборчик PureBasic511, но там только 32-битная версия компилятора bk

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

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

    [+] [-]
sergeysvirid,
Скину, ссылку дам в личке.

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

    sergeysvirid
  • 104
  • Стаж: 9 лет 3 месяца
  • Сообщений: 2495
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
53876ссылку дам в личке
О, благодарствую! fr az

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

    Orochi
  • 14100
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 218
  • Репутация:0

    [+] [-]
Скачал версию V2. На десятке x64 pro, берёт около 35 секунд что-бы появилась морда программы где показаны диски.

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

    Hulk7778
  • 171
  • Стаж: 9 лет 2 месяца
  • Сообщений: 96
  • Репутация:0

    [+] [-]
  • Откуда: Мурманск
53879Скачал версию V2. На десятке x64 pro, берёт около 35 секунд что-бы появилась морда программы где показаны диски.
На LTSB x64 V2 запускается менее секунды...

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

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

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

    [+] [-]
  • Откуда: Россия
AZJIO, Добрый день! А нельзя выложить ещё куда-то. У меня rgho.st видимо блокируется провайдером - ни с Windows, ни с Ubuntu ни один браузер не берёт.... ah

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

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

    [+] [-]
zdoba
ссылка
Orochi
Можно попробовать добавить тайминги чтобы выявить. Скорее всего доступ к дискам. Попробуй скачать старую версию без номеров дисков (найди сам) и попробуй вариант на AutoIt3.
nikzzzz
по поводу Define, она работает ТОЛЬКО на EnableExplicit (ответ). Ну и делает по умолчанию тип последующих переменных с необъявленным типом (как я понял).
ChkDskGui с таймингом (здесь источник решения)

результаты

0.010 - Получение букв дисков
0.652 - Получение информации о дисках
0.514 - Загрузка иконок
3.940 - Загрузка шрифта и списка дисков без элементов
3.308 - Заполнение списка дисков
23.455 - Установка ширины колонок списка дисков
3.444 - Чекбоксы и строка состояния
Обновил исходник на пастбине
nikzzzz
Нашёл такой пример, работает
WindowName.s="PureBasic"
handle=FindWindow_(0, WindowName)
If handle
  SetWindowText_(handle,"Пурик")
EndIf
тест на коде... нет реакций, разве что криво перемещает родительское
Delay(500)
WindowName.s="Check Disk " + info$
handle=FindWindow_(0, WindowName)
If handle
  MoveWindow_(handle, 5, 210+5, 800, 600, 0)
  MessageRequester("???", "сработало ли условие")
EndIf
MoveWindow_(hGUI, 5, 5, 480, 210, 0)
в PureAutoIt.pbi как то сложно.

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

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

    [+] [-]
Есть ещё идея, добавить импорт данных в реестр для провоцирования проверки диска во время загрузки рабочей винды. Причина, когда под рукой нет LiveCD, а загрузка системы произведена с пункта "Загрузка последней удачной конфигурации", при этом проверка диска не провоцируется автоматически или отключена в реестре. То есть делаем импорт в реестр и перезагружаем комп.
Между WinXP и 10 разница в типе параметра REG_EXPAND_SZ и REG_MULTI_SZ. reg-файлы проверка дисков WinXP

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

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

    [+] [-]
AZJIO,
53907тест на коде... нет реакций, разве что криво перемещает родительское
Пример:
Procedure InstanceToWnd(iPid)
  Protected hWnd = FindWindow_(0,0)
  Protected iPid1, ThreadID
  While hWnd <> 0
    If GetParent_(hWnd) = 0
      ThreadID = GetWindowThreadProcessId_(hWnd, @iPid1)
      If iPid1 = iPid:Break:EndIf
    EndIf
    hWnd = GetWindow_(hWnd, #GW_HWNDNEXT)
  Wend
  ProcedureReturn hWnd
EndProcedure
ThreadID=RunProgram("cmd.exe","","",#PB_Program_Open)
Sleep_(2000)
iPid=ProgramID(ThreadID)
hWnd=InstanceToWnd(iPid)
MoveWindow_(hWnd, 5, 5, 480, 210, 0)
Sleep_(2000)
MoveWindow_(hWnd, 5, 5, 210, 480, 0)
Sleep_(2000)
MoveWindow_(hWnd, 200, 200, 480, 210, 0)
Sleep_(2000)
MoveWindow_(hWnd, 200, 200, 640, 480, 0)

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

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

    [+] [-]
Кстати, можно было бы сделать импорт в реестр задания на проверку диска. То есть система грузится, а зачем перезагружать в LiveCD, когда можно задать принудительно.

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

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

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

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

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

    [+] [-]
Joker-2013, было бы ещё время, вспоминаю когда прижало, думал что не озвучивал ещё идею
Вот набросал, но не работает
Case 7 ; i импорт рег-данных
          res$ = ""
          TrgS = 0
          For k = 0 To CountGadgetItems(0)-1
            info$ = ""
            If Not(GetGadgetItemState(0, k) & #PB_ListIcon_Checked)
              disk$ = GetGadgetItemText(0, k)
              info$ + disk$
              TrgS + 1
            EndIf
          Next
          If Not TrgS
            MessageRequester("Сообщение", "Нужно выбрать диск")
            Continue
          EndIf
          res$ = "autocheck autochk /K:" + info$ + " *"
          ;             res$="autocheck autochk /p \??\C:"
          param$="BootExecute"
          Handle = RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Session Manager", 0, #KEY_WRITE, @hKey)
          If Handle = #ERROR_SUCCESS
            MessageRequester("Ура", "Ключ открыт")
            RegSetValueEx_(hKey, @param$, 0, #REG_EXPAND_SZ, @res$, Len(res$))
            RegCloseKey_(hKey)
          EndIf
Собственно не работает открытие ключа (заработало от админа)
Global hKey.l = 0
Handle = RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Session Manager", 0, #KEY_WRITE, @hKey)
If Handle = #ERROR_SUCCESS
  MessageRequester("Ура", "Ключ открыт")
  RegCloseKey_(hKey)
EndIf
А это работает
Handle = RegOpenKeyEx_(#HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", 0, #KEY_WRITE, @hKey)
If Handle = #ERROR_SUCCESS
  MessageRequester("Ура", "Ключ открыт")
   RegCloseKey_(hKey)
EndIf
Значит дело в доступе?!?!?!
Заработало от админа!
Но у меня было два варианта импорт непосредственно и импорт через сохранение рег-файла. буду теперь пробовать через сохранение, тут точно проблем не будет.

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


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

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

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


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