JohnK 发表于 2005-4-5 15:35:43

一个无名的人。。。

...在一个类似的论坛上,一个不知名的人发布了对另一个海报的回应,都是令人讨厌的大写字母。
BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA的一个很长的段落...
我回复了这个-
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_event、MapVirtualKey和GetKeyState。
**** Hidden Message *****

Keith™ 发表于 2005-4-5 15:46:00

哈哈!真有趣!
嘿,顺便说一句,这很酷,你写了那个MP吗?

JohnK 发表于 2005-4-5 18:05:27

我用谷歌找到了几个链接。他们都没有完全按照我的想法工作,或者在XP下工作,但是当我去MSDN时,我知道我在寻找什么,这使我能够写我想要的东西。有趣的代码(在提供它的上下文中)但是它确实工作。
就垂直风格而言,我编写的VB类似于LISP。
:)

Keith™ 发表于 2005-4-5 18:43:04

感谢代码位,这将是非常有用的。我正在考虑把它放入一个模块,当浏览器有焦点时,它将取消大写锁定。这应该可以防止我对每个人大喊大叫...

Keith™ 发表于 2005-4-5 19:36:44

很高兴你能用它做点什么,基思。我把它作为一个笑话写了下来并贴了出去——当工作中的小伙子们发现它实际上很有用时,他们失去了它。无可否认,我们是一群奇怪的人。
:)

daron 发表于 2005-4-5 21:34:10

那时我发现我是最有趣的。我把它说了出来,笑得差点尿裤子!
Keith,这样每次你发短信的时候,DTEXT都会自动打开。

Keith™ 发表于 2005-4-5 23:12:33

我可以做到...寻找一个整洁的小VBA应用程序,很快就会来到你附近的沼泽...

Jeff_M 发表于 2005-4-8 09:20:41

它在Firefox和Autocad中运行良好。那太好了。

JohnK 发表于 2005-4-8 09:25:57

你看到它在系统射线中放了一个小图标吗?要关闭应用程序,只需右键单击图标并选择EXIT,否则它将在后台运行。
在我的测试中观察到的总内存使用量在3到5 megs之间,虽然对于应用程序的大小来说有点高,但我认为大部分可以归因于在系统射线中运行所需的开销。

Keith™ 发表于 2005-4-8 09:41:30

好吧,它在FireFox上运行良好,但在Autocad(实际上是基于R2002的LandDesktop3)上不起作用。
为电子邮件/新闻组客户端添加选项有多难?
页: [1] 2
查看完整版本: 一个无名的人。。。