如何VB 制作几个按钮 可以快捷输入指定文本?

我想做一个VB的EXE通过几个按钮按一下就能在WORD写字板等软件中输入自己经常要用的几句句子来节省时间。比如点一下按钮就可以直接键入“XX公司欢迎您的来电”我强调一下,... 我想做一个VB的EXE
通过几个按钮 按一下 就能在WORD写字板等软件中输入自己经常要用的几句句子 来节省时间。

比如 点一下按钮 就可以直接键入“XX公司欢迎您的来电”
我强调一下,公司的电脑,不能乱改系统的,像鼠标右键改动,这种都是被屏蔽的。所以我才想用EXE文件来做一个小程序操作。想刚刚那位说自己创建输入法的朋友,那么我每次打字还要来回切换输入法,很麻烦的。有些朋友说WORD里设置,那么我不用WORD的时候,怎么办喃?想来想去还是编一个EXE最好!不管EMAIL,TXT,WORD,什么地方都能用。
展开
 我来答
ARTERIOSCLEROS
2008-07-25 · TA获得超过4183个赞
知道大有可为答主
回答量:1672
采纳率:0%
帮助的人:2435万
展开全部
我晕,这个建议别用VB做,浪费时间。建议如下。
打开Word,键入你想要得字符(比方说:“XX公司欢迎您的来电”),选定这些字符,按键Alt+F3,出现“创建‘自动图文集’”对话框,单击“确定”。然后在任何一个工具栏上按右键,单击长长的菜单最下面的“自定义”,在左边的“类别”中选择“自动图文集”,在右边找到你刚刚创建的词条(XX公司欢迎您的来电),把它拖动到工具栏上,成为一个按钮。这时单击关闭,你会发现这个词条已经成为一个按钮,每次使用时,单击即可。
这个方法方便又快捷。建议采纳。
xbin0938
2008-07-25 · TA获得超过108个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:130万
展开全部
何必用VB ,自己做个输入法就OK了.系统自身就带这功能

第一步,需要输入法生成器和码表原文件。输入法生成器是Windows自带的软件,在Windows98中,可以到附件中找,如果没有,可以通过安装/删除程序中安装Windows组件,选择安装输入法生成器;在WindowsXP中,可到系统盘Program Files\Windows NT\Accessories目录下找到Imegen.exe。码表原文件是按规则编写的文本文件,格式如下:

[Description] ’描述段
Name=××× ’输入你的输入法名称
MaxCodes=4 ’最大码长
MaxElement=1’信息元是单符还是多符
UsedCodes=abcdefghijklmnopqrstuvwxyz ’输入法中使用的键
WildChar=? ’查询键
NumRules=3 ’查询输入法规则条数
[Rule] ’输入法规则
ca4=p11+p21+p31+n11
ce2=p11+p12+p21+p22
ce3=p11+p21+p31+p32
[Text] ’编码段
人a ’输入“人”的编码是“a

你只要按照上面的格式在[Text]段中输入所有字和对应的编码就行了。如果你想使用别人的码表原文件,可以通过输入法生成器,转换码表文件(*.mb)即可,再修改码表原文件,添加你所需的一些词语,比如你常用的专业术语。

第二步,开始创建输入法。打开输入法生成器,选择“浏览”,选中码表原文件,你的码表原文件中的规则会自动填入其中,你可以进行修改。接下来,单击“转换”按键,将码表原文件转换成码表文件,转换完毕后,选择“创建”按钮,会弹出对话框。在弹出的对话框中,输入版本号,机构名称。如果你想使用自己制作的输入图标以有帮助文件,可以在用户输入法资源中选择“用户定义”,再选择对应的文件,单击“确定”即可。

至此,你的输入法就生成了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
樱凌准
2008-07-25 · TA获得超过243个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:260万
展开全部
比较同意楼上的观点...有点按钮那工夫都直接Ctrl-C了.......
用Message实现如下:

--------------------------------------------------------------

先是N多的API声明...- -``

Private Declare Function GetFocus Lib "user32" () As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function AttachThreadInput Lib "user32" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_CHAR = &H102
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long

Private Sub Command1_Click()

Dim hd As Long
Dim ttHD As Long
Dim msg As String
Dim i As Integer
Dim bytemsg() As Byte

Me.WindowState = 1
msg = Text1.Text
Sleep (1000)

hd = GetForegroundWindow()
ttHD = GetWindowThreadProcessId(hd, 0)
AttachThreadInput ttHD, App.ThreadID, True
hd = GetFocus
AttachThreadInput ttHD, App.ThreadID, False

bytemsg = StrConv(Text1.Text, vbFromUnicode)
For i = LBound(bytemsg) To UBound(bytemsg)
PostMessage hd, WM_CHAR, bytemsg(i), 0
Next i

End Sub

--------------------------------------------------------------

这样点击按钮之后窗口最小化,然后在当前获得焦点的窗口输入Text1中的文字.......

API说明:
GetForegroundWindow() 取得最上层窗口
GetWindowThreadProcessId() 取得线程ID
GetFocus() 获取当前输入焦点处窗口..
AttachThreadInput() 附加输入线程

..然后...Attach线程的原因:

GetFocus()函数可以得到键盘光标所在窗口句柄,但该函数只能得到当前进程内的窗口句柄。所以如果想要取得其他应用程序的键盘光标所在处的窗口句柄,就需要调用AttachThreadInput()函数,将其他窗口线程的输入附加到本窗口线程的输入操作中,这样就可以调用GetFocus()函数得到想要的窗口的句柄了。

附加输入操作的原因在MSDN中的GetFocus()函数的说明里出现过..原文:

HWND GetFocus(void);

Return Values
The handle to the window with the keyboard focus indicates success. NULL indicates that the calling thread’s message queue does not have an associated window with the keyboard focus.

Remarks
Even if GetFocus returns NULL, another thread’s queue may be associated with a window that has the keyboard focus.
Use the GetForegroundWindow function to retrieve the handle to the window with which the user is currently working. You can associate your thread’s message queue with the windows owned by another thread by using the AttachThreadInput function.

--------------------------------------------------------------

但是以上的实现还有一个问题...在向记事本输入文字的过程中不会出现错误,而向Word中发送WM_CHAR消息输入中文时会出现乱码现象....
因为PostMessage的时候在相领两个字节中间插入了一个 '\0'......
- -```
无奈呀无奈呀....我弄了一晚上了.....那个'\0'还是一如既往的如神般存在着吖~~~~~
甚连WM_IME_CHAR都换上了还是不管用....那个'\0'真的是神....

--------------------------------------------------------------

然后......在百度了N久之后...我终于知道了- -``
在"输入法设置"里...把默认语言从"英语(美国) - 美式键盘" 改回原来的 "中文(中国) - 简体中文 -美式键盘".....神般的'\0'终于消失了.....

- -```
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
波镶露lz
2008-07-25
知道答主
回答量:23
采纳率:0%
帮助的人:6.2万
展开全部
我的方法最简单。
首先,把你要输入的内容复制到剪切版,好像是Clipboard.SetText 吧,记不太清了。 然后把word 或 写字版设置成当前窗口,就是先用getwindows(记不太清了) 得到 写字版的 hwnd ,然后用SetWindowPos设置成当前窗口,然后用模拟按键CTRL+v就OK了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
43295811
2008-07-25 · TA获得超过1529个赞
知道大有可为答主
回答量:1701
采纳率:0%
帮助的人:2037万
展开全部
很简单,以下是举例保存为.doc格式就是用word打开,若保存为txt格式即是用记事本打开
Private Sub Command1_Click()
Dim fn As Integer
fn = FreeFile
Open "C:\Documents and Settings\kekecat\桌面\常用.doc" For Output As fn '这里的保存路径,文件名根据你的需要更改
Print #fn, "xxx公司来电" ’你要保存的内容,如果有多行,可以再加一句“print #fn,“xxxxxx””
Close #fn
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式