救命啊~~如何在命令行程序中定义热键!

shuncy 2005-07-24 07:49:22
我想在命令行程序中定义一个热键,按这个(或者多个)键后,会执行一段指定的代码!
在图形界面程序中还能找到监听器,不过在命令行程序中却没有这些监听器,不知道怎么才能实现我要的功能呢?
注意:不是在一个输入状态,程序的屏幕会显示一些信息(即时的),按键后会作一些设置的改变,如更新屏幕显示的内容等等,不要说用图形界面程序来写,因为是个监控程序,不能运行图形界面~在此拜托大家啦!!
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuncy 2005-07-26
  • 打赏
  • 举报
回复
谢谢 DanielYWoo(绿色毒汁) 的详细解答哈,看来是没有什么好办法了:(
我还是换个方式去实现它吧:D
star_str 2005-07-25
  • 打赏
  • 举报
回复
up
DanielYWoo 2005-07-25
  • 打赏
  • 举报
回复
jni去调用本地api,比如Win32SDK加载hook

这样你会失去跨平台的能力,好像没什么办法了,能不能变通一下
还有,监控程序为什么不能用图形界面?
prok 2005-07-25
  • 打赏
  • 举报
回复
只能jni了。做hook
shuncy 2005-07-25
  • 打赏
  • 举报
回复
谢谢laughsmile(海边的星空)的提示咯,不知道有没有例子可以参考一下咯?急用..拜托了:)
laughsmile 2005-07-25
  • 打赏
  • 举报
回复
c语言监听全局的键盘事件,java用jni调用c,来进行监听
shuncy 2005-07-25
  • 打赏
  • 举报
回复
还是没人知道吗??
shuncy 2005-07-25
  • 打赏
  • 举报
回复
:(~~顶~~
DanielYWoo 2005-07-25
  • 打赏
  • 举报
回复
>> 只能是这样的吗?那Linux命令行程序下按F1,F2,F3等等也是能够切换窗口的呀?这些是怎么实现的呀?
这是平台上gcc或者cc本身提供的字符图形库,我记得Borland C++就有这样的库,还有字体等,Java没有字符图形库,所以写不出来dos下的edit那样的程序

>> 不能用图形界面是因为程序是跑在工控机上面的,这上面装的Linux是没装图形模块的~所以..只能用命令行程序:(
这种用Java得不多,用C吧

>> 还有,我记得Linux下面很多文本编辑程序(不是图形界面的)也是有热键功能的呀,它们总不会去调用WIN32的一些东东了吧?这又是如何实现的?..
由程序库,底层调用操作系统的API, 同第一个问题
loreorion 2005-07-25
  • 打赏
  • 举报
回复
你加一个线程专门用来接收输入,再把输入传给工作线程
shuncy 2005-07-25
  • 打赏
  • 举报
回复
TO:DanielYWoo(绿色毒汁)
只能是这样的吗?那Linux命令行程序下按F1,F2,F3等等也是能够切换窗口的呀?这些是怎么实现的呀?
不能用图形界面是因为程序是跑在工控机上面的,这上面装的Linux是没装图形模块的~所以..只能用命令行程序:(
还有,我记得Linux下面很多文本编辑程序(不是图形界面的)也是有热键功能的呀,它们总不会去调用WIN32的一些东东了吧?这又是如何实现的?..
tonyzhou_cn 2005-07-24
  • 打赏
  • 举报
回复
帮你顶一下,
mituzhishi 2005-07-24
  • 打赏
  • 举报
回复
这个不好搞,因为一旦没有界面,

程序就无法获得焦点,没有焦点你还怎么运行呢?

比如按键ctrl+F,默认是windows的搜索功能出现,

而不是你的程序响应。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧