1. 程式人生 > >用c#實現螢幕錄影功((成功)

用c#實現螢幕錄影功((成功)

using WMEncoderLib;
using WMPREVIEWLib;
using System.IO;

WMEncoder Encoder;
private void Form1_Load(object sender, System.EventArgs e)
{
Encoder = new WMEncoder();
IWMEncSourceGroup  SrcGrp;
IWMEncSourceGroupCollection SrcGrpColl;
SrcGrpColl = Encoder.SourceGroupCollection;
SrcGrp = SrcGrpColl.Add("SG_1");

IWMEncSource  SrcVid;
IWMEncSource  SrcAud;
SrcVid = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);


SrcAud.SetInput("Default_Audio_Device", "Device", "");
SrcVid.SetInput("ScreenCapture1", "ScreenCap", "");


IWMEncProfileCollection ProColl;
IWMEncProfile Pro;
int i;
long lLength;

ProColl = Encoder.ProfileCollection;
lLength = ProColl.Count;

for( i=0 ; i <lLength-1 ; i++ )
{
Pro = ProColl.Item(i);
if( Pro.Name == "Windows Media Video 8 for Local Area Network (384 Kbps)" )
{
SrcGrp.set_Profile(Pro);
break;
}
}

IWMEncDisplayInfo Descr;
Descr = Encoder.DisplayInfo;
Descr.Author = "Armoghan Asif";
Descr.Copyright = "Copyright information";
Descr.Description = "Text description of encoded content";
Descr.Rating = "Rating information";
Descr.Title = "Title of encoded content";

IWMEncAttributes Attr;
Attr = Encoder.Attributes;
Attr.Add("URL", "www.adnare.com");

IWMEncFile File;
File = Encoder.File;
File.LocalFileName = @"C:/OutputFile.avi";
// SrcVid.CroppingBottomMargin = 2;
// SrcVid.CroppingTopMargin = 2;
// SrcVid.CroppingLeftMargin = 2;
// SrcVid.CroppingRightMargin = 2;


Encoder.Start();
}

private void button1_Click(object sender, System.EventArgs e)
{
this.Encoder.Stop();

// if( Encoder.RunState )
// {
// Encoder.Stop();
// Application.Exit();
// }
}

相關推薦

c#實現螢幕錄影(成功

using WMEncoderLib; using WMPREVIEWLib; using System.IO; WMEncoder Encoder; private void Form1_Load(object sender, System.EventAr

C++實現螢幕截圖全屏截圖

最近維護的專案,在某些情況下,光有日誌還不行,於是添加了截圖功能,特定情況下,會自動截圖,輔助分析,從而改程序序。以下是截圖實現程式碼。 void CDemoDlg::ScreenShot(void) { CWnd *pDesktop = GetDesktopWi

C#實現螢幕錄影

{         有關係統托盤         Win32         成員         /////////////////////////////////////////////////////////////////////////////////////////////

C#實現將大寫日期年/月/日轉化為小寫日期阿拉伯數字的

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 日期轉換 {     class Program     {         st

jQuery 實現表單驗證轉載

失去焦點 cli on() 獲得 itl 文本框 特殊 體驗 格式 jQuery 官方 API 地址: http://api.jquery.com/ 在線引用 jQuery:http://code.jquery.com/ ——選自《鋒利的jQuery》(第2版)第5章的

Python列表實現棧,佇列

用列表實現佇列        佇列和棧實現的功能差不多,無非是入佇列,出佇列,佇列長度等等。其中,入佇列可以用列表的append()來實現,出佇列可以使用pop(0)來實現。由於這個實現方法比較簡單,因此它也是最低效的。append方法入佇列和棧實

Python列表實現棧,佇列

用列表實現棧 棧方法 列表實現 S.push() L.append() S.pop() L.pop() S.top()

vuei18n實現多語言支援國際化

vue-i18n是用於多語言適配的vue外掛,主要用於前端專案的國際化應用。 個簡單的例子: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&

qemu實現tsi107橋摸索

通過上一篇的分析,知道了 mac_newworld中的 TYPE_U3_AGP_HOST_BRIDGE; TYPE_UNI_NORTH_AGP_HOST_BRIDGE;TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE;TYPE_UNI_NO

C# 實現傳送手機簡訊可用

前幾天分享了java如何對接簡訊介面的例項,這兩天技術經理又佈置了任務要求在老的網站也要對接簡訊介面,撿起了之前學習的c#,但是因為年代久遠,所有在技術方面略有不熟悉的,就參考了其他同行的程式碼~~加以修改,現在把原始碼分享給大家,希望可以給大家一個幫助,當然簡

節點實現一個棧結構stack

    前一篇文章用了陣列對棧進行了簡單地實現,本文擬使用linkedList進行實現。在java的connection中,有一個linkedlist子類,俗稱為連結串列,linkedlist,節點Node在java中是這樣定義的: Private static class

C語言擴充套件lua模組入門

#include <lua.h> #include <lauxlib.h> #include <lualib.h> static void encode_sha(const char* src, char* des) { /* *sha-hash /

Java實現面向物件程式設計入門

一、◆抽象和封裝1、現實世界是“面向物件”的,面向物件就是採用“現實模擬”的方法設計和開發程式。從現實中抽象出類:①發現類 ②發現類的屬性 ③發現類的方法用面向物件的思想描述面向物件的世界,符合人類的思維習慣。(類圖用於分析和設計類,更直觀、容易理解。)2、面向物件設計的過

css3實現各種圖示效果2

寫在前面 寫的一模一樣的css樣式,結果卻導致原來出來不一樣的效果圖。 用chrome的開發者工具檢視,比較起來還是一模一樣的css樣式,可為什麼會出現不一樣的placeholder效果呢?一個白色粗體,一個灰色正常字型。 找了老半天找不到原因 後來才發現是我同事寫的框架css裡面程式碼的一句

MVC實現簡單的檔案圖片上傳下載功能

  一 實現效果簡單說明 上傳:上傳圖片,將圖片儲存到伺服器,並將相關資訊寫入資料庫。 下載:在頁面展示圖片下載列表的縮圖,點選圖片將其載入到本地。   二.View Index中程式碼 <h2>圖片上傳區</h2> <hr/> &l

基於C++實現視訊聊天軟體

初來乍到,接觸到音視訊領域,在這期間參考開原始碼和專案程式碼,用C++做了一個類似QQ的視訊聊天Demo,這裡將其中開源的視訊通訊技術分享給大家。 工具: vs2010,MFC製作介面,網路傳輸機制(Socket等), VFW視訊採集,FFmpeg

C#——實現物體的移動unity

using UnityEngine;using System.Collections; public class shiftTest: MonoBehaviour { public flooat speed; float AD; floatWS; void Update()

跟我一起用C++實現Java Thread庫

本文適合對多執行緒Thread原理比較感興趣的同學閱讀,需要具備一定的C++和Java程式設計知識。 一、背景 最近學習Java多執行緒程式設計,發現Java標準庫中的java.lang.Thread介面定義十分友好簡潔,使用起來十分方便。不禁想起之前用C/C++寫多執行緒

pytorch實現一個神經網路

對於影象資料的resize問題: pytorch裡有幾種resize資料的方法: 1.torchvision.transforms.Resize:這個我始終沒用成,好像是伺服器上安裝的anacond

c++實現環形陣列的最大子陣列之和結對

結對作業 1.分解問題,將環形陣列,剪開變成一個一維陣列。 2.用一維陣列的最大子陣列和解決。 對於一個環形陣列,對每一個一維陣列的表示共有n-1種 原始碼如下: 1 #include<iostream> 2 using namespace std; 3 int max_