演示操作记事本
Private Sub Command1_Click()
Shell "NotePad", vbNormalFocus '打开记事本
SendKeys "PowerBASIC中国", True '键入一些字符
SendKeys "%FA", True '打开另存为对话框
SendKeys "C:\PowerBASIC.txt", True '输入文件名
SendKeys "{TAB}{TAB}", True '将焦点定位到保存按钮上
SendKeys "{ENTER}", True '回车
SendKeys "%(FX)", True '退出记事本
MsgBox "您的文件已经保存到 C:\PowerBASIC.txt 中!"
End Sub
这段代码可以用VB模拟键盘输入,控制记事本的打开、录入、另存为&保存。
但是所有这些操作都是可见的,即使将Shell "NotePad", vbNormalFocus中的vbNormalFocus参数改为vbHide或vbMinimizedFocus都不能让这些操作变为后台执行。请问:该如何修改,使上述所有操作都变为后台操作,而不会弹出到桌面最前来执行?
附:
Shell 常数
可在代码中的任何地方使用下列常数代替实际值:
数 值 描述
vbHide 0 窗口是隐藏的,并且焦点被传递给隐藏窗口。
vbNormalFocus 1 窗口拥有焦点,并且恢复到原来的大小与位置。
vbMinimizedFocus 2 窗口缩小为图符并拥有焦点。
vbMaximizedFocus 3 窗口最大化并拥有焦点。
vbNormalNoFocus 4 窗口被恢复到最近一次的大小与位置。当前活动窗口仍为活动窗口。
vbMinimizeNoFocus 6 窗口缩小为图符。当前活动窗口仍为活动窗口虽然可以用Print之类的语句完成,但是用上述方法就不能解决了吗?
Private Sub Command1_Click()
Shell "NotePad", vbNormalFocus '打开记事本
SendKeys "PowerBASIC中国", True '键入一些字符
SendKeys "%FA", True '打开另存为对话框
SendKeys "C:\PowerBASIC.txt", True '输入文件名
SendKeys "{TAB}{TAB}", True '将焦点定位到保存按钮上
SendKeys "{ENTER}", True '回车
SendKeys "%(FX)", True '退出记事本
MsgBox "您的文件已经保存到 C:\PowerBASIC.txt 中!"
End Sub
这段代码可以用VB模拟键盘输入,控制记事本的打开、录入、另存为&保存。
但是所有这些操作都是可见的,即使将Shell "NotePad", vbNormalFocus中的vbNormalFocus参数改为vbHide或vbMinimizedFocus都不能让这些操作变为后台执行。请问:该如何修改,使上述所有操作都变为后台操作,而不会弹出到桌面最前来执行?
附:
Shell 常数
可在代码中的任何地方使用下列常数代替实际值:
数 值 描述
vbHide 0 窗口是隐藏的,并且焦点被传递给隐藏窗口。
vbNormalFocus 1 窗口拥有焦点,并且恢复到原来的大小与位置。
vbMinimizedFocus 2 窗口缩小为图符并拥有焦点。
vbMaximizedFocus 3 窗口最大化并拥有焦点。
vbNormalNoFocus 4 窗口被恢复到最近一次的大小与位置。当前活动窗口仍为活动窗口。
vbMinimizeNoFocus 6 窗口缩小为图符。当前活动窗口仍为活动窗口虽然可以用Print之类的语句完成,但是用上述方法就不能解决了吗?
解决方案 »
- 用windows media player控件播放ASX文件时,控制播放进度的问题
- 如何使用VB获得网站的股票报价
- 招软件工程师
- Help~ 如何判断一个对象是不是数组 或者 如何判断一个控件是不是数组
- 谁有买过MSN源码联盟的软件~!想问下他们的源码是不是真的?
- 急!format的问题!
- 着急呀,请问在VB6中怎么样把信息直接写到word文档中,跟写到.txt文件中有什么区别?谢谢
- 如何获取datagrid中光标所在位置的记录中没有的项目?
- 哪里有用IP查地理位置的数据库下载啊?
- 如何通过API来得到Windows打印机?
- 有关VB的网站不多了,精品网站就更少了.大家常浏览哪些网站呢?
- 有没有办法做远程打印。
或者top>=screen.height
用DDE方法來做。
Open "C:\PowerBASIC.txt" For output as #1
print #1, "PowerBASIC中国"
Close #1
固然很容易就实现了,但是并不是所有的第三方软件都能够这样直接输入信息,比如Photoshop。请问用API的SendMessage即可做到应该如何编写代码呢?
我试过用SendMessage打开另存为对话框,但是就无法得到另存为对话框里面的文件名text框的句柄,没能够将信息发送到Text文本框中,换句话说就是没办法用SendMessage操作另存为对话框,不知高人有何高招?
:) 另外,如何把notepad得left>=screen.width?
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOP = 0
Private Const SWP_SHOWWINDOW = &H40Private Sub Command1_Click()
Dim h As Long
h = FindWindow("Notepad", "未定标题 - 记事本")
Call SetWindowPos(h, HWND_TOP, -100, 0, 300, 300, SWP_SHOWWINDOW)
End Sub这样可以将每个显示出来的窗口都隐藏起来(就是移动到屏幕以外去)不管是系统的对话框,还是第三方软件的窗口!就是比较麻烦一些,用Spy++来一个一个寻找,呵呵
移出屏幕外,但是使用 Sendkey 还是会影响正常操作
具体的模拟按键的消息请自己搜索,很多