【问题标题】:Is it possible to press F5 key in C?是否可以在C中按F5键?
【发布时间】:2014-01-08 03:39:06
【问题描述】:

是否可以通过C程序按F5键,因为我们点击程序的.exe然后刷新系统。

NUMLOCKCAPSLOCK 也有同样的问题

【问题讨论】:

  • NUMLOCKCAPSLOCK 是修饰键,与 F5 这样的键不同。
  • 其实我完全不知道,你可以说是C系统编程的初学者
  • 你要在什么系统上编程?
  • 我用的是win7,有Turbo C,其实我想通过中断来实现
  • 是的,有可能。您将如何做到这一点在很大程度上取决于您所针对的操作系统,除其他外(Linux/Unix 将与 Windows 大不相同)。您需要通过edit 提供更多有关您所询问内容的信息,以便获得答复。

标签: c windows


【解决方案1】:

在 Windows 中,有 GetAsyncKeyState API。但对于标准 C 或 C++,没有任何可移植性。它都是特定于操作系统的。所以对于 WIN32_API 我有简单的程序,你可以根据你的要求进行修改

#include <stdio.h> 
#include <limits.h> 
#include <stdlib.h> 
#include <windows.h> 

int main ( void )
{
  short esc = 0;

  while ( !esc ) {
    esc = GetAsyncKeyState ( VK_ESCAPE );

    if ( GetAsyncKeyState ( VK_UP ) & SHRT_MAX )
      puts ( "Up arrow is pressed" );
    else if ( GetAsyncKeyState ( VK_DOWN ) & SHRT_MAX )
      puts ( "Down arrow is pressed" );
    else if ( GetAsyncKeyState ( VK_LEFT ) & SHRT_MAX )
      puts ( "Left arrow is pressed" );
    else if ( GetAsyncKeyState ( VK_RIGHT ) & SHRT_MAX )
      puts ( "Right arrow is pressed" );
  }

  return EXIT_SUCCESS;
}

此外,您还可以接收原始输入功能来扫描键盘代码并为特定键定义自己的宏。因此,根据原始输入,您可以根据您的要求检测密钥。

【讨论】:

  • 这是一个繁忙的循环。它会检测在该程序之外进行的按键操作。这真的不是前进的方向。
猜你喜欢
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多