030集——自动弹出对话框、选择文件并播放wav音频文件(winform窗体)——C#学习笔记

news2024/11/16 6:38:36

如图所示,效果如下:

步骤如下:

新建一个winform窗体,双击界面,进入代码区:

复制(下面代码中命名空间内的代码)到(你的命名空间下),运行。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp6
{
    public partial class Form1 : Form
    {
        private TextBox textBox1;
        private Button button1;

        public Form1()
        {
            InitializeComponent();
            this.button1 = new System.Windows.Forms.Button();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(192, 40);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(88, 24);
            this.button1.TabIndex = 0;
            this.button1.Text = "Browse";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            // 
            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(8, 40);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(168, 20);
            this.textBox1.TabIndex = 1;
            this.textBox1.Text = "FIle path";
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13);
            this.ClientSize = new System.Drawing.Size(292, 266);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.button1);
            this.Name = "Form1";
            this.Text = "Platform Invoke WinSound C#";
            this.ResumeLayout(false);
            this.PerformLayout();

        }
        [System.Runtime.InteropServices.DllImport("winmm.DLL", EntryPoint = "PlaySound", SetLastError = true, CharSet = CharSet.Unicode, ThrowOnUnmappableChar = true)]
        private static extern bool PlaySound(string szSound, System.IntPtr hMod, PlaySoundFlags flags);

        [System.Flags]
        public enum PlaySoundFlags : int
        {
            SND_SYNC = 0x0000,
            SND_ASYNC = 0x0001,
            SND_NODEFAULT = 0x0002,
            SND_LOOP = 0x0008,
            SND_NOSTOP = 0x0010,
            SND_NOWAIT = 0x00002000,
            SND_FILENAME = 0x00020000,
            SND_RESOURCE = 0x00040004
        }


        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog1 = new OpenFileDialog();

            dialog1.Title = "Browse to find sound file to play";
            dialog1.InitialDirectory = @"c:\";
            dialog1.Filter = "Wav Files (*.wav)|*.wav";
            dialog1.FilterIndex = 2;
            dialog1.RestoreDirectory = true;

            if (dialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = dialog1.FileName;
                PlaySound(dialog1.FileName, new System.IntPtr(), PlaySoundFlags.SND_SYNC);
            }

        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(四)webAPI的发布和访问

我们已经创建了一个core webapi项目,基于.net6.0,默认包含WeatherForecastController控制器。(可参见前几期的博文)。 1.项目发布 使用命令 dotnet publish -o publish来发布项目。(也可以右击项目->发布->文件…

【2024高教社杯全国大学生数学建模竞赛】B题模型建立求解

目录 1问题重述1.1问题背景1.2研究意义1.3具体问题 2总体分析3模型假设4符号说明(等四问全部更新完再写)5模型的建立与求解5.1问题一模型的建立与求解5.1.1问题的具体分析5.1.2模型的准备 目前B题第一问的详细求解过程以及对应论文部分已经完成&#xff…

贝锐蒲公英远程视频监控方案:4G入网无需公网IP,跨品牌统一管理

在部署视频监控并实现集中监看时,常常会遇到各种挑战。比如:部分监控点位布线困难、无法接入有线宽带,或是没有固定公网IP,难以实现远程集中监看;已有网络质量差,传输延迟大、丢包率高,远程实时…

Windows系统怎么免费远程控制电脑?

本篇文章中,将介绍二种Windows远程控制电脑方法。 方法一:系统自带远程桌面 在Windows系统中有一个叫远程桌面的功能,它可以通过电脑的IP地址任意的远程控制局域网中另一台电脑。 step1 在另外一台电脑上按“Windows + R”键打开运行框,输入“sysdm.cpl”并单击“确定”…

面向Data+AI时代的数据湖创新与优化(附Iceberg案例)

面向DataAI时代的数据湖创新与优化(附Iceberg案例) 前言面向DataAI时代的数据湖创新与优化 前言 在当今数字化时代,数据和人工智能(AI)的融合已成为推动企业发展和创新的关键力量。数据湖作为一种重要的数据存储和处理…

遵循ISA-88和ISA-95标准带来的好处是什么?

遵循ISA-88和ISA-95标准带来的好处是什么? 遵循ISA-88和ISA-95标准可以为企业带来多方面的好处,这些好处主要体现在提升生产效率、优化资源管理、增强质量控制以及促进系统集成等方面。以下是详细的分析: 遵循ISA-88标准的好处 1、…

TypeScript练习网站推荐

TypeScript练习网站推荐 网站地址:typescript-exercises typescript-exercises 是一个学习 TypeScript 的交互式平台,提供了一些 TypeScript 练习题,帮助开发者通过动手实践提高对 TypeScript 的理解和掌握。该网站非常适合想要从基础到高级…

Linux系统编程 --- 【2、3】文件IO与标准IO

一、文件IO 1.1 文件描述符 1.1.1 学习前的疑问? 1. 什么是文件描述符? 2. 文件描述符的作用是什么? 3. 文件描述符是怎样进行使用的? 1.1.2 文件描述符是什么以及作用是什么? 文件描述符(File Desc…

深圳市专精特新预计9月初申报!申报成功后,有哪些好处?

广东省专精特新中小企业已开放申报,9月30日申报截止!深圳市专精特新中小企业预计9月初开放(请以官方通知为准,推荐使用深科信项目申报通知订阅功能~) 我们整理专精特新中小企业认定有哪些好处?认定流程如何…

视频监控管理平台LntonAIServer视频智能分析噪声检测应用场景

在视频监控系统中,噪声问题常常影响到视频画面的清晰度和可用性。噪声可能由多种因素引起,包括但不限于低光环境、摄像机传感器灵敏度过高、编码压缩失真等。LntonAIServer通过引入噪声检测功能,旨在帮助用户及时发现并解决视频流中的噪声问题…

推荐一个小巧的截屏软件,无需安装,双击使用,功能强大

今天分享一款强大、小巧的截屏软件——ScreenCapture,一共不到4M。 ScreenCapture无需安装,在使用的时候双击执行即可,有时候存放在U盘中,直接双击启动截屏即可。 同时在截屏的时候,会显示截屏区域的大小。 支持跨屏幕…

【神经网络系列(中级)】小数据学习中的“特征提取+推理”模型【通俗理解】

【通俗理解】小数据学习中的“特征提取推理”模型 关键词提炼 #小数据学习 #特征提取 #推理模型 #机器学习 #数据效率 第一节:小数据学习与“特征提取推理”模型概述 1.1 小数据学习的挑战 在小数据场景下,模型训练面临数据稀缺的挑战,难…

C,C++ 宏定义## 的使用

宏定义## 的使用 C语言中宏定义## 的使用 宏定义## 的使用 #define LV_color(x,y,z) x##y##z 文章目录 宏定义## 的使用宏定义## 的使用 宏定义## 的使用 #include<stdio.h> #include<stdlib.h>#define LV_color(x,y,z) x##y##z int main() {printf("LV_col…

.net core接口项目中的国产神器SqlSugar

SQLSugar 是一款基于 .NET Core 平台的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;其轻量级、易用性和强大的功能&#xff0c;使其在 .NET 社区中备受欢迎。结合其在接口项目中的应用&#xff0c;以下几点可以证明 SQLSugar 的学习和使用具有必要性和技术上的先…

70%的人都答错了的面试题,vue3的ref是如何实现响应式的?

本文将通过debug的方式带你搞清楚当ref接收的是对象和原始类型时&#xff0c;分别是如何实现响应式的。注&#xff1a;本文中使用的vue版本为3.4.19。 看个demo 还是老套路&#xff0c;我们来搞个demo&#xff0c;index.vue文件代码如下&#xff1a; <template><div&g…

顶升搬运小车与激光叉车在卡板物流及仓储效率提升中的应用

一、项目概述 本项目旨在实现卡板的自动化运输与仓储管理&#xff0c;通过引入顶升搬运小车&#xff08;AGV&#xff09;与激光叉车两种自动化设备&#xff0c;提高运输效率&#xff0c;减少人工干预&#xff0c;并确保流程的顺畅与安全。 二、产品特性与需求分析 考虑到产品…

fastadmin 清除插件缓存报错

Argument 1 passed to Symfony\Component\VarExporter\VarExporter::export() must be an instance of Symfony\Component\VarExporter\mixed, array given, called in F:\work\awebsite\oeob\vendor\karsonzhang\fastadmin-addons\src\addons\Service.php on line 404 我用的…

在DevEco Studio中安装通义灵码

下载插件离线包 离线压缩包 打开设置 打开插件 安装 5.安装后找到右侧图标&#xff0c;登录阿里账号。

Qt TabWidget添加多个窗口,实现分页窗体布局

Qt TabWidget添加多个窗口窗体&#xff0c;可关闭与打开 点击按钮可判断是否打开&#xff0c;避免重复打开 使用Qt中的TabWidget组件创建一个简单的分页窗体布局。点击按钮时&#xff0c;会新增一个窗体并添加到TabWidget中。每个子窗体能动态获取父窗体指针以进行操作 分别…

SpringBoot2:请求处理原理分析-接口参数解析原理

一、知识回顾 我们知道&#xff0c;接口的参数&#xff0c;一般都要配上注解来一起使用。 不同的参数注解&#xff0c;决定了传参的方式不同。 为什么会这样&#xff1f; 如果让你设计接口参数解析&#xff0c;你会怎么做&#xff1f; 本篇就来探究springboot底层是如何通过参…