代码之家  ›  专栏  ›  技术社区  ›  G-Man

.NET代码将特定表单活动+音频录制到avi

  •  1
  • G-Man  · 技术社区  · 16 年前

    我在找一些C代码。。或.NET组件在我的屏幕(而不是整个桌面)上记录窗体的活动以及音频,类似于Camtasia之类的程序所允许的操作。

    2 回复  |  直到 16 年前
        1
  •  2
  •   John Saunders    16 年前

    视频部分其实很简单。您所需要的只是一个每秒运行20次的计时器,它可以将窗体的画布作为帧保存到图像文件中。然后用这些图片创建一个动画。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            tVideo.Start();
        }
    
        int i = 0;
    
        private void tVideo_Tick(object sender, EventArgs e)
        {
            String lFile = String.Format("c:\\{0}.bmp", i);
            SaveAsBitmap(this, lFile);
    
            i++;
        }
    
        public void SaveAsBitmap(Control aCtrl, string aFileName)
        {
            if (File.Exists(aFileName))
                File.Delete(aFileName);
    
            Graphics lGraphics = aCtrl.CreateGraphics();
    
            Bitmap lImage = new Bitmap(aCtrl.Width, aCtrl.Height);
    
            aCtrl.DrawToBitmap(lImage, new Rectangle(0, 0, aCtrl.Width, aCtrl.Height));
    
            lImage.Save(aFileName);
            lImage.Dispose();
        }
    }
    

    要添加光标,您必须使用鼠标x、y和鼠标单击时的事件保留一些变量。然后把它添加到图片中。

    为此,您必须使用DirectX/OpenGl/XNA。我认为想法是一样的。 对于音频,DirectX也是如此。

    我的完整资料来源: http://deathsquad.pl/archiwum/Inne/so/answer-1934452.rar

    一些DirectX音频示例: http://www.codeproject.com/KB/directx/audiosav.aspx

        2
  •  1
  •   Omer Mor    16 年前

    退房 Gallio :这是一个很棒的测试框架,它内置了屏幕录制API。

    这篇文章展示了几个例子: http://blog.bits-in-motion.com/2009/09/announcing-gallio-and-mbunit-v31.html

    推荐文章