iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >基于C++编写一个键盘提示音程序
  • 209
分享到

基于C++编写一个键盘提示音程序

摘要

目录准备资源播放声音获取键盘按键完整代码首先讲一下思路,这次制作的小黑子相当于键盘提示音,输入J,N,T,M,会发出“鸡你太美”的声音,连续按下JNTM则会发

首先讲一下思路,这次制作的小黑子相当于键盘提示音,输入J,N,T,M,会发出“鸡你太美”的声音,连续按下JNTM则会发出“你干嘛啊,哎呦”的声音。

完整的工程和代码以及成品已经上传至百度网盘,喜欢的同学可以下载:

链接:https://pan.baidu.com/s/1IjPBB1dhz-ZPSP8SpKWq8Q  提取码: 5smw

准备资源

首先我们要下载鸡你太美的音频并剪辑好,然后再准备一个可爱的图片当作图标。我已经准备好了一份,想要的同学可以直接用。

将准备好的资源添加到工程中。

之后不要忘记在主程序引用资源文件

#include "resource.h"

播放声音

使用PlaySound函数即可

 PlaySound((LPCTSTR)IDR_WAVE1, NULL, SND_RESOURCE | SND_SYNC);

获取键盘按键

使用GetAsyncKeyState获取键盘按键状态。为了方便使用,我使用了宏定义

#define KEY_DOWN(key_name) ((GetAsyncKeyState(key_name)& 0x8001)?1:0)
#define KEY_UP(key_name) ((GetAsyncKeyState(key_name)& 0x8001)?0:1)

然后就是获取键盘输入了

for (;;)
    {
        //鸡
        if (KEY_DOWN('J')) {
            if (hasPress[0] == false)
            {
                hasPress[0] = true;
                niganma = 1;
                thread t1(PlaySounds,0);
                t1.detach();
            }
        }
        if (KEY_UP('J'))
        {
            hasPress[0] = false;
        }
        //你
        if (KEY_DOWN('N')) {
            if (hasPress[1] == false)
            {
                hasPress[1] = true;
                if (niganma == 1)
                {
                    niganma = 2;
                }
                else
                {
                    niganma = 0;
                }
                thread t1(PlaySounds, 1);
                t1.detach();
            }
        }
        if (KEY_UP('N'))
        {
            hasPress[1] = false;
        }
        //太
        if (KEY_DOWN('T')) {
            if (hasPress[2] == false)
            {
                hasPress[2] = true;
                if (niganma == 2)
                {
                    niganma = 3;
                }
                else
                {
                    niganma = 0;
                }
                thread t1(PlaySounds, 2);
                t1.detach();
            }
        }
        if (KEY_UP('T'))
        {
            hasPress[2] = false;
        }
        //美
        if (KEY_DOWN('M')) {
            if (hasPress[3] == false)
            {
                hasPress[3] = true;
                if (niganma == 3)
                {
                    thread t1(PlaySounds, 4);
                    t1.detach();
                    niganma = 0;
                }
                else {
                    thread t1(PlaySounds, 3);
                    t1.detach();
                }
                
            }
        }
        if (KEY_UP('M'))
        {
            hasPress[3] = false;
        }
    }

完整代码

所以,完整的代码如下:

// XiaoHeiZi.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "resource.h"
#include <iOStream>
#include<thread>
#include <coNIO.h>
#include<stdlib.h>
#include<windows.h>
#include<iostream>
#include <Mmsystem.h> 
#pragma comment(lib, "Winmm.lib") 
#define KEY_DOWN(key_name) ((GetAsyncKeyState(key_name)& 0x8001)?1:0)
#define KEY_UP(key_name) ((GetAsyncKeyState(key_name)& 0x8001)?0:1)
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 
using namespace std;
 
bool ModifyRegedit(bool bAutoRun)
{
    char pFileName[MAX_PATH] = { 0 };
    DWord dwRet = GetModuleFileNameA(NULL, (LPSTR)pFileName, MAX_PATH);
    std::cout << pFileName;
    HKEY hKey;
    LPCSTR lpRun = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
    long lRet = ReGopenKeyExA(HKEY_LOCAL_MacHINE, lpRun, 0, KEY_WRITE, &hKey);
    if (lRet != ERROR_SUCCESS)
    {
        std::cout << "failed";
        return false;
    }
      
 
    if (bAutoRun)
        RegSetValueA(hKey, "XiaoHeizi", (DWORD)REG_SZ, (LPCSTR)pFileName, MAX_PATH);
    else
        RegDeleteValueA(hKey, "XiaoHeizi");
    ReGCloseKey(hKey);
    return true;
}
 
 
static void PlaySounds(int i)
{
    if (i == 0)
    {
        PlaySound((LPCTSTR)IDR_WAVE1, NULL, SND_RESOURCE | SND_SYNC);
    }
    else if (i == 1)
    {
        PlaySound((LPCTSTR)IDR_WAVE4, NULL, SND_RESOURCE | SND_SYNC);
    }
    else if (i == 2)
    {
        PlaySound((LPCTSTR)IDR_WAVE5, NULL, SND_RESOURCE | SND_SYNC);
    }
    else if (i == 3)
    {
        PlaySound((LPCTSTR)IDR_WAVE3, NULL, SND_RESOURCE | SND_SYNC);
    }
    else
    {
        PlaySound((LPCTSTR)IDR_WAVE2, NULL, SND_RESOURCE | SND_SYNC);
    }
    
}
int main()
{
    ModifyRegedit(true);
    bool hasPress[4];
    for (int i = 0; i < 4; i++) {
        hasPress[i] = false;
    }
    int niganma = 0;
    for (;;)
    {
        //鸡
        if (KEY_DOWN('J')) {
            if (hasPress[0] == false)
            {
                hasPress[0] = true;
                niganma = 1;
                thread t1(PlaySounds,0);
                t1.detach();
            }
        }
        if (KEY_UP('J'))
        {
            hasPress[0] = false;
        }
        //你
        if (KEY_DOWN('N')) {
            if (hasPress[1] == false)
            {
                hasPress[1] = true;
                if (niganma == 1)
                {
                    niganma = 2;
                }
                else
                {
                    niganma = 0;
                }
                thread t1(PlaySounds, 1);
                t1.detach();
            }
        }
        if (KEY_UP('N'))
        {
            hasPress[1] = false;
        }
        //太
        if (KEY_DOWN('T')) {
            if (hasPress[2] == false)
            {
                hasPress[2] = true;
                if (niganma == 2)
                {
                    niganma = 3;
                }
                else
                {
                    niganma = 0;
                }
                thread t1(PlaySounds, 2);
                t1.detach();
            }
        }
        if (KEY_UP('T'))
        {
            hasPress[2] = false;
        }
        //美
        if (KEY_DOWN('M')) {
            if (hasPress[3] == false)
            {
                hasPress[3] = true;
                if (niganma == 3)
                {
                    thread t1(PlaySounds, 4);
                    t1.detach();
                    niganma = 0;
                }
                else {
                    thread t1(PlaySounds, 3);
                    t1.detach();
                }
                
            }
        }
        if (KEY_UP('M'))
        {
            hasPress[3] = false;
        }
    }
}

以上就是基于c++编写一个键盘提示音程序的详细内容,更多关于C++键盘提示音程序的资料请关注编程网其它相关文章!

--结束END--

本文标题: 基于C++编写一个键盘提示音程序

本文链接: https://www.lsjlt.com/news/198978.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于C++编写一个键盘提示音程序
    目录准备资源播放声音获取键盘按键完整代码首先讲一下思路,这次制作的小黑子相当于键盘提示音,输入J,N,T,M,会发出“鸡你太美”的声音,连续按下JNTM则会发...
    99+
    2023-03-08
    C++实现键盘提示音程序 C++键盘提示音程序 C++键盘提示音
  • 基于C++怎么编写一个键盘提示音程序
    这篇文章主要讲解了“基于C++怎么编写一个键盘提示音程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于C++怎么编写一个键盘提示音程序”吧!准备资源首先我们要下载鸡你太美的音频并剪辑好,...
    99+
    2023-07-05
  • 基于Python编写一个自动关机程序
    目录1、实现效果2、实现步骤3、全部代码1、实现效果 2、实现步骤 模块导入 import os,sys,time from PyQt5 import QtCore,QtWidge...
    99+
    2024-04-02
  • 基于Python编写一个语音合成系统
    目录背景语音合成系统准备工作步骤代码实现背景 一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等。 语音合成系统 其实就是一个基于...
    99+
    2024-04-02
  • 基于C++编写一个Json解析器
    目录前言代码JsonSerialize.hJsonSerialize.cppmain.cpp前言 这个是我闲着没事写的,这个解析器还有两个问题 1.读取中文的时候会出错,这个应该是在...
    99+
    2023-03-09
    C++编写Json解析器 C++ Json解析器 C++ Json解析
  • 基于Python编写一个微博抽奖小程序
    目录导语开发工具环境搭建先睹为快原理简介导语 带大家写个微博自动抽奖小程序吧,motivation和之前的B站自动抽奖小程序一样: 不想内卷了,整个B站全自动抽奖的小程序吧,万一不小...
    99+
    2024-04-02
  • 基于C++编写一个文章生成器
    目录1.概况2.基本要求3.程序分析3.1 文件流读写3.2 建立前后缀关系3.3 字符串切片3.4 变长数组4.代码实现4.1 函数:数组加长4.2 类wordpair定义4.3 ...
    99+
    2023-03-19
    C++文章生成器 C++文章生成 C++生成器
  • 基于Python怎么编写一个语音合成系统
    这篇文章主要介绍了基于Python怎么编写一个语音合成系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Python怎么编写一个语音合成系统文章都会有所收获,下面我们一起来看看吧。背景一直对语音合成系统比较...
    99+
    2023-06-29
  • 基于C++编写一个简单的服务器
    本文使用上一期写的反射类,另外我发现<WinSock2.h>这个头文件里有RegisterClass 这个结构,还有typedef RegisterClass Regis...
    99+
    2023-03-14
    C++编写简易服务器 C++编写服务器 C++服务器
  • 基于C++怎么编写一个Json解析器
    这篇文章主要介绍了基于C++怎么编写一个Json解析器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于C++怎么编写一个Json解析器文章都会有所收获,下面我们一起来看看吧。代码JsonSerialize.h...
    99+
    2023-07-05
  • 基于Python怎么编写一个微博抽奖小程序
    本篇内容主要讲解“基于Python怎么编写一个微博抽奖小程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么编写一个微博抽奖小程序”吧!开发工具Python版本:3.7.8相关...
    99+
    2023-06-30
  • 基于C++如何编写一个文章生成器
    这篇“基于C++如何编写一个文章生成器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C++如何编写一个文章生成器”文章吧...
    99+
    2023-07-05
  • 基于Python编写一个B站全自动抽奖的小程序
    目录导语开发工具环境搭建原理简介导语 应好友邀请,帮他写了个小程序,功能类似于实时监控自己关注的UP主,如果关注的UP主中有人发布了抽奖的动态,就自动参与这个抽奖。这样就能不错过任何...
    99+
    2024-04-02
  • 基于Python编写一个根据姓名测性别的小程序
    目录导语一、准备环节1.1安装环境二、准备素材三、开始敲代码3.1导入模块3.2定义界面3.3预测性别3.4读取数据 3.5附完整的源码四、效果展示总结导语 以前上英语课老...
    99+
    2024-04-02
  • 如何通过C++编写一个简单的音频播放器程序?
    随着计算机技术的进步,音频播放器已经成为人们的日常生活中必不可少的工具。而在C++编程领域,如何编写一个简单的音频播放器程序呢?在本文中,我们将会探讨这个话题。一、 程序的基本框架编写一个音频播放器程序的时候,最重要的是要明确程序的基本框架...
    99+
    2023-11-04
    C++ 编写 音频播放器
  • 基于Python编写一个点名器的示例代码
    目录前言主界面添加姓名查看花名册使用指南 名字转动功能完整代码前言 想起小学的时候老师想点名找小伙伴回答问题的时候,老师竟斥巨资买了个点名器。今日无聊便敲了敲小时候老师斥巨...
    99+
    2024-04-02
  • 基于C++怎么编写一个简单的服务器
    这篇文章主要讲解了“基于C++怎么编写一个简单的服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于C++怎么编写一个简单的服务器”吧!先写个简易的controller基类继承反射基类,...
    99+
    2023-07-05
  • 如何用C#编写一个Windows服务程序
    今天小编给大家分享一下如何用C#编写一个Windows服务程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。添加引用Wind...
    99+
    2023-07-05
  • 基于C语言编写一个简单的抽卡小游戏
    目录效果图展示开始的界面输入1输入10输入0实现代码test4.26.c许愿.cgame.h下载小奔最近学了C语言不少的东西,但是想用学到的东西来搞一个小游戏。 不过小奔就不做那些猜...
    99+
    2024-04-02
  • python编写第一个交互程序步骤示例教程
    Input()函数编写 1.编写一个稍微复杂一点的程序。使用Input()函数编写一个请用户输入名字的程序。 (1)打开IDLE开发环境,然后选择“File”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作