Vb.net 屏幕捕获代码在WinForms中运行正常,但不是作为服务运行

Vb.net 屏幕捕获代码在WinForms中运行正常,但不是作为服务运行,vb.net,Vb.net,我想创建一个用于屏幕捕获的Windows服务,但它不起作用 进程到达ScrenCapture.Start(),但它什么也不做,也不会抛出错误 如果我在Windows窗体中进行测试,同样的代码也能正常工作: 代码: 可能会发生什么?您检查了事件日志吗?我检查了事件查看器,它没有任何错误。看起来您没有设置捕获设备。我对Expression编码器了解不够,无法判断这是否是问题所在-请查看此页面并向下滚动到“使用屏幕捕获”部分。这个例子是用c#编写的,但是你应该能够理解它。如果没有,请访问此站点并粘贴c

我想创建一个用于屏幕捕获的Windows服务,但它不起作用

进程到达
ScrenCapture.Start()
,但它什么也不做,也不会抛出错误

如果我在Windows窗体中进行测试,同样的代码也能正常工作:

代码:


可能会发生什么?

您检查了事件日志吗?我检查了事件查看器,它没有任何错误。看起来您没有设置捕获设备。我对Expression编码器了解不够,无法判断这是否是问题所在-请查看此页面并向下滚动到“使用屏幕捕获”部分。这个例子是用c#编写的,但是你应该能够理解它。如果没有,请访问此站点并粘贴c#代码。你应该能搞定剩下的。好的,谢谢。我会查一下你的建议!
Imports Microsoft.Expression.Encoder.ScreenCapture
Imports isc.isc_utility
Public Class isc_utility_screen_capture
Dim ScrenCapture As ScreenCaptureJob = New ScreenCaptureJob()
Shared SrvDir As String =   System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location())
Function StartRecording(ByVal FileName As String)
    Dim Dir = SrvDir
    Dim FileToRecord As String
    FileToRecord = Dir + "\" + FileName + ".wmv"
    Try
        ScrenCapture.OutputScreenCaptureFileName = FileToRecord
        ScrenCapture.CaptureMouseCursor = True
        ScrenCapture.Start()
        WriteEventLogInformation("Capturing Video.... " + FileName + " " + Date.Now)
        Return FileName
    Catch ex As Exception
        WriteEventLogError(ex.Message)
        Return "-1"
    End Try
End Function

Function StopRecording()
    Try
        ScrenCapture.Stop()
        Return 1
    Catch ex As Exception
        WriteEventLogError(ex.Message)
        Return -1
      End Try
   End Function
End Class