Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера... - VB

Узнай цену своей работы

Формулировка задачи:

Небольшое введение.
Так как моя прога использует так сказать "неподписанный драйвер", то на висте/2008 x64 у нее возникают известные проблемы с установкой/работой этого драйвера.
Поковырявшись с литературой, я понял что есть 3 способа решения:
1) При каждой загрузке жать F8 и выбирать "Disable Driver Signature Enforcement", при этом никакая вообще подпись не требуется.
2) Перевести систему в "Test Mode" дав команду
При этом надо чтобы драйвер имел хотя бы тестовую подпись (ее я через SDK делать научился), плюс user будет наблюдать слова "Test Mode" в 4-х углах экрана.
3) Покупается сертификат и драйвер становится good. Здесь замечу лично я покупать ничего не собираюсь, но теоретически user сам может заплатить бабки и подписать мой драйвер "чисто для себя", если уж он такой правильный user.
P.S. Существует также 4-й метод, который =(1) но без необходимости жать F8, но судя по описаниям на обновленных вистах это не работает, поэтому как вариант не рассматривается.
Естественно такая ситуация дел вносит некоторый бардак, и если одно из 3-х условий не выполнено то программа будет глючить, устанавливать полуфабрикаты, завешивать систему и т.п.
Передо мной стоит задача реализовать механизм проверки и механизм подталкивания usera к правильным действиям (readme, help это все понятно, но как правило люди этого этого не делают).
В случае если удастся понять ответы на 1-2-3 алгоритм будет такой
Пока не искал, только сформулировал задачу. Если кто чуть подтолкнет одним-двумя правильными словами, буду благодарен...

Решение задачи: «Режимы работы Vistax64: Disable Driver Signature..,Test mode, проверка драйвера...»

textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> TestsigningON_Click()
    <font color="blue">Dim</font> tempDrive <font color="blue">As</font> <font color="blue">String</font>
    <font color="blue">If</font> (<font color="blue">Not</font> (IsWinVista)) <font color="blue">Then</font> <font color="blue">Exit</font> <font color="blue">Sub</font>
    <font color="blue">If</font> Is64bit <font color="blue">Then</font>
        tempDrive = FreeDrive
        <font color="00AA00">'GetSystemDir это system32-полный путь без черточки на конце</font>
        ShellAndContinue <font color="teal">"subst.exe "</font> & tempDrive & <font color="teal">" "</font> & Chr(<font color="darkblue"><b>34</b></font>) & GetSystemDir & Chr(<font color="darkblue"><b>34</b></font>), vbHide
        ShellAndContinue tempDrive & <font color="teal">"\cmd.exe /c bcdedit /set TESTSIGNING ON"</font>, vbHide
        ShellAndContinue <font color="teal">"subst.exe "</font> & tempDrive & <font color="teal">" /d"</font>, vbHide
    <font color="blue">Else</font>
        ShellAndContinue <font color="teal">"cmd.exe /c bcdedit /set TESTSIGNING ON"</font>, vbHide
    <font color="blue">End</font> <font color="blue">If</font>
    SetupPromptReboot <font color="blue">ByVal</font> <font color="darkblue"><b>0</b></font>&, <font color="blue">Me</font>.hWnd, <font color="darkblue"><b>0</b></font>
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы