乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 224|回复: 14

一个无名的人。。。

[复制链接]

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2005-4-5 15:35:43 | 显示全部楼层 |阅读模式
... 在一个类似未命名的论坛上,贴出了对另一张海报的回复,都是令人讨厌的大写字母
一段很长的话,我的回答是--
  1. Private Declare Sub keybd_event _
  2.     Lib "user32" _
  3.     (ByVal virtualKeyCode As Byte, _
  4.     ByVal stubbed As Byte, _
  5.     ByVal flags As Long, _
  6.     ByVal pointerToExtraInfo As Long)
  7. Private Declare Function MapVirtualKey _
  8.     Lib "user32" _
  9.     Alias "MapVirtualKeyA" _
  10.     (ByVal virtualKeyCode As Long, _
  11.     ByVal translate As Long) _
  12.     As Long
  13. Private Declare Function GetKeyState _
  14.     Lib "user32" _
  15.     (ByVal virtualKeyCode As Long) _
  16.     As Long
  17.    
  18. Private Const _
  19.     VKC_CAPSLOCK = &H14, _
  20.     TRANSLATE_TO_SCANCODE = 0, _
  21.     SCANF_KEYUP = &H2, _
  22.     SCANF_KEYEXT = &H1, _
  23.     SCANF_KEYNOTEXT = &H0, _
  24.     NULL_POINTER = 0
  25.    
  26. Sub StopShouting()
  27.     If (GetKeyState(VKC_CAPSLOCK) And 1) Then
  28.         Call keybd_event( _
  29.             VKC_CAPSLOCK, _
  30.             MapVirtualKey(VKC_CAPSLOCK, TRANSLATE_TO_SCANCODE), _
  31.             SCANF_KEYEXT Or SCANF_KEYNOTEXT, _
  32.             NULL_POINTER)
  33.         Call keybd_event( _
  34.             VKC_CAPSLOCK, _
  35.             MapVirtualKey(VKC_CAPSLOCK, TRANSLATE_TO_SCANCODE), _
  36.             SCANF_KEYEXT Or SCANF_KEYUP, _
  37.             NULL_POINTER)
  38.     End If
  39. End Sub
  40. Sub Main()
  41.     Call StopShouting
  42. End Sub

一个人给我发了一封电子邮件,“;不要听起来比我现在更愚蠢…所有这些编码的东西意味着什么&引用
真实的故事
顺便说一句,如果你好奇的话……keybd_事件,MapVirtualKey和GetKeyState。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2005-4-5 15:46:00 | 显示全部楼层
哈哈哈!真有趣
嘿,顺便说一句,这很酷,你写那个议员了吗?
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2005-4-5 18:05:27 | 显示全部楼层
我在谷歌上找到了几个链接。他们都没有精确地做我想要的和/或在XP下工作,但当我去MSDN时,我知道我在寻找什么,这使我能够写我想要的。有趣的代码(在提供它的上下文中),但它确实有效
就垂直风格而言,我编写的VB类似于LISP

回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2005-4-5 18:43:04 | 显示全部楼层
谢谢您的代码位,这将非常有用。我正在考虑将其放入一个模块,当浏览器有焦点时,该模块将去掉大写锁定。这应该可以防止我对每个人大喊大叫。。。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2005-4-5 19:36:44 | 显示全部楼层
很高兴你能用它做点什么,基思。我把它作为一个笑话写下来并贴出来——当工作的小伙子们发现它实际上是功能性的时,他们就把它丢了。诚然,我们是一群奇怪的人

回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2005-4-5 21:34:10 | 显示全部楼层
那时我发现我是最有趣的。我说了出来,笑得差点尿裤子
Keith,让它在任何时候启动TEXT,DTEXT都能打开大写字母。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2005-4-5 23:12:33 | 显示全部楼层
我可以做到…寻找一个整洁的小VBA应用程序即将来到你附近的沼泽。。
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2005-4-8 09:20:41 | 显示全部楼层
好的,男孩和女孩们……这是第一个化身……如果你数一下上面的代码,这就是第二个。我不得不对代码做了很多修改,这样它才能在其他Windows平台上正常工作,但最初的想法归功于MP
前提是,当窗口变为活动时,它会通知操作系统,我们可以用一个简单的计时器拦截这些调用,获取活动窗口,确定它来自哪个应用程序,如果是AutoCAD,则打开大写锁定如果是浏览器窗口,则关闭大写锁定。好吧,这就是它应该如何工作的
不幸的是,我没有在这里安装FireFox,因此我无法验证它是否能正常工作。如果任何人对它的正常工作有问题,请给我发送浏览器窗口或AutoCAD窗口的屏幕截图,我将尝试解决该问题
然后给我一些反馈…
享受。我知道我会用它。。。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2005-4-8 09:25:57 | 显示全部楼层
它在Firefox和Autocad中运行良好。这很甜蜜。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2005-4-8 09:41:30 | 显示全部楼层
你看到了吗,它在systray中放置了一个小图标?要关闭应用程序,只需右键单击图标并选择退出,否则它将在后台运行
在我的测试中观察到总内存使用量在3到5兆之间,虽然对于应用程序的大小来说有点高,但我认为大部分都可以归因于在系统中运行所需的开销。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-16 22:03 , Processed in 4.929176 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表