一.需求提出

客服小妹跟我说,每天要统计新加好友数,得先记下昨天的数目,然后查看今天的数目,还要相减,打字,记录——好麻烦!

又说,客户多的时候,忙起这头忘了那头,文字记录备忘又太费劲!

我说,赐你一个软件!于是有了下面这个东西。

二.主要界面

      

三.主要功能简介

1 .可定时弹出主界面,输入今日好友数,计算出新加好友数,并将今日好友数存盘。

2.统计信息显示在界面上,并且写入word文件中以备查看,并自动拷贝至剪切板,方便复制。

3.可语音备忘,录制语音消息,并保存在文件夹中。

4.可下拉列表查看文件,并选中播放。

5.可将原始文件转录成MP3文件。

四.编码实现

1.好友统计功能相关实现

先设计两个属性,直接对应于两个文件,这样一来,既能以字段的风格来操作文件,又能将变量持久化到硬盘上,以保存状态。

        public int TodayFriendsCount
        {
            get
            {
                if (!File.Exists("todayFriendsCount.dat"))
                {
                    File.WriteAllBytes());
                }
                );
            }
            set { File.WriteAllBytes("todayFriendsCount.dat", BitConverter.GetBytes(value)); }
        }

        public bool IsHandled
        {
            get
            {
                if (!File.Exists("HandledSign.dat"))
                {
                    File.WriteAllBytes("HandledSign.dat", BitConverter.GetBytes(false));
                }
                );
            }
            set
            {
                File.WriteAllBytes("HandledSign.dat", BitConverter.GetBytes(value));
                this.toolStripLabel_isHandled.Text = this.IsHandled ? "今日已处理" : "今日未处理";
                this.toolStripLabel_isHandled.ForeColor = this.IsHandled ? Color.Red : Color.Blue;
            }
        }

计算按钮事件处理方法

        private void button1_Click(object sender, EventArgs e)
        {
            //已经处理过
            if (this.IsHandled)
            {
                DialogResult dialogResult = MessageBox.Show("今日已经执行过,是否还要继续操作?", "提醒", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.No)
                {
                    this.ReFocusInput();
                    return;
                }
            }

            if (String.IsNullOrEmpty(this.textBox_todayCount.Text.Trim()))
            {
                MessageBox.Show("输入不能为空!");
                this.textBox_todayCount.Focus();
                return;
            }          

            int todayFriendsCountNew = int.Parse(this.textBox_todayCount.Text.Trim());
            int incremeFriendsCount = todayFriendsCountNew - this.TodayFriendsCount;
            this.richTextBox_ShowNewCount.Text = string.Format("今日新加好友:{0} - {1} = {2}",
                                                                todayFriendsCountNew,
                                                                this.TodayFriendsCount,
                                                                incremeFriendsCount);
            Clipboard.SetText(this.richTextBox_ShowNewCount.Text);          

            string text = string.Format("{0}   {1}\r\n", DateTime.Now.ToShortDateString(), this.richTextBox_ShowNewCount.Text);
            this.AppendFriendsDiary(text);

            //重置基础参数
            this.ReSetInitialParameter(todayFriendsCountNew, true);
            //重聚焦输入框
            this.ReFocusInput();
        }

2.语音备忘功能相关实现

设计一个byte数组用于存放语音数据

 ];

采集发生时,将声音数据数组拼接到字段数组上。

        void microphoneCapturer_AudioCaptured(byte[] data)
        {
            this.audioData = BufferJointer.Joint(this.audioData, data);
            this.decibelDisplayer1.DisplayAudioData(data);
        }

停止录制时写入文件

        private void button_stop_Click(object sender, EventArgs e)
        {
            this.microphoneCapturer.Stop();//停止采集
            this.originalFileManager.WriteFile(this.audioData);//写文件
            this.LoadAduioFileList();
            this.ShowWorkStatus(false);
        }

播放选中文件

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            if (this.ExamineSelectNull())
            {
                return;
            }
            this.audioPlayer.Play(this.originalFileManager.ReadFile(this.toolStripComboBox1.SelectedText));
        }

转录为MP3文件

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            if (this.ExamineSelectNull())
            {
                return;
            }

            this.MakeAudioFile();

            DialogResult dialogResult = MessageBox.Show("转存成功,是否打开目录查看?", "提醒", MessageBoxButtons.YesNo);
            if (dialogResult == System.Windows.Forms.DialogResult.Yes)
            {
                this.mP3FileManager.OpenDirectory();
            }
        }

五.源码下载

下载: 客服备忘系统(包含语音备忘功能、语音播放功能、并能将语音文件转录成MP3)

客服小妹是如何泡到手的——C#定时提醒·语音录制·语音播放·文件转录Demo源码——倾情奉献!的更多相关文章

  1. 用SignalR 2.0开发客服系统[系列1:实现群发通讯]

    前言 交流群:195866844 先说一下我为什么会写这个博客吧,(首先说一下,我是一个小菜鸟,讲的不好请指导 - -,)  前段时间公司的项目涉及到在B/S上使用即时通讯,(其实就是做一个B/S的客 ...

  2. 用SignalR 2.0开发客服系统[系列2:实现聊天室]

    前言 交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室 ...

  3. 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]

    前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 真的很感谢大家的支持,今天发表系列3 ...

  4. 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]

    前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...

  5. 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]

    前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...

  6. C#开发微信门户及应用(7)-微信多客服功能及开发集成

    最近一直在弄微信的集成功能开发,发现微信给认证账户开通了一个多客服的功能,对于客户的咨询,可以切换至客服处理的方式,而且可以添加多个客服进行处理,这个在客户咨询比较多的时候,是一个不错的营销功能.微信 ...

  7. 使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)

    近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有 ...

  8. 微信小程序客服消息使用指南

    客服消息使用指南 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 功能介绍 用户可使用小程序客服消息功能,与小程序的客服人 ...

  9. wpf 客户端 添加qq客服咨询

    使用qq推广 站点:http://shang.qq.com/v3/widget.html 复制里面的html代码: <a target=" src="http://wpa.q ...

随机推荐

  1. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  2. 【初学python】使用python调用monkey测试

    目前公司主要开发安卓平台的APP,平时测试经常需要使用monkey测试,所以尝试了下用python调用monkey,代码如下: import os apk = {'j': 'com.***.test1 ...

  3. “fixed+relative==absolute”——对BFC的再次思考

    好久没写博客了,刚好今天跨年夜没约到什么妹子,在家宅着不如写点东西好了. 需求 昨天晚上,给公司年会做一个移动端的投票页面,遇到一个UI优化的问题: · 正文内容少于一屏时,投票提交按钮固定显示在页面 ...

  4. python 入门笔记

    1.pip包安装 pip install *** pip 中http和https代理设置(/etc/profile) 2.强制保存 :w !sudo tee % 3.cffi是python调用C的包 ...

  5. 2Sum

    用哈希表(unordered_map)使得时间复杂度从O(n*n)降到O(n),空间复杂度从O(1)增到O(n):一边找一边插入哈希表 注意 在C++11以前要使用unordered_map需要 #i ...

  6. 【开源】专业K线绘制[K线主副图、趋势图、成交量、滚动、放大缩小、MACD、KDJ等)

    这是一个iOS项目雅黑深邃的K线的绘制. 实现功能包括K线主副图.趋势图.成交量.滚动.放大缩小.MACD.KDJ,长按显示辅助线等功能 预览图 最后的最后,这是项目的开源地址:https://git ...

  7. Android(安卓)-------CardView

    1.activity_main.xml <android.support.v7.widget.CardView android:id="@+id/cardView" andr ...

  8. iOS网络4——Reachability检测网络状态

    一.整体介绍 前面已经介绍了网络访问的NSURLSession.NSURLConnection,还有网页加载有关的webview,基本满足通常的网络相关的开发. 其实在网络开发中还有比较常用的就是网络 ...

  9. ECharts数据图表系统? 5分钟上手!

    目录: 前言 简介 方法一:模块化单文件引入(推荐) 方法二:标签式单文件引入 [前言] 最近在捣鼓各种插件各种框架,发现这个ECharts还是比较不错的,文档也挺全的,还是中文的,给大家推荐一下. ...

  10. svnserver hook python

    在使用中可能会遇到的错误排除 :1.Error: svn: 解析"D:\www\test"出错,或svn: E020024: Error resolving case of 'D: ...