Question about Capture Screen with WME SDK

Joined
Mar 2, 2007
Messages
1
Reaction score
0
hi to all

the following source code used from Windows Media Encoder SDK to capture the screen But I have a problem with it.

I want to capture the every thing in the Screen such as screen of a movie player for example windows media player when it is playing a movie.
But when I capture a screen consist of a movie playing window then the Screen of movie player is bank in captured file.
How Can I capture the all screen consist of a movie player program such as windows media player correctly ?

My code is :

Imports WMEncoderLib

Imports WMPREVIEWLib

Imports System.IO

Public Class Form1

Inherits System.Windows.Forms.Form

#
Region " Windows Form Designer generated code "

Public Sub New()

MyBase.New()

'This call is required by the Windows Form Designer.

InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'Required by the Windows Form Designer

Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer

'It can be modified using the Windows Form Designer.

'Do not modify it using the code editor.

Friend WithEvents Button1 As System.Windows.Forms.Button

<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()

Me.Button1 = New System.Windows.Forms.Button

Me.SuspendLayout()

'

'Button1

'

Me.Button1.Location = New System.Drawing.Point(48, 80)

Me.Button1.Name = "Button1"

Me.Button1.Size = New System.Drawing.Size(216, 23)

Me.Button1.TabIndex = 1

Me.Button1.Text = "Write To file and Close application"

'

'Form1

'

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(292, 266)

Me.Controls.Add(Me.Button1)

Me.Name = "Form1"

Me.Text = "Form1"

Me.ResumeLayout(False)

End Sub

#End Region

Dim Encoder As WMEncoder

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

' Create a WMEncoder object.

Encoder = New WMEncoder

' Retrieve the source group collection and add a source group.

Dim SrcGrp As IWMEncSourceGroup2

Dim SrcGrpColl As IWMEncSourceGroupCollection

SrcGrpColl = Encoder.SourceGroupCollection

SrcGrp = SrcGrpColl.Add("SG_1")

' Add a video and audio source to the source group.

Dim SrcVid As IWMEncVideoSource2

Dim SrcAud As IWMEncAudioSource

SrcVid = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO)

SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO)

' Identify the source files to encode.

SrcVid.SetInput("ScreenCap://ScreenCapture1")

SrcAud.SetInput("Device://Default_Audio_Device")

' Choose a profile from the collection.

Dim ProColl As IWMEncProfileCollection

Dim Pro As IWMEncProfile

Dim i As Integer

Dim lLength As Long

ProColl = Encoder.ProfileCollection

lLength = ProColl.Count

'For i = 0 To lLength - 1

' Console.WriteLine(ProColl.Item(i).Name)

'Next

For i = 0 To lLength - 1

Pro = ProColl.Item(i)

If Pro.Name = "Windows Media Video 8 for Local Area Network (384 Kbps)" Then

SrcGrp.Profile = Pro

Exit For

End If

Next

' Fill in the description object members.

Dim Descr As IWMEncDisplayInfo

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"

' Add an attribute to the collection.

Dim Attr As IWMEncAttributes

Attr = Encoder.Attributes

Attr.Add("URL", "www.adnare.com")

' Specify a file object in which to save encoded content.

Dim File As IWMEncFile

File = Encoder.File

File.LocalFileName = "C:\OutputFile.avi"

' Crop 2 pixels from each edge of the video image.

SrcVid.CroppingBottomMargin = 2

SrcVid.CroppingTopMargin = 2

SrcVid.CroppingLeftMargin = 2

SrcVid.CroppingRightMargin = 2

' Start the encoding process.

Encoder.Start()

End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Encoder.RunState Then

Encoder.Stop()

Application.Exit()

End If

End Sub

End
Class

thanks
bye
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top