社区
C++ 语言
帖子详情
求助。编写win控制台程序时 怎么样监控按键输入阿 ?比如Esc,a,b,Ctrl+s
不会种地的老农
2004-12-26 10:33:17
如题 我是要写一个 记事本 像 dos下的 edit一样
如果是字母就显示 如果是系统键就 执行 相应的程序
应该用什么方法好?
...全文
444
24
打赏
收藏
求助。编写win控制台程序时 怎么样监控按键输入阿 ?比如Esc,a,b,Ctrl+s
如题 我是要写一个 记事本 像 dos下的 edit一样 如果是字母就显示 如果是系统键就 执行 相应的程序 应该用什么方法好?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
madmanahong
2004-12-30
打赏
举报
回复
控制台应用ye是PE格式的。
可以直接使用windows api。除了gdi32.dll里面的接口!
fflush
2004-12-30
打赏
举报
回复
32位的程序你不是可以直接处理消息了吗,那样你可以很方便的处理按键输入啊
32位的程序内嵌汇编还没用过,不能提供实质性的意见:)
不会种地的老农
2004-12-30
打赏
举报
回复
试了一下 _getch()确实 可以哈
那就暂时用这个了
直接嵌入汇编 32位程序好办么?
我在写界面的时候 想直接用汇编 就过不行阿 还是用了API
不会种地的老农
2004-12-30
打赏
举报
回复
哦 了解 谢谢各位拉
QD_IceWolf
2004-12-30
打赏
举报
回复
GetConsoleWindow可以得到控制台的窗口句柄。
若只是想控制CTRL+C,可以看SetConsoleCtrlHandler 的帮助。
不会种地的老农
2004-12-30
打赏
举报
回复
我这个是 win32 console 程序阿
getmessage 好像不能用阿???
不起作用
不会种地的老农
2004-12-29
打赏
举报
回复
楼上上上的 说用 WM_KEYDOWN
GetMessage 好像不能再 console程序下 使用阿?
fflush
2004-12-29
打赏
举报
回复
他说的控制台程序的窗口句柄说的是windows中那个console窗口,所以有个句柄
中断应该可以用的,windows的控制台就是模拟了以前的dos环境,如果你在控制台下要监控所有的键盘输入,我觉得与其用键盘钩子,还不如内嵌汇编直接用中断来获取来的简单
另外,我给你提供的那个_getch()的程序是可以检测到ctrl+c的,虽然msdn上说不行,不过我验证过了,这些键会返回特定的ascii码
不会种地的老农
2004-12-29
打赏
举报
回复
控制台程序 有窗口句柄么?
好像句柄是NULL ,GetMessage会得到本线程所有的消息阿
可是在 控制台下不行阿~
中断win32不行吧?
我也想过用 HOOK ,但是这个不太清楚阿
sethook ,能不能 只截取 到程序的 消息呢?
我不想影响其他的程序阿? 怎么过滤?
有人能讲讲细节么?
独孤过儿
2004-12-29
打赏
举报
回复
的确是个困难的问题!
我知道这个函数 cin.get()可以读入回车和别的字符,但是没办法处理ESC和空格键。我已经调试过
了。如果实在没有办法,就只能用中断的方法了。
healer_kx
2004-12-29
打赏
举报
回复
GetMessage要窗口句柄的, 你的控制台也是窗口啊. 也有的:)
要是这个不行, 你就HOOK吧.
不会种地的老农
2004-12-28
打赏
举报
回复
_getch()好像不能处理 ctrl+c 这种 按键吧?
sonic_andy
2004-12-28
打赏
举报
回复
_getch()应该可以
fflush
2004-12-28
打赏
举报
回复
int main ()
{
int i;
while (1)
{
if ((i = _getch ()) == 0 || i == 0xE0)//是控制键
{
cout << _getch () << endl;//得到控制键的asc码
}
else
{
cout << i << endl;//得到一般字符的asc码
}
}
}
ishumin
2004-12-28
打赏
举报
回复
处理WM_KEYDOWN消息,具体查看msdn关于WM_KEYDOWN的论述。
不会种地的老农
2004-12-28
打赏
举报
回复
我用的是 vc6
bioskey() 是tc里的把?
有没有其他什么方法阿?
fflush
2004-12-28
打赏
举报
回复
使用bioskey ()这个函数,可以完成你所需要的功能,具体怎么用我没有现成的代码,你可以到网上搜一下
beyondtkl
2004-12-28
打赏
举报
回复
应该是不行的。。
glimix
2004-12-28
打赏
举报
回复
你可以查看这些键的定义,然后做出switch...case...判断,或者用bioskey(),好像是这个函数。
不会种地的老农
2004-12-27
打赏
举报
回复
没有人知道么?
还是觉得太简单了?
帮帮忙嘛~
加载更多回复(4)
复制的eclipse常用快捷键 和 设计模式理解方式
祝大家工作顺利,一切都好。。。。CSS code . 打开MyEclipse 6.0.1,然后“
win
dow”→“Preferences”
第二章:
WIN
DOWS的一些技巧
第二章:
WIN
DOWS的一些技巧 .如果同
时
有多个窗口打开,想要关闭的话,可以按住shift不放然后点击窗口右 上角的关闭图标. 2.在保存网页前,可以按一下"
ESC
"键(或脱机工作)再保存,这样保存很快 3.用电脑听CD可以不用任何的播放软件,把音箱线直接接到光驱的耳机孔,放入 CD,按光驱上的play键就可以直接听了,这样听歌可以不占用系统资源。 4.MSN中发消息的
时
候是按enter的
vue2+vue3
本博客主要为coderwhy的Vue2网课 + 尚硅谷Vue2+Vue3网课,所整理记录的学习笔记,仅作学习用途,如有侵权,烦请联系本人侵删。同
时
感谢黑马、尚硅谷老师们的辛苦教导付出,如有不足之处,欢迎各位小伙伴、官老爷们多多提意见或建议,感谢!
初学者入门:QBasic编程语言指南
本文还有配套的精品资源,点击获取 简介:QBasic,即Quick Basic,是微软在1980年代推出的简单易学的编程语言,适合初学者和教育领域使用。作为BASIC语言的变种,它提供了易于使用的集成开发环境(IDE),并包含基本的控制结构、数学和字符串处理函数,适用于创建文本游戏、计算工具和图形
程序
。QBasic的内置命令和图形功能进一步简化了编程学习过程,是理解基础编程...
注册表知识与技巧大全
注册表知识和技巧大全 注册表基础: ********系统文件夹:********* 名称 路径 含义 AppData C:\
Win
dows\Application Data 应用
程序
Cache C:\
Win
dows\Temporary Internet Files
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章