Запустить пакетный скрипт как оболочку вместо проводника в Windows 10

Запустить пакетный скрипт как оболочку вместо проводника в Windows 10

В Windows 10 оболочкой по умолчанию является explorer.exe, предоставляющая вам панель задач, значки рабочего стола и меню «Пуск».

Начиная с Windows 10 v1909 и, возможно, v1903, Microsoft решила использовать гиперклавишу ( CTRL- ALT- SHIFT- WIN) и несколько клавиш, клавишу по умолчанию для приложений Office, не позволяя пользователям, у которых не установлен Office, использовать эти клавиши в своих целях.

Я привязал эти клавиши к действиям в различных программах, но теперь каждая из них открывает страницу в моем веб-браузере, которая ведет в Office365, которым я не пользуюсь, или, в случае O для OneDrive, выдает мне сообщение об ошибке, потому что у меня не установлен OneDrive.

Должна быть возможность сделать так, чтобы при нажатии кнопки ничего не открывалось, используя настройку реестра, но в Windows 10 v1909 это больше не работает.

Мне нужно избавиться от этого поведения, поэтому я провел небольшое исследование:

Похоже, Microsoft встроила эту поддержку непосредственно в explorer.exe; я могу завершить работу explorer.exe, и горячие клавиши окончательно исчезнут, но когда я запущу explorer.exe, они снова появятся.

Похоже, что при запуске explorer.exeэти клавиши регистрируются один раз, и если регистрация клавиш не удалась, Explorer не будет пытаться снова. По сути, это означает, что для того, чтобы вернуть мои горячие клавиши, мне нужно закрыть Explorer, перезапустить приложения, которые используют эти горячие клавиши, а затем запустить Explorer. Можно даже закрыть explorer, запустить приложение, которое регистрирует все горячие клавиши Office, запустить Explorer, а затем отменить регистрацию горячих клавиш Office, и с этого момента они будут полностью свободны.

Учитывая, что у меня есть только одна программа, которая использует все эти глобальные горячие клавиши, все, что мне нужно сделать, это запустить эту программу до запуска Проводника, и все будет в порядке.

Конечно, я мог бы запустить скрипт, который убивает Explorer, запускает мою программу, затем запускает Explorer, но, учитывая, что это в любом случае будет запущено при старте системы, вспышки Explorer в результате можно избежать, если я смогу запустить свой скрипт запуска вместо Explorer, что можно сделать, установив альтернативную оболочку. Однако, насколько мне известно, .exeв качестве оболочки можно задать только файлы.

Кто-нибудь знает, как установить .cmdфайл (или другой язык сценариев) в качестве оболочки, или, в качестве альтернативы, кто-нибудь знает простой способ решения моей глобальной проблемы с горячими клавишами?

EDIT: У меня Windows 10 Pro.

На самом деле я пытался сделать программу VB .net, которая запускалась бы explorer.exeпосле регистрации горячих клавиш, но не могу заставить ее работать надежно. Если explorer.exeэто не оболочка, и я запускаю explorer.exe, пока он не запускается, я получаю только файловый браузер, а не панель задач и т. д. Если Explorer — это оболочка, и она запускается, его завершение моей программой прерывает последовательность запуска, поэтому мне приходится значительно откладывать свою рутину, что означает, что в какой-то момент я получаю заметный перезапуск Explorer, что далеко от идеала.

Я играл с идеей сделать свою собственную оболочку в качестве замены панели задач и рабочего стола, но учитывая, что я использую Actual Tools Window Manager, а он полагается на Explorer как на оболочку, это тоже не совсем идеально. Поэтому по этой причине этот вопрос все еще открыт, хотя я боюсь, что то, о чем я спрашиваю, просто невозможно.

решение1

Фильтр клавиатуры (справочник поставщика WMI)

Поддерживается только в Windows 10 Enterprise и Windows 10 Education.

WEKF_PredefinedKey
Этот класс блокирует или разблокирует предопределенные комбинации клавиш, такие как Ctrl+ Alt+Delete

class WEKF_PredefinedKey {
 [Static] uint32 Enable (
   [In] string PredefinedKey<
 );

 [Static] uint32 Disable (
   [In] string PredefinedKey
 );

 [Key] string Id;
 [Read, Write] boolean Enabled;
};

Источник: Документы Microsoft

решение2

Я не проверял эту идею, но она кажется правдоподобной и простой: вместо замены Explorer создайте файл, .regкоторый удаляет или изменяет оскорбительные записи, созданные Explorer в реестре. Затем создайте задачу в планировщике задач Windows, которая будет запускать файл .regи срабатывать каждый раз при входе в Windows.

Более подробную информацию см. здесь:
Как добавлять, изменять или удалять подразделы и значения реестра с помощью файла .reg

решение3

Это решено здесь: https://github.com/stringlapse/OfficeKeyFix

Вам следует загрузить visual studio с расширением для обычных задач C++. Создайте пустой проект, соберите его, переместите в автозапуск.

Задачу лучше создавать в планировщике задач с задержкой 30 или 60 сек.

Связанный контент