Есть ли способ, при котором я могу прозрачно устанавливать окна до заглавных букв, предпочтительно при запуске определенного приложения. Что касается бонусных баллов, я должен иметь возможность вернуться к нормальному состоянию (режим без Capslock) после завершения работы приложения.
Я погуглил и прошел через SO / SF, но я даже не знаю, с чего начать поиск ответа.
Спасибо
Вы можете легко переключить CAPS LOCK с помощью PowerShell, просто импортируйте некоторые магия виртуальной клавиатуры от user32.dll
:
$importDef = @"
using System.Runtime.InteropServices;
public class CapsControls
{
enum virtKeys : int
{
vkCaps = 0x14
}
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
[DllImport("user32.dll")]
static extern short GetKeyState(virtKeys nVirtKey);
public static void ToggleCaps()
{
keybd_event(virtKeys.vkCaps, 0x45, 0x1, 0);
keybd_event(virtKeys.vkCaps, 0x45, 0x3, 0);
}
public static void EnableCaps()
{
if((GetKeyState(virtKeys.vkCaps) % 2) == 0)
{
ToggleCaps();
}
}
public static void DisableCaps()
{
if((GetKeyState(virtKeys.vkCaps) % 2) != 0)
{
ToggleCaps();
}
}
}
"@
Add-Type -TypeDefinition $importDef
Теперь вы можете управлять Caps Lock из сеанса PowerShell:
[CapsControls]::ToggleCaps() # simulate a CAPS key press
[CapsControls]::EnableCaps() # if disabled, CAPS key press
[CapsControls]::DisableCaps() # if enabled, CAPS key press
Если возможно, вызывайте его из приложения, но вы можете использовать запланированное задание для запуска команды каждый раз при запуске приложения.
Нет, нельзя, используя системные инструменты. Для этого могут быть какие-то сторонние инструменты.
Вы можете попробовать изменить настройки цвета и внешнего вида Windows, чтобы изменить шрифты отображения системы, и вы можете изменить его на шрифт, состоящий только из заглавных букв. Однако это не будет работать во всех приложениях.
Как насчет того, чтобы вы определили проблему, которую решаете, вместо того, чтобы просить нас о помощи с решением, которое вы ищете? Почему вы пометили это как «пакет» и «PowerShell»? Похоже, они не имеют отношения ни к чему в вашем написанном вопросе.