Inicie un script por lotes como shell en lugar de explorador en Windows 10

Inicie un script por lotes como shell en lugar de explorador en Windows 10

En Windows 10, el shell predeterminado es explorer.exe, que le brinda la barra de tareas, los íconos del escritorio y el menú de inicio.

Desde Windows 10 v1909, y posiblemente v1903, Microsoft ha decidido utilizar la hiperclave ( CTRL- ALT- SHIFT- WIN) más algunas claves, la clave predeterminada para las aplicaciones de Office sin permitir a los usuarios que no tienen Office instalado utilizar estas claves para su propio ocio. .

Tenía estas claves vinculadas a acciones en varios programas, pero ahora cada una de estas claves abre una página en mi navegador web que navega a Office365, que no uso o, en el caso de O para OneDrive, me muestra un mensaje de error. porque no tengo OneDrive instalado.

Debería existir la posibilidad de hacer que no se abra nada al presionar el botón, usando un ajuste de registro, pero en Windows 10 v1909, eso ya no funciona.

Necesito deshacerme de este comportamiento, así que investigué un poco:

Parece que Microsoft incorporó este soporte directamente en explorer.exe; Puedo matar explorer.exey las teclas de acceso rápido finalmente desaparecieron, pero cuando comienzo explorer.exe, vuelven.

Parece que al iniciar explorer.exe, estas claves se registran una vez y, si el registro de las claves falla, Explorer no volverá a intentarlo. Básicamente, esto significa que para recuperar mis teclas de acceso rápido, necesito cerrar Explorer, reiniciar las aplicaciones que usan estas teclas de acceso rápido y luego iniciar Explorer. Incluso es posible cerrar el Explorador, iniciar una aplicación que registre todas las teclas de acceso rápido de Office, iniciar Explorer, luego cancelar el registro de las teclas de acceso rápido de Office y, a partir de ese momento, son completamente gratuitas.

Dado que para mí solo tengo un programa que usa todas estas teclas de acceso rápido globales, todo lo que necesito hacer es iniciar este programa antes de iniciar Explorer y estaré bien.

Por supuesto, podría ejecutar un script que finalice Explorer, inicie mi programa y luego inicie Explorer, pero dado que esto se ejecutará al iniciar el sistema de todos modos, se puede evitar que Explorer flashee como resultado si puedo iniciar mi script de inicio en lugar de Explorer. algo que se puede hacer configurando un shell alternativo. Sin embargo, que yo sepa, sólo .exelos archivos se pueden configurar como shell.

¿Alguien sabe cómo puedo configurar un .cmdarchivo (u otro lenguaje de secuencias de comandos) como shell o, alternativamente, alguien conoce una forma limpia de resolver mi problema global de teclas de acceso rápido?

EDITAR: Estoy en Windows 10 Pro.

De hecho, intenté crear un programa VB .net que se iniciara explorer.exedespués de registrar las teclas de acceso rápido, pero no puedo lograr que funcione de manera confiable. Si explorer.exeno es el shell, e inicio explorer.exe, mientras no se ejecuta, solo aparece un explorador de archivos, no la barra de tareas, etc. Si Explorer es el shell y se inicia, al eliminarlo con mi programa se cancela la secuencia de inicio. , por lo que tengo que retrasar significativamente mi rutina, lo que significa que en algún momento obtengo un reinicio notable del Explorador, lo cual está lejos de ser ideal.

He jugado con la idea de crear mi propio shell como reemplazo de la barra de tareas y el escritorio, pero dado que uso Actual Tools Window Manager y depende de que Explorer sea el shell, eso tampoco es ideal. Por esa razón, esta pregunta sigue abierta, aunque me temo que lo que pregunto simplemente no es posible.

Respuesta1

Filtro de teclado (referencia del proveedor WMI)

Compatible solo con Windows 10 Enterprise y Windows 10 Education

WEKF_PredefinedKey
Esta clase bloquea o desbloquea combinaciones de teclas predefinidas, como 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;
};

Fuente: Documentos de Microsoft

Respuesta2

No he probado esta idea, pero parece plausible y sencilla: en lugar de reemplazar Explorer, cree un .regarchivo que elimine o modifique las entradas ofensivas creadas por Explorer en el Registro. Luego cree una tarea en el Programador de tareas de Windows que ejecutará el .regarchivo y se activará cada vez que inicie sesión en Windows.

Para más información, ver:
Cómo agregar, modificar o eliminar subclaves y valores del registro mediante un archivo .reg

Respuesta3

Está solucionado aquí: https://github.com/stringlapse/OfficeKeyFix

Debe cargar Visual Studio con extensión para tareas normales de C++. Cree un proyecto vacío, constrúyalo, muévalo a ejecución automática.

Es mejor crear la tarea en el planificador de tareas con un retraso de 30 o 60 segundos.

información relacionada