zoukankan      html  css  js  c++  java
  • 自己写的屏幕录像及播放软件

    最近工作比较清闲,所以开始捣鼓代码了,在使用电脑的时候会经常需要记录一个东西,但是这东西又是一闪而过,所以就想有一个屏幕录像器,用现成的又都要注册什么的,所以就干脆自己写一个吧,思路很简单:每秒钟截一次屏,保存下来,然后播放器当然就是一秒钟播放一次图片了。自己认为牛X一点的功能就是支持全局热键,废话不多说上主要代码:

            public bool copyScreen(string path)
            {
                //引用命名空间using System.Drawing.Imaging;
                Rectangle rect = new Rectangle();
                rect = Screen.GetWorkingArea(this);
                Size mysize = new Size(rect.Width, rect.Height);
                Bitmap bitmap = new Bitmap(rect.Width, rect.Height);
                Graphics g = Graphics.FromImage(bitmap);
                g.CopyFromScreen(0, 0, 0, 0, mysize);
                string ImageName = path + @"" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
                try
                {
                    //如果程序开启后,文件夹被删除,则重新建立
                    if (!File.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    bitmap.Save(ImageName, ImageFormat.Jpeg);
                }
                catch (Exception ee)
                {                                                       
                    MessageBox.Show("保存出现异常!检查是否空间不足!");
                    return false;
                }
                bitmap.Dispose();
                g.Dispose();
                GC.Collect();
                return true;
            }

    还有一个主要的地方就是这个程序要隐身,我是这么做的:

     public CopyScreen()
            {
                InitializeComponent();
                this.WindowState = FormWindowState.Minimized;
                this.ShowInTaskbar = false;
                SetVisibleCore(false);
            }
    
            protected override void SetVisibleCore(bool value)
            {
                base.SetVisibleCore(value);
            }

    在任务管理器上还是能看见的这也方便调试。因为我要保证程序的唯一性,这就是下一步要说的。程序只能运行一个实例

         static void Main()
            {
                bool isAppRuning = false;
                System.Threading.Mutex mutex=new System.Threading.Mutex(true,System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRuning);
                if (isAppRuning) {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new CopyScreen());
                }
                else
                {
                    Environment.Exit(1);
                }
            }

    还有一个地方就是全局热键,大家自己搞一下吧。

    程序的使用方法:启动后,程序没有界面,按shift+z开始录像,按shift+x停止录像,按ctrl+shift+a是截屏,shift+e程序退出,如果没产生文件程序会自动删除建立的文件夹。产生的文件夹在程序的根部录下。建议可以开机启动,很方便。

    这就是播放器的界面,打开按钮打开刚才录像产生的文件夹,点击开始,开始播放,点击播放区域可以暂停,按开始键继续。

    这基本上就是这两个小软件的全部,只是享受自己制作的快感,希望大牛勿喷。

    想获得编译好的软件以及源码在这里:http://item.taobao.com/item.htm?spm=0.0.0.0.QTHs8l&id=41209799164            ps.接受议价。

    也不是说一定要收钱,但是这也是自己的劳动成果,而且主要代码已分享,希望大家不要黑我。有不懂得可以留评论。有可以优化的地方也希望多提建议。

    我的小店刚开张:http://shop113034356.taobao.com/。程序员不容易,希望大家多多支持,有钱的捧个人场,没钱的捧个人场,点点链接,收藏店铺什么的。

    如果你觉得有用请点”点赞“/

  • 相关阅读:
    Django之POST GET与前后端交互
    Django中用户权限模块
    Django运算表达式与Q对象/F对象
    Django中Middleware中间件
    Form表单 JSON Content-type解析
    浅析ajax原理与用法
    浅析Django之session与cookie
    浅谈HTTP协议
    Django 项目搭建(ubuntu系统)
    h5 和之前版本的区别
  • 原文地址:https://www.cnblogs.com/im0330/p/3978798.html
Copyright © 2011-2022 走看看