我想用VB写一个软件,求教高手,功能很简单,但不知道怎么写

我想用VB写一个软件,求教高手,功能很简单,但不知道怎么写

软件功能:当我打开软件时,会弹出一个text控件,输入一个词组后,按ok,这时小键盘上的1就变成了这个词组,只要我的软件还开着,不管在什么界面,我按1,都会出现这个词组

简单点说就是:开启软件后,可以把小键盘的1变成一个 词组快捷输入键

今天搞了一天,也没结果,敲得很多东西都是不对,请教高人,这个该如何写,

请教了,请不惜赐教

先感谢了
对了,我用的是vb6,
vb7、.net不太熟,
我的邮箱是

303467342@qq.com

先谢过

功能简单实现不简单,VB可以做但是非常不推荐用VB做,不稳定还容易出问题。

技术核心就是HOOKAPI,如果你想自己就去百度一下

我推荐给你一个简单的方法,买一个带宏编辑的键盘,鼠标也有此类产品。
不想花钱 下载个按键精灵,把你的字符串绑定到小键盘1上 呵呵

这么回答很无聊,但是很直接
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-02
哪需要APIHOOK那么复杂, 楼下说得太夸张了......
注册一个全局快捷键就可以了
主窗体代码如下
Option Explicit
Dim uVirtKey As Integer
Private Sub Command1_Click()
Dim Modifiers As Long
preWinProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
uVirtKey = 97 '小键盘的1
RegisterHotKey Me.hWnd, 1, Modifiers, uVirtKey
End Sub
'当程序被关闭时,取消已经注册的热键
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hWnd, GWL_WNDPROC, preWinProc
UnregisterHotKey Me.hWnd, uVirtKey
End Sub

加入一个标准模块, 代码如下
Option Explicit
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal ID As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Public Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal ID As Long) As Long
Public Const WM_HOTKEY = &H312
Public Const GWL_WNDPROC = (-4)

Public preWinProc As Long, MyhWnd As Long, uVirtKey As Long
Public Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_HOTKEY Then
If wParam = 1 Then
SendKey
End If
End If
WndProc = CallWindowProc(preWinProc, hWnd, Msg, wParam, lParam)
End Function

Public Sub SendKey()
SendKeys Form1.Text1.Text
End Sub

测试过了, 可以用, 只能是英语, 如果是汉字的话, 可以考虑模拟粘贴追问

收到您的邮件了,十分感谢,能不能帮我简单说下模拟粘贴时怎么回事
我在百度里搜到一些,但还是不太懂是什么,昨天下了些win api的资料,正在读,是api里的么?

追答

发邮箱了, 自己看哦, 就改了一点

追问

不好意思,年底事情多,一直没抽出时间,这几个晚上研究了一下,大体后面看懂了,
但第一段有点不懂
SetWindowLong Me.hWnd, GWL_WNDPROC, preWinProc
preWinProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
uVirtKey = 97 '小键盘的1
RegisterHotKey Me.hWnd, 1, Modifiers, uVirtKey
End Sub
函数都看了,用F8跑了,还是不知道发生了什么

追答

先解释这两句
preWinProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc

这两句是修改窗口的响应函数, 将响应函数的地址修改为WndProc, 这样才能才WndProc里处理WM_HOTKEY消息. 在Windows中, 触发快捷键后, 系统会往注册的窗口发送WM_HOTKEY消息, 但是在VB里面没有默认的消息响应函数来响应这个消息, 因此需要自定义窗口的响应函数, 从而对WM_HOTKEY进行响应.
那么前一句
SetWindowLong Me.hWnd, GWL_WNDPROC, preWinProc

就是还原窗口的响应函数, 如果没有这句的话, 当第二次点击command1时, 程序会出错

第2个回答  2012-11-30
两种方法:计时器和全局键盘消息,留个邮箱吧,唉~
第3个回答  2018-05-29
我可以给你写

VB高手进,求一个简单计算器的VB代码
这是一个简易的VB计算器代码。首先定义了几个变量:Num1和Num2作为浮点数储存。StrNum1和StrNum2作为字符串储存输入的数值。FirstNum判断是否是数字开头。PointFlag判断是否已有小数点。Runsign储存运算符号。SignFlag判断是否已有运算符号。接着是ClearData子过程,用于清空储存的数据。Run子过程用于执行运算。

最近在学VB,想一个简单的软件,请高手指点(内容)
首先说明:A 文件夹下的所有文件也包括本软件自身,自己不能删除自己!一定要把生成的exe放到A文件夹下再执行,否则后果自负 Option Explicit Private Sub Command1_Click()Dim pathstr, filename As String pathstr = IIf(Right(App.Path, 1) = "\\", App.Path, App.Path & "\\")filename = ...

VB 用vb编写一个简单的计费器,希望高手帮忙
Public x1, x2, x3, c Private Sub Form_Load()x1 = 100 x2 = 100 x3 = 100 c = "0.0"Label1.Caption = "时间:00:00:00" & vbCrLf & "费用:" & c Label1.AutoSize = 1 Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer()x1 = x1 + 1 If Right(x1, 2) >=...

用VB6.0编写一个MP3播放器怎么编?各位高手给个代码或教程让小弟学习吧...
回答:用MMC控件或者WMP控件,都很简单,我提供一点代码,可以进行MP3的播放,但没有循环功能,循环功能你自己加吧,其实也是很简单的。MMC控件事例:一个MMC控件名字为:MMContorl1,一个Command控件名字为Command1,一个List控件名字为List1,一个CommonDialog控件名字为CommonDialog1代码:Pribate Sub Command1_Clic...

vb 填写补充一段程序的代码 求高手教教
1、k=left -1 是设定进行比较的数组元素的上限。由 A(Left) 跟[ A(Left-1) 到 A(1)] 进行比较 2、I 值的作用是返回相同元素的位置。3、left 是不断变化的,所以 for 肯定也在不断变化地比较。要理解这段代码,最好是自己跟着算一遍,下面是一个实际计算过程:最初数组: 5 9 6 ...

用VB设计一个简单的加法程序
为提高大家学习VB的兴趣,在这里,我们以一个简单的加法程序来体验一下VB的强大功能。首先我们启动VB,在出现"新建工程"对话框后,选择"标准EXE",单击"打开"按钮,即进入如下图的VB开发环境。第一步:单击工具箱中的"TextBox(文本框)"图标 ,移动鼠标指针到窗体Form1上,这时鼠标指针变成了"+"形状...

高手指导:用VB我想编写个安全软件
高手指导:用VB我想编写个安全软件 就是可以监视系统目录的动作,比如是有病毒在进入系统,起到一个拦截的作用,然后要你点同意之类的那些,就好像防火墙那样,还有其他的功能,我不要求有防火墙的所有功能各位!我还不... 就是可以监视系统目录的动作,比如是有病毒在进入系统,起到一个拦截的作用, 然后要你点同意之类...

我想编程,但是不知怎样编,我下载了一个VB,如果我想要编一个计算器软件...
VB是Visual Basic的简称 Basic是一种计算机语言,是初学者通用指令代码的简称,可以说是为初学者设计的语言 代码当然是在学VB才知道的,代码虽是英文,但还是比较简单的,毕竟这个语言是为初学者设计的 下面是一个计算器的程序代码,只能进行加减乘除,整除,求余的运算,我就不详细解释了 Option Explicit...

想设计一个简单的vb程序,高手帮忙
用记事本保存以下内容 名为 名字.frm 希望能追加一些分数·毕竟手动 运用到 转换小写 和一些简单的东西 2个list 3个按钮 2个文本框 VERSION 5.00 Begin VB.Form Form1 Caption = "Form1"ClientHeight = 2895 ClientLeft = 60 ClientTop = 450 ClientWidth = 4515...

谁能教教我用vb做程序,我一点基础都没有
或者学习Delphi,入门较为简单类似于VB,但比VB强大,即可作为入门又能做强、做大 怎样学编程 1.明确学习目的 学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有...

相似回答