我遇到了意外切换输入语言的问题。为了避免这种情况,我尝试了很多不同的设置 - 更改热键,安装一些软件(Key Switcher、Keyboard Ninja、Punto Switcher)... 但都无济于事。
我习惯使用某个热键(Ctrl+Shift)。任何其他热键都会让我更加痛苦。我发现的软件没有避免意外切换的功能。
我想要的是找到一个可以将“美国英语”输入语言粘贴到我的“Visual Studio”的软件。并且 VS 中的任何 Ctrl+Shift 按下都应该不是导致语言切换。有什么想法吗?
答案1
如果你去的话,
Control Panel / Regional and Language Options / Languages / Details / Key Settings
你会发现你可以定义用于语言更改的热键。
您可以将其与宏语言结合起来,例如自动热键,定义一个宏来更改语言/键盘布局,然后启动 Visual Studio。但这不会阻止将来的语言更改。
如果您正在寻找比这更严格的程序,据我所知,没有这样的程序存在。由于 VS 是可扩展的,您可以自己编写一个插件来限制 VS 允许的语言数量。这个小插件将随 VS 一起加载,并将首选语言设置为仅一种(英语)。
如果您希望朝这个方向迈进,以下链接可能会有所帮助:
答案2
只要您的默认语言已设置,并且您只需要更改一个程序的语言,我建议更改该程序 (VS) 的语言,然后进入语言选项并将热键更改为无,然后转到键序列并取消选中该框(区域和语言选项 -> 语言选项卡 -> 详细信息 -> 键设置 -> 更改键序列)。现在快捷方式将关闭,并且由于 Windows 会记住每个应用程序的输入,因此输入将自动切换为 VS,但其他所有内容仍为西班牙语。
答案3
以下内容适用于 WinXP 32 位上的 Visual Studio .NET 2003。YMMV。
- 文件->新项目
- 选择项目类型:其他项目\可扩展性项目
- 选择模板:Visual Studio .NET Add-in。单击“确定”。
- 单击下一步,选择使用 Visual C++/ATL 创建加载项,单击下一步。
- 选择所有可能的应用程序主机,单击下一步。
- (可选)输入名称和描述,单击下一步。
- 选择选项。不要勾选“是,创建工具菜单项”。点击下一步。
- 不要选择创建“关于”框。单击“下一步”。
- 单击“完成”。
- 切换到源文件选项卡
Connect.cpp
在顶部,在
#include
s 之后添加行HHOOK myhook;
向方法
CConnect::OnConnection
添加行myhook=SetWindowsHookEx(WH_GETMESSAGE, &myGetMsgProc, _AtlModule.GetResourceInstance(), GetCurrentThreadId());
向方法
CConnect::OnDisconnection
添加行UnhookWindowsHookEx(myhook);
上面
OnConnection()
添加函数LRESULT CALLBACK myGetMsgProc(int code, WPARAM wParam, LPARAM lParam) { MSG *msg = (MSG*)lParam; if (code>=0 && msg->message==WM_INPUTLANGCHANGEREQUEST) msg->message = WM_NULL; return CallNextHookEx(myhook, code, wParam, lParam); }
- 构建解决方案。
- 选择菜单工具->插件管理器...
- 勾选新插件的复选框。暂时不要勾选“启动”,以防万一出现问题 - 您不希望 Visual Studio 每次启动时都崩溃!
- 单击“确定”。
现在无法在 Visual Studio 中更改语言或键盘布局。如果您尝试更改,语言栏会有点混乱,但不会中断。