佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1136|回复: 10

热键疑问...

[复制链接]
发表于 13-3-2007 05:46 PM | 显示全部楼层 |阅读模式
请问各位电脑高手,有什么软件能够以下功能...

如:
按ctrl+shift+a =apple
ctrl+shift+b   =ball
意思就是说以上的热键都储存好,只要按ctrl+shift+xx就能出现我要的字母
就象ctrl+C , ctrl+V一样的意思.
回复

使用道具 举报


ADVERTISEMENT

发表于 13-3-2007 06:23 PM | 显示全部楼层
原帖由 ahan1232000 于 13-3-2007 05:46 PM 发表
请问各位电脑高手,有什么软件能够以下功能...

如:
按ctrl+shift+a =apple
ctrl+shift+b   =ball
意思就是说以上的热键都储存好,只要按ctrl+shift+xx就能出现我要的字母
就象ctrl+C , ctrl+V一样的意思.


自己写一个吧,这样的软件很容易写吧了
回复

使用道具 举报

 楼主| 发表于 13-3-2007 06:29 PM | 显示全部楼层
原帖由 hcong85 于 13-3-2007 06:23 PM 发表


自己写一个吧,这样的软件很容易写吧了

对不起我是电脑白痴
你能帮助我吗?
回复

使用道具 举报

发表于 14-3-2007 04:02 PM | 显示全部楼层
试试看在user32.dll里的SetWindowsHookEx
回复

使用道具 举报

发表于 14-3-2007 04:23 PM | 显示全部楼层
用 vbSendKeys, 或是一些 VB API 都能够做到
回复

使用道具 举报

发表于 14-3-2007 06:24 PM | 显示全部楼层
基本上只需要用GetAsyncKeyState和VB的SendKeys

如果不是用VB就用SendInput或keybd_event
回复

使用道具 举报

Follow Us
 楼主| 发表于 14-3-2007 08:07 PM | 显示全部楼层
试试看在user32.dll里的SetWindowsHookEx
用 vbSendKeys, 或是一些 VB API 都能够做到
基本上只需要用GetAsyncKeyState和VB的SendKeys

如果不是用VB就用SendInput或keybd_event
基本上只需要用GetAsyncKeyState和VB的SendKeys

如果不是用VB就用SendInput或keybd_event

谢谢大家!我去研究看看..如有什么不明白的再问大家...
回复

使用道具 举报

发表于 17-3-2007 06:45 PM | 显示全部楼层
原帖由 hcong85 于 14-3-2007 06:24 PM 发表
基本上只需要用GetAsyncKeyState和VB的SendKeys

如果不是用VB就用SendInput或keybd_event


借用楼主的贴。。
对不起,我没用过vbsendkey 还有getasync..可以解释一下吗。。
请问若你那个vb application 在background,而你的其它application在foreground(比如notepad)...然后你能够用你设计的hotkey 用在那个其它的application 吗? 因为若是notepad在foreground.. 你按hotkey就是在notepad发生,它会怎么样去trigger在vb 的function?不明。。

因为据我了解是必须把某function 挂在某hotkey,即使,那个vb在background, 你开notepad在foreground,在notepad按你设计的hotkey, 他也会跑去执行那个挂在hotkey的function..然后才vb叫sendkey 来control notepad,比如在notepad写"apple"的东东。。 (我不是说在vb按hotkey,然后在notepad写"apple",而是在notepad 按。。)
回复

使用道具 举报


ADVERTISEMENT

发表于 18-3-2007 11:42 AM | 显示全部楼层
写个例子给你吧

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/UserInput/VirtualKeyCodes.asp

  1. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  2. Private Const VK_LSHIFT = &HA0
  3. Private Const VK_RSHIFT = &HA1
  4. Private Const VK_A = &H41
  5. Private Const VK_B = &H42

  6. Private Sub Timer1_Timer()
  7. If GetAsyncKeyState(VK_LSHIFT) = -32768 Or GetAsyncKeyState(VK_RSHIFT) = -32768 Then
  8.     If GetAsyncKeyState(VK_A) = -32767 Then
  9.         SendKeys "Apple"
  10.     ElseIf GetAsyncKeyState(VK_B) = -32767 Then
  11.         SendKeys "Ball"
  12.     End If
  13. End If
  14. End Sub
复制代码
回复

使用道具 举报

发表于 18-3-2007 03:10 PM | 显示全部楼层
原来是用timer不停的getasynckey..
有没有更好的方法?
回复

使用道具 举报

发表于 27-3-2007 10:06 AM | 显示全部楼层
原帖由 tensaix2j 于 2007/3/18 03:10 PM 发表
原来是用timer不停的getasynckey..
有没有更好的方法?

SetWindowsHookEx / RegisterHotKey
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-8-2025 06:39 PM , Processed in 0.137980 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表