将窗口全部大写以用于特定应用

Ste*_*afa 3 powershell windows-7 batch

有没有一种方法可以在运行特定应用程序时将窗口透明地设置为大写。对于奖励积分,当应用程序终止时,我应该能够恢复正常(非大写锁定模式)。

我用谷歌搜索并浏览了 SO/SF,但我什至不知道从哪里开始找到答案。

谢谢

Mat*_*sen 6

您可以使用 PowerShell 轻松切换 CAPS LOCK,只需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
Run Code Online (Sandbox Code Playgroud)

现在您可以从 PowerShell 会话控制大写锁定:

[CapsControls]::ToggleCaps() # simulate a CAPS key press
[CapsControls]::EnableCaps() # if disabled, CAPS key press
[CapsControls]::DisableCaps() # if enabled, CAPS key press
Run Code Online (Sandbox Code Playgroud)

如果可能,请从应用程序中调用它,但您可以使用计划任务在每次启动应用程序时运行该命令