| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2319 人关注过本帖
标题:求在VFP中如何发出键盘和鼠标命令?
只看楼主 加入收藏
JHKCHEN
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-5-31
结帖率:10%
收藏
已结贴  问题点数:10 回复次数:12 
求在VFP中如何发出键盘和鼠标命令?
请高手指教
如何在VFP中用命令或函数的形式发出键盘和鼠标命令,就像按键精灵那样,有没有这样的函数?
如果有,应该怎么使用。不甚感谢。
搜索更多相关主题的帖子: 按键精灵 
2011-07-01 22:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
用 Keyboard 命令

授人以渔,不授人以鱼。
2011-07-01 23:15
JHKCHEN
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-5-31
收藏
得分:0 
回复 楼主 JHKCHEN
能不能举个列子
如我想用KEYBOARD命令让键盘自动按一下alt键,该如何表达
2011-07-01 23:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
單獨ALT鍵用VFP內部函數是很難檢測的,但它的效果跟F10鍵一樣,ASCII碼都是-9,用KEYBOARD "{F10}"模擬。
收到的鲜花
  • qjbzjp2011-07-02 15:24 送鲜花  49朵   附言:我很赞同

授人以渔,不授人以鱼。
2011-07-01 23:37
JHKCHEN
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-5-31
收藏
得分:0 
回复 4楼 TonyDeng
非常感谢,这让我有了点眉目
2011-07-01 23:44
JHKCHEN
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-5-31
收藏
得分:0 
回复 4楼 TonyDeng
再次请教高手,我原先的想法是跟按键精灵的功能一样
先运行用foxpro写好的.EXE程序
然后再打开另一个界面(列如一个xls工作表)
再按一下.EXE中已设定好的热启动键
接下来在另一个界面中会自动按.EXE程序中设定好的键盘按键顺序作动作
可现在我发现光标不会移到另一个界面中。似乎.EXE中编写好的键盘按键顺序只能在.EXE中运行。无法在另一个界面中作动作。
请高手再次指点
不胜感谢
2011-07-02 00:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
這樣當然不能工作了,因為FoxPro的.EXE和Excel工作表是兩個獨立的程序,操作系統原則上不會允許這樣兩個獨立的程序互相操控。估計你的要求,是要在FoxPro程序中操控Excel工作表,應該用ActiveX控件,在FoxPro程序中主動啓動Excel,才能直接對Excel操作(不用通過鍵盤緩衝區的),此時,Excel中的一切行為都將由你決定——寫VBA代碼。

授人以渔,不授人以鱼。
2011-07-02 00:28
JHKCHEN
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-5-31
收藏
得分:0 
回复 7楼 TonyDeng
我不是想用foxpro对进行xls控制
我说的另一个界面指的是用其他高级语言编写的程序在运行时出现的界面
以前我用按键精灵可以实现此功能,现在我觉得按键精灵的功能不够用,想用foxpro编写出一个程序达到按键精灵的功能
请指教
2011-07-02 08:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
你這個思路不可行,除非那另一個程序是你自己寫的。不可行的原因有很多,最關鍵之處是這種需求是操作系統級別的,除了必須非常熟悉系統底層細節之外,還要編程語言能夠直接對系統底層操作,這不是VFP的強項,與其用VFP寫這樣的程序,不如用VC。其實編程檢測鍵盤動作,是硬件介面的層次(理論上是要比操作系統還搶先截獲鍵盤按鍵動作,優先掃描鍵盤電路,甚至跟鍵盤的設計有關,不同廠家的鍵盤連按鍵數都不一樣,你必須要知道這些鍵位和鍵信息的資料),比操作系統還要低一級,即驅動程序層次的。也就是說,假如你寫的程序能夠在Windows上運行,多數也只能在某個版本的Windows與DirectX上成功,兼容性很成問題。

我不知道你具體的設計需求到底是怎樣的,但在VFP的角度,我建議你改換思路。

授人以渔,不授人以鱼。
2011-07-02 11:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
《按鍵精靈》是一種鍵盤鈎子,要搶先截獲鍵盤按鍵信息的,所以它提示用戶不要同時運行其它有類似功能的軟件,就是這個原因。由於《按鍵精靈》直接讀取鍵盤硬件和鼠標動作,這種極其危險的行為很可能會被判斷爲木馬或病毒,換句話說,你所需要的知識,應請教專門做木馬和病毒的高手。在操作系統方面,一般都會嚴禁直接讀寫硬件,能不能放行,驅動廠家和遊戲廠家,都會跟操作系統廠商協商過,這就是微軟“霸權”的根本所在——掌握了操作系統,就掌握了一切。蓋茨對BASIC情有獨鍾,才會在BASIC中允許直接讀寫端口、對硬件操控,但其它的語言,都沒有這種功能(在VFP中要對端口操作必須用專用組件),所以做串口或並口通訊類程序,BASIC有先天的優勢。

授人以渔,不授人以鱼。
2011-07-02 11:45
快速回复:求在VFP中如何发出键盘和鼠标命令?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024647 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved