我想在命令行程序中定义一个热键,按这个(或者多个)键后,会执行一段指定的代码!
在图形界面程序中还能找到监听器,不过在命令行程序中却没有这些监听器,不知道怎么才能实现我要的功能呢?
    注意:不是在一个输入状态,程序的屏幕会显示一些信息(即时的),按键后会作一些设置的改变,如更新屏幕显示的内容等等,不要说用图形界面程序来写,因为是个监控程序,不能运行图形界面~在此拜托大家啦!!

解决方案 »

  1.   

    这个不好搞,因为一旦没有界面,程序就无法获得焦点,没有焦点你还怎么运行呢?比如按键ctrl+F,默认是windows的搜索功能出现,而不是你的程序响应。
      

  2.   

    c语言监听全局的键盘事件,java用jni调用c,来进行监听
      

  3.   

    谢谢laughsmile(海边的星空)的提示咯,不知道有没有例子可以参考一下咯?急用..拜托了:)
      

  4.   

    jni去调用本地api,比如Win32SDK加载hook这样你会失去跨平台的能力,好像没什么办法了,能不能变通一下
    还有,监控程序为什么不能用图形界面?
      

  5.   

    TO:DanielYWoo(绿色毒汁)
       只能是这样的吗?那Linux命令行程序下按F1,F2,F3等等也是能够切换窗口的呀?这些是怎么实现的呀?
       不能用图形界面是因为程序是跑在工控机上面的,这上面装的Linux是没装图形模块的~所以..只能用命令行程序:(
       还有,我记得Linux下面很多文本编辑程序(不是图形界面的)也是有热键功能的呀,它们总不会去调用WIN32的一些东东了吧?这又是如何实现的?..
      

  6.   

    >>   只能是这样的吗?那Linux命令行程序下按F1,F2,F3等等也是能够切换窗口的呀?这些是怎么实现的呀?
    这是平台上gcc或者cc本身提供的字符图形库,我记得Borland C++就有这样的库,还有字体等,Java没有字符图形库,所以写不出来dos下的edit那样的程序>>   不能用图形界面是因为程序是跑在工控机上面的,这上面装的Linux是没装图形模块的~所以..只能用命令行程序:(
    这种用Java得不多,用C吧>>   还有,我记得Linux下面很多文本编辑程序(不是图形界面的)也是有热键功能的呀,它们总不会去调用WIN32的一些东东了吧?这又是如何实现的?..
    由程序库,底层调用操作系统的API, 同第一个问题
      

  7.   

    谢谢 DanielYWoo(绿色毒汁) 的详细解答哈,看来是没有什么好办法了:(
    我还是换个方式去实现它吧:D