You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言程序中实现系统鼠标光标控制?

Windows 10环境下Turbo C++实现鼠标光标功能操作指南

首先需要明确:Turbo C++是16位DOS时代的开发工具,在Windows 10下运行本质是依赖DOSBox模拟16位DOS环境,所以鼠标操作不能调用Windows原生API,只能通过DOS中断0x33实现,所有操作仅在DOSBox模拟窗口内生效,无法直接控制系统级鼠标。


前置准备

  • 确认Turbo C++已在Win10下通过DOSBox完成配置,可正常编译运行基础C语言代码
  • 鼠标功能实现依赖dos.h头文件提供的中断调用函数,无需引入额外第三方库

核心功能实现步骤

1. 初始化鼠标

调用0x33中断的0号功能,检测并初始化鼠标:

#include <dos.h>
// 返回值为1说明初始化成功,为0说明未检测到鼠标
int initMouse() {
    union REGS in, out;
    in.x.ax = 0;
    int86(0x33, &in, &out);
    return out.x.ax;
}

2. 显示/隐藏鼠标光标

  • 显示光标:调用0x33中断的1号功能
void showMouse() {
    union REGS in, out;
    in.x.ax = 1;
    int86(0x33, &in, &out);
}
  • 隐藏光标:调用0x33中断的2号功能
void hideMouse() {
    union REGS in, out;
    in.x.ax = 2;
    int86(0x33, &in, &out);
}

3. 获取鼠标位置和按键状态

调用0x33中断的3号功能,可同时获取光标坐标、按键状态:

// btn参数:位0为1表示左键按下,位1为1表示右键按下
// x、y参数:返回模拟窗口内的坐标,范围为X:0~639,Y:0~199
void getMouseInfo(int *btn, int *x, int *y) {
    union REGS in, out;
    in.x.ax = 3;
    int86(0x33, &in, &out);
    *btn = out.x.bx;
    *x = out.x.cx;
    *y = out.x.dx;
}

4. 完整测试代码

#include <dos.h>
#include <stdio.h>
#include <conio.h>

int initMouse() {
    union REGS in, out;
    in.x.ax = 0;
    int86(0x33, &in, &out);
    return out.x.ax;
}

void showMouse() {
    union REGS in, out;
    in.x.ax = 1;
    int86(0x33, &in, &out);
}

void getMouseInfo(int *btn, int *x, int *y) {
    union REGS in, out;
    in.x.ax = 3;
    int86(0x33, &in, &out);
    *btn = out.x.bx;
    *x = out.x.cx;
    *y = out.x.dx;
}

int main() {
    int btn, x, y;
    if (!initMouse()) {
        printf("未检测到可用鼠标,程序退出\n");
        return 1;
    }
    showMouse();
    printf("按任意键终止程序\n");
    // 循环打印鼠标状态
    while (!kbhit()) {
        getMouseInfo(&btn, &x, &y);
        printf("\r坐标: X=%d Y=%d | 按键状态: %d", x, y, btn);
    }
    getch();
    return 0;
}

注意事项

  • 如果需要自定义光标样式,可调用0x33中断的9号功能配置自定义的指针图案
  • 以上所有实现仅在DOSBox模拟环境内生效,如果你需要操作Windows 10系统级的鼠标光标,需要更换编译器为MinGW、MSVC等调用Win32 API实现,Turbo C++无法支持该需求

内容的提问来源于stack exchange,提问作者Kuroko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:30:05