一个无名的人。。。
... 在一个类似未命名的论坛上,贴出了对另一张海报的回复,都是令人讨厌的大写字母一段很长的话,我的回答是--Private Declare Sub keybd_event _
Lib "user32" _
(ByVal virtualKeyCode As Byte, _
ByVal stubbed As Byte, _
ByVal flags As Long, _
ByVal pointerToExtraInfo As Long)
Private Declare Function MapVirtualKey _
Lib "user32" _
Alias "MapVirtualKeyA" _
(ByVal virtualKeyCode As Long, _
ByVal translate As Long) _
As Long
Private Declare Function GetKeyState _
Lib "user32" _
(ByVal virtualKeyCode As Long) _
As Long
Private Const _
VKC_CAPSLOCK = &H14, _
TRANSLATE_TO_SCANCODE = 0, _
SCANF_KEYUP = &H2, _
SCANF_KEYEXT = &H1, _
SCANF_KEYNOTEXT = &H0, _
NULL_POINTER = 0
Sub StopShouting()
If (GetKeyState(VKC_CAPSLOCK) And 1) Then
Call keybd_event( _
VKC_CAPSLOCK, _
MapVirtualKey(VKC_CAPSLOCK, TRANSLATE_TO_SCANCODE), _
SCANF_KEYEXT Or SCANF_KEYNOTEXT, _
NULL_POINTER)
Call keybd_event( _
VKC_CAPSLOCK, _
MapVirtualKey(VKC_CAPSLOCK, TRANSLATE_TO_SCANCODE), _
SCANF_KEYEXT Or SCANF_KEYUP, _
NULL_POINTER)
End If
End Sub
Sub Main()
Call StopShouting
End Sub
一个人给我发了一封电子邮件,“;不要听起来比我现在更愚蠢…所有这些编码的东西意味着什么&引用
真实的故事
顺便说一句,如果你好奇的话……keybd_事件,MapVirtualKey和GetKeyState。
哈哈哈!真有趣
嘿,顺便说一句,这很酷,你写那个议员了吗? 我在谷歌上找到了几个链接。他们都没有精确地做我想要的和/或在XP下工作,但当我去MSDN时,我知道我在寻找什么,这使我能够写我想要的。有趣的代码(在提供它的上下文中),但它确实有效
就垂直风格而言,我编写的VB类似于LISP
)
谢谢您的代码位,这将非常有用。我正在考虑将其放入一个模块,当浏览器有焦点时,该模块将去掉大写锁定。这应该可以防止我对每个人大喊大叫。。。 很高兴你能用它做点什么,基思。我把它作为一个笑话写下来并贴出来——当工作的小伙子们发现它实际上是功能性的时,他们就把它丢了。诚然,我们是一群奇怪的人
)
那时我发现我是最有趣的。我说了出来,笑得差点尿裤子
Keith,让它在任何时候启动TEXT,DTEXT都能打开大写字母。 我可以做到…寻找一个整洁的小VBA应用程序即将来到你附近的沼泽。。 好的,男孩和女孩们……这是第一个化身……如果你数一下上面的代码,这就是第二个。我不得不对代码做了很多修改,这样它才能在其他Windows平台上正常工作,但最初的想法归功于MP
前提是,当窗口变为活动时,它会通知操作系统,我们可以用一个简单的计时器拦截这些调用,获取活动窗口,确定它来自哪个应用程序,如果是AutoCAD,则打开大写锁定如果是浏览器窗口,则关闭大写锁定。好吧,这就是它应该如何工作的
不幸的是,我没有在这里安装FireFox,因此我无法验证它是否能正常工作。如果任何人对它的正常工作有问题,请给我发送浏览器窗口或AutoCAD窗口的屏幕截图,我将尝试解决该问题
然后给我一些反馈…
享受。我知道我会用它。。。 它在Firefox和Autocad中运行良好。这很甜蜜。 你看到了吗,它在systray中放置了一个小图标?要关闭应用程序,只需右键单击图标并选择退出,否则它将在后台运行
在我的测试中观察到总内存使用量在3到5兆之间,虽然对于应用程序的大小来说有点高,但我认为大部分都可以归因于在系统中运行所需的开销。
页:
[1]
2