未找到

未发布 MailBee.NET Objects退回邮件教程(二):POP3部分
by Harriet666 keys 分享 1503567760428
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,
简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。

MailBee.NET Objects介绍和试用点击查看>>>
 
 
本文主要介绍了SMTP服务器退回邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
在上期的SMTP部分中,我们将退回的电子邮件发送到指定的单个电子邮件地址。
 
每封退回的电子邮件都包含失败的电子邮件地址(以及其他信息)。这个失败的地址是我们想知道的。这个任务看起来很简单 - 你需要做的是扫描退回的
邮件以确定地址的典型字段。但是有一个隐藏的危险:每个邮件服务器都有自己的邮件退回格式。虽然它们几乎具有相同的“From”和“主题”字段,但是退回地址可以在邮件的任何位置。MailEnable服务器的典型退回邮件如下所示:
From: POSTMASTER@domain.com
To: jdoe@domain.com
Subject: Message Delivery Failure

MailEnable: Message Delivery Failure.

The following recipient(s) could not be reached: 

Recipient: [SMTP: bill@domain.com] Reason: The message could not be delivered because the domain name (domain.com) does not appear 

to be registered.

函数GetInvalidEmailAddressME()检查邮件是否被退回,并从退回的邮件中提取失败的地址。由于退回邮件格式不同,此功能仅对MailEnable服务器有效。例如,如果你正在使用Communigate Pro服务器,则退回消息如下所示:
From: MAILER-DAEMON@domain.local
To: jdoe@localhost Subject:
Undeliverable mail:

Failed to deliver to ''
 
正如你所看到的,这个退回的邮件与前一个几乎相同。使用哪个服务器并不重要,退回信息总是有From,To和Subject字段,退回信息在其正文中有失败的地址。函数GetInvalidEmailAddressCP()与前一个函数几乎相同; 区别仅在于检查邮件字段并搜索失败的地址。支持尽可能多的退回电子邮件格式至关重要。这就是为什么你需要修改GetInvalidEmailAddress()函数,以适应服务器使用的退回电子邮件格式。
 
注意:在某些情况下,你可能需要扫描退回的电子邮件以获取其他信息。如果由于暂时的问题,退回的邮件到达,则不要删除电子邮件地址:邮箱超过配
额,邮件服务器关闭等。退回邮件可以分为两种类型:硬邮件和软邮件。如果是不存在的帐户或域,则会发生硬性退回。其他故障,如完整的邮箱或暂时
不可用的域,则是软性退回。你可以为数据库中的每个地址进行计算。也许下一次尝试发送邮件到具有一些软性退回的地址时将成功。
 
代码示例:
在此示例中,我们从指定的帐户中检索退回的电子邮件,然后从每个退回的电子邮件中提取失败的电子邮件地址。失败的地址传递给RemoveEmailFromDatabase子程序,该子程序必须从数据库中删除失败的地址。应用程序还会从服务器中删除退回的电子邮件,以避免下次处理。
C#:
// Create POP3 object
Pop3 pop = new Pop3();

// Enable logging to file
pop.Log.Enabled = true;
pop.Log.Filename = @"C:\log.txt";
pop.Log.Clear();

// Connect to POP3 server
pop.Connect("mail.domain.com");
pop.Login("bounce", "secret");

// Download headers and bodies of all messages.
MailMessageCollection msgs = pop.DownloadMessageHeaders(1, -1, -1);
                        
// Loop through all messages in the mailbox
foreach (MailMessage msg in msgs)
{
        string strLine = msg.BodyPlainText;
        Console.WriteLine("From: " + msg.From.Email);
                                
        // Get failed email address
        string str_invalid_email =  GetInvalidEmailAddressME(msg);

        // If str_invalid_email is non-empty then failed email 
        // address was found
        if (str_invalid_email.Length > 0)
        {
                // Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email);

                // Display invalid adress
                Console.WriteLine("Invalid email: " + str_invalid_email);                

                // Delete bounced email from server to avoid
                // processing it next time
                pop.DeleteMessage(msg.IndexOnServer);
        }
}

// Disconnect from POP3 server
pop.Disconnect();

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for MailEnable servers
static string  GetInvalidEmailAddressME(MailMessage msg)
{
        string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Delivery Failure") == -1)
{ 
                return "";
        }
        if (msg.From.ToString().IndexOf("POSTMASTER") == -1)
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("SMTP:");

        // Check if bounced message report contains "Recipient:" field
        if (i_start == -1)
        {
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for Communigate Pro servers
static string  GetInvalidEmailAddressCP(MailMessage msg)
{
string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Undeliverable mail") == -1) 
        {
                return "";
        }
        if (msg.From.ToString().IndexOf("MAILER-DAEMON") == -1) 
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("to '<");

        // Check if bounced message report contains 
        // "Failed to deliver to " field
        if (i_start == -1)
        { 
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// This function must remove (or disable) specified
// email address from mailing list
static void RemoveEmailFromDatabase(string str_invalid_email)
{
// TODO: Add your code here                        
}
 
VB.NET:
Dim pop As New Pop3

' Enable logging to file
pop.Log.Enabled = True
pop.Log.Filename = "C:\log.txt"
pop.Log.Clear()

' Connect to POP3 server
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")

' Download headers and bodies for all messages.
Dim msgs As MailMessageCollection = pop.DownloadMessageHeaders(1, -1, -1)

' Loop through all messages in the mailbox
Dim msg As MailMessage
For Each msg In msgs
        Dim strLine As String = msg.BodyPlainText
        Console.WriteLine("From: " + msg.From.Email)

        ' Get failed email address
        Dim str_invalid_email As String = GetInvalidEmailAddressME(msg)

        ' If str_invalid_email is non-empty then failed email 
        ' address was found
        If str_invalid_email.Length > 0 Then
                'Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email)

                ' Display invalid address
                Console.WriteLine("Invalid email: " & str_invalid_email)

                ' Delete bounced email from server to avoid
                ' processing it next time
                pop.DeleteMessage(msg.IndexOnServer)
        End If
Next
Console.ReadLine()

' Disconnect from POP3 server
pop.Disconnect()

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for MailEnable servers
Function GetInvalidEmailAddressME(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Delivery Failure") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("POSTMASTER") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("SMTP:")

        ' Check if bounced message report contains "Recipient:" field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for Communigate Pro servers
Function GetInvalidEmailAddressCP(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Undeliverable mail") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("MAILER-DAEMON") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("to '<")

        ' Check if bounced message report contains 
        ' "Failed to deliver to " field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' This function must remove (or disable) specified
' email address from mailing list
Sub RemoveEmailFromDatabase(ByVal str_invalid_email As String)
        ' TODO: Add your code here                        
End Sub
未发布 Windows 10用于Fluent Design的UWP社区工具包蓄势待发
by Harriet666 keys 分享 1504861717599
Microsoft继续为即将推出Windows 10 FCU(Fall Creators Update)在做着准备工作其中部分工作是目前正在开展的开发者工具和资源的升级。已完成的工作包括:Visual Studio 2017 15.4版已支持UWP应用使用.NET Standard 2.0;UWP社区工具包(UCT,UWP Community Toolkit)的升级已完成,可以使用Microsoft新提供的“流畅设计语言”(Fluent Design Language)。“流畅”体系最终将成为新的Windows 10用户界面。

UCT使得Windows 10开发人员及对该平台感兴趣的人可以查看UWP应用的构建方式,并试用UWP平台提供多种可用控件。UCT 2.0推出了四个新添加的控件,分别是InAppNotification、TextToolbar、Expander和Menu。其中Menu控件已完成升级,支持下划线特性和非字符串内容, 同时改进了处于非缺省位置菜单的动画和行为。

InAppNotification控件为UWP应用提供了一种通知窗口生成动作,类似于IE在下载文件时所给出的通知窗口。Textbar空间提供了富文本或Markdown格式文本的编辑功能。该控件还支持用户使用定制的Formatter对象添加对更多格式的处理功能。

Microsoft将在转向UCT第二版后不再提供对VS2015的支持,开发人员应使用VS2017。Microsoft已经给出了UCT的入门文档,并在Windows Store上提供了一些可构建UCT演示的例子应用。工具包的源代码以MIT许可提供于GitHub上,其中包括了完整的发行说明。(例子应用是使用C#编写的。)
有用(0)

未发布 地图服务器控件GIS Map Server v3.6发布,新增航空影像数据集功能
by Harriet666 keys 分享 1490336708034

GIS Map Server是一款地图服务器控件,它将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用。GLG地图服务器控件将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用。当与工具包一起使用时,一个综合的GIS对象将负责完成变焦、摇摄、协同转换与地图转化,还会将地图服务器整合到GLG绘图功能中。当工具包在处理地图顶端的动态图标的转换时,还能实时地对它们进行更新。

GIS Map Server更新至v3.6版本,增加了航空影像数据集等功能。

最新GIS Map Server点击下载>>>

新的地图服务器功能:
  • 新版本增加了与大型卫星一起使用的航空影像数据集功能。
  • 卫星数据集,如World 15m Satellite Images,在没有图像数据的海洋区域使用黑色。当显示此图像时,黑色区域应视为透明。这是通过使用TRANSPARENT COLOR OPAQUE图层类型,并将黑色指定为透明颜色来实现的。透明色彩精确度也用于消除JPEG图像有损压缩的现象。
  • 航空数据集,例如右图所示的US 0.5m Aerial Images,使用在UTM投影中创建的tiles。要在不同的投影中显示这个图块,需要对其进行转换(未投影)以使用lat / lon坐标。由于UTM矩形在lat / lon坐标中不是矩形,因此转换的图块将在填充有黑色的边缘处具有未使用的区域。当显示此图像时,这个黑色区域也应该被视为透明的。此外,由于tiles是从UTM投影转换而来的,tiles将出现重叠并且一个tiles中的透明区域的数据将由另一个重叠的tiles提供。
                         US 0.5m Aerial Images示例
     
  • 地图服务器已经支持透明颜色属性。添加以下列出的新层属性,能更好地渲染卫星和航空图像数据集。
    • 背景颜色属性可以定义用于渲染此图层中的透明像素颜色的RGB值。
    • 背景图层属性可以定义用于渲染此图层中的透明像素而不是背景颜色的另一个图层的名称。
    • TILES OVERLAP属性,此图层包含具有透明像素的重叠图块。当地图服务器在地图上呈现像素时,它会搜索包含该像素数据的图块。如果它找到一个tile并且像素是透明的,它将继续搜索,直到找到为像素提供(非透明)数据的源图块。如果未找到源图块,则将使用背景颜色(如果已定义)或使用背景图层中的像素数据来渲染该像素。如果没有定义背景颜色和背景层,则不会渲染像素,也不会渲染地图的底层或背景颜色。 
【本文作者慧都Elyn,转载请注明出处】 
未发布 UI工具包Xamarin.Forms更新至v2.3.5-pre3,与.NET Standard项目兼容
by Harriet666 keys 分享 1497863074339
Xamarin.Forms是一个跨平台、原生支持UI的工具包,允许开发者轻松创建用户界面。这些用户界面可以通过安卓、iOS和Windows Phone共享,使用目标平台的原生控件进行渲染,让每个平台上Xamarin.Forms应用的界面外观搭配得当。
 
【Xamarin.Forms试用版点击下载】

v2.3.5-pre3更新内容

  • Xamarin.Forms现在与.NET Standard项目兼容!并非所有创建功能都能正常工作。
  • 改进:Device.RuntimePlatform现在在WinRT和UWP上返回。
  • 改进:使用新的AutomationProperties可能会影响Android上的UI测试。AutomationId、Name以及HelpText将设置本地ContentDescription属性,Name和HelpText优先于AutomationId(Name和HelpText将被连接起来)。这意味着任何正在寻找AutomationId的测试将会失败,如果Name或HelpText也设置在该元素上。要解决此问题,请更改你的UI测试并在此方案中查找Name/HelpText的值。
  • 改进:调用WinRT/UWP中Picker上的Focus将打开下拉。
  • 弃用:Android IVisualElementRenderer.ViewGroup现在已经过时了,请改用View。

试用、下载、了解更多产品信息请点击"咨询在线客服"   
7
未发布 【更新】Windows网络守门人UserLock更新至v9.6,可通过Webhooks获取实时登录通知
by Harriet666 keys 分享 1511253721769
UserLock是您的Windows网络守门人,它可以轻松实现有效的Windows和Active Directory网络用户访问控制策略,并严格执行。
 
UserLock v9.6更新内容:

通过Webhooks获取实时登录通知

UserLock客户现在可以配置自己的webhook URL(支持HTTPS和HTTP)并订阅所有会话访问事件。
 
Webhooks可以将更新直接推送到其他应用程序,创造了新的自动化可能性。它允许将实时登录通知集成到其他应用程序或平台中,并且可以基于特定访问事件创建自定义工作流程。
 
每个用户连接事件和登录尝试都将被发送到webhook URL,以及与该事件相关的所有用户和机器详细信息(IP地址、会话类型、时间等)。
 
webhooks和UserLock API有很多方法将UserLock的数据带入到其他应用程序中。
  • 将粒度化登录数据输入到您的SIEM解决方案中,进行更精确的分析。
  • 将粒度化的登录数据输入到考勤系统中,准确记录员工的工作时间和加班时间。
  • 触发实时进程,例如在可疑登录事件之后阻止Active Directory中的用户。
  • 将粒度登录数据与物理访问控制系统集成,以更好地控制员工进入。
     

支持Windows Server 2016

  • UserLock 9.6与Windows Server 2016完全兼容。
 

改进的代理分发数据

“代理分发”数据现在通过多线程机制进行更新。在许多受保护计算机的环境中,数据更新得更快。
 
具体更新内容:

新增

  • 关机和重新启动操作现在可用于Mac电脑。
  • 与Windows Server 2016完全兼容。
  • 会话事件可以通知给webhook。通过在UserLock中配置Webhook URL(支持HTTPS和HTTP),包含会话事件的JSON通知将被通知给该webhook。

改进

  • 只有在主服务器不可用时,才从UserLock备份服务器发送Webhook通知。
  • “代理分发”数据现在通过多线程机制进行更新。
  • 新的“AddUserDataInUserSessionsIfEffRestReq”高级设置可以自动在“用户会话”视图中添加用户帐户数据。

试用、下载、了解更多产品信息请点击"咨询在线客服"  

未发布 屏幕录制软件ALLCapture常见问题合集(上)
by Harriet666 keys 分享 1504776846597
ALLCapture是一款实时抓取桌面的屏幕录制软件。实时、快速、轻松地录制屏幕,创建自己的屏幕录像、示例、指南、软件模拟以及无需任何编程的网络视频。制作步骤如此简单:录制-编辑-导出-播放。
ALLCapture
使用ALLCapture遇到了问题?我们的FAQ将帮助你找到答案。

1、我的序列号和注册信息都无法使用?

注册信息包括三部分:“序列号”,“字段 #1”以及“字段 #2”-要成功注册你的软件这些信息都是必须。为了确保你的注册没有任何问题,请从发送给你的邮件中复制注册信息,然后粘贴到相应的注册字段。请参考以下截图。
 

2、ALLCapture对系统的最低要求是?

功能要求
主要功能Windows 98或更高
最低1.2GHzPentium或兼容CPU
256MB内存
50MB可用硬盘
SVGA显卡,256色
对电影或视图截图Windows 2000或更高(文件格式为NTFS)
最低2GHz Pentium或兼容CPU
1GB内存
30GB可用硬盘
专业版SVGA显卡,最低显存256MB
(非集成显卡)
 

3、最大帧速非常慢,我该怎么办?

当ALLCapture显示的帧速小于10FPS(帧每秒)时,要么是显卡不支持要么是驱动过期。用户可用升级电脑的显卡驱动来增加帧速,但是显卡或显卡芯片仍然无法支持。在购买新显卡前我们还是建议先升级显卡驱动。如果驱动升级成功,你可以在ALLCapture中新建一个项目,然后在“录制选项”页中点击“帧速”,然后再点击“刷新帧速最大值”按钮。


4、为什么录制的视频是黑色的一片?

先了解一下处理机制,电影是直接从显卡解码而来,这就是造成黑色一片的原因。Windows只能同时让一个屏幕可用,这样操作系统无法获取在屏幕下面的东西,因此ALLCapture也无法捕捉到。

用户可以通过停用显卡的硬件加速来捕获画面。硬件加速可以从这里找到:“开始>设置>控制面板>显示>设置>高级>疑难解答”,滑动控制条到“没有硬件加速”。


5、为什么ALLCapture没有录制系统声音?

很多笔记本厂商没有配置完整的声卡芯片驱动。这应该是录制驱动识别功能无法识别系统的声卡驱动的原因。对于台式电脑应该安装了提供这个功能的声卡,升级声卡驱动应该可以解决这个问题。
 
如果你使用的是Vista,请查看示例
 

6、我怎样可以把PowerPoint录制为视频?

使用ALLCapture新建一个项目,然后在录制前选择分辨率,例如:800x600像素,打开PowerPoint开始录制,然后开始放映PowerPoint,并立即按下CTRL+SHIFT+P使PPT填充录制窗口,PPT播放完毕即可结束录制,然后剪掉前面的录制让第一页幻灯片的画面为起始页。

提示:如果幻灯片播放太快以至于没有捕捉到第一页ppt画面,你只需在ppt开始处插入空白的幻灯片,这样当播放时点击空白幻灯片后,真正的第一页幻灯片就可以录制到了。
未发布 格式转换工具PDF Extractor SDK更新至v8.6.0.2911,修复对比度预处理过滤器
by Harriet666 keys 分享 1501752886016
PDF Extractor SDK是一款可以转换PDF为文本,CSV,XML,从PDF文件中提取图像和信息的多功能工具包。
 
【PDF Extractor SDK点击下载>>>】
 
PDF Extractor SDK v8.6.0.2911更新内容:
  • XMLExtractor,JSONExtractor,HTMLExtractor:添加了KeepOriginalFontNames属性。
  • TextComparer:添加GetChanges()方法以获得比较结果,方便进行程序化分析。
  • DocumentRotator:现在可以指定要旋转的页面。
  • TextExractor.ExtractColumnByColumn属性现在影响Find()方法。
  • 修复SearchResult元素中的字体名称。
  • 修复对比度预处理过滤器。
  • 修复下标和上标文本对象与正常文本合并的问题。
  • 其他小修改和改进。
未发布 Visual Studio 2017 v15.5预览版的新特性先睹为快
by Harriet666 keys 分享 1508923045165
Microsoft延续了Visual Studio 2017快速迭代开发的步伐,最新发布了15.5预览版,这是VS2017这一广受欢迎的IDE自发布以来的第五次更新,该预览版的发布使用户可以先睹为快。

该预览版启用了一个称为“Stepping Back”的调试历史新特性。IntelliTrace会在整个断点的每一步上,自动对应用状态做快照,这将赋予开发人员浏览断点前后状态的能力,更易于观察在断点前后的运行效果。
 
Visual Studio 2017下载>>>

此外,Microsoft还进一步改进了基于C#和Visual Basic的解决方案的加载速度。据其宣称,所有解决方案应可在10秒内至少加载一半以上。相应地,C++开发人员应能看到IntelliTrace在执行常见命令时,性能得到了显著的提升,其中包括重命名(Rename)、更改签名(Change Signature)和找出所有引用(Find All References)等。

VS2017 15.4的IDE为C#、VB和Python开发人员提供了一种通过“Control键+点击”进入所点击项定义的功能。该功能现在也已经添加到C++的开发中。还改进了C++代码的生成,一旦受此影响的C++项目在15.5下重新编译,应该就能体验到此次更新的改进。

VS2017在安装程序上也做了一些改进,这可能会受到那些安装了多个版本VS2017的开发人员(例如在最新的VS2017旁安装了VS2017预览版)的欢迎。现在安装时会自动地创建Windows恢复点,并且每个已安装的VS2017拷贝会以不同的项列出在“添加&删除程序”(Add & Remove Programs)安装阶段的显示中。

和其它预览版一样,该预览版也不应安装在生产环境中。完整的发行说明已经给出,其中涵盖了15.5第一个预览版中包含的所有改进。
未发布 案例实战:LightningChart集成Dynamotive汽车遥测软件|见证真正无与伦比的性能
by Harriet666 keys 分享 1499757923509
Dynamotive

案例研究日期:2017年3月

经营行业:汽车工程

成立:1998

网站:new.abb.com/uk

LightningChart解决方案:Various


高性能的控制系统

Dynamotive是ABB集团的一员,是一个主要部署在汽车行业的高性能实时控制系统的高档品牌供应商。Dynamotive为主要汽车制造商及其遍布欧洲、美国和亚洲的供应商提供测试设备和工具软件。

LightningChart®提供真正无与伦比的性能

“Dynamotive在对众多的选择进行鉴定后选择了LightningChart。没有任何一种替代方案能够做到在性能方面如此接近完美。”

——软件开发经理安德鲁·普尔(Andrew Poole)

Dynamotive使用LightningChart从控制系统实时提供数据。他们在LightningChart周围建立了一个解决方案,可以同时并且持续地以多个采样率显示和记录数据。采样率从1Hz到50 kHz不等,屏幕刷新率可以调节高达50 Hz,为用户提供了关于控制过程决策所需的信息。

当被问及LightningChart的最佳优势时,Poole先生给出答复:“LightningChart的最佳功能是性能,性能和性能。”


示例:表示运行节气门循环的图像

快速和容易实现

LightningChart给予Dynamotive的主要优点是使他们能够快速开发可靠和高性能的实时数据。“除了使用LightningChart为我们的控制系统实现高性能实时数据趋势,我们可以在两周内构建一个驱动程序辅助应用程序(使车辆的驾驶员能够遵循道路简档),早期的实施需要几个月 需要尝试并获得体面的图形性能,但与LightningChart的优异性能是给定的。”软件开发经理Poole如是介绍。

Dynamotive团队并没有真的必须使用技术支持。 安德鲁·普尔(Andrew Poole):“我们是LightningChart的早期使用者,当时有一些来自Arction创始人的电子邮件让我们犹豫了,但之后,我们需要做的大部分工作都很容易实现,这是因为拥有了直接和结构合理的API。”

观看视频,了解LightningChart如何整合到Dynamotive开发的汽车遥测软件中:

LightningChartDynamotive

未发布 纯干货!视频控件VideoCapX的使用指南和常见问题合集
by Harriet666 keys 分享 1502703765425
VideoCapX控件可使开发者轻松地在数字视频撷取卡和相机中添加应用程序。不论你是创建多媒体播放器,数字录像机,电视协调器,网络摄像机,网络安全性程序、身份证数据库、工业监视系统、还是医学成像设备,VideoCapX都可以帮您捕捉和保存这些图像和视频序列。
 
VideoCapX介绍和试用点击下载>>>
 
本文主要介绍了VideoCapX的使用指南和常见问题。目前VideoCapX在线订购享75折优惠正在进行中,欢迎您下载和购买!
videocapx

一、播放MP4、H264、MOV、AVC文件

VideoCapX支持播放MP4、AVI、MOV和H264视频文件。但是,你必须安装解码器和分流器。我们推荐ffdshow解码器和MatroskaSplitter。
 

二、ConnectionClosed错误代码

当视频连接关闭或发生错误时,ConnectionClosed事件被引发。相应的错误代码参数表示原因:
0成功
100无法创建服务器插口
101无法绑定服务器插口
1、5连接错误
3、2、6、7网络发送错误
32、31、8、9网络接收错误
4无法创建视频编解码器
28拒绝连接
29客户端PC上没有安装解码器
91网络接收超时
 

三、在64位Windows下使用VideoCapX

要在64位Windows的VisualStudio项目中使用VideoCapX,你必须将“Architecture”项目设置为“x86”。
 

四、在WPF应用程序中使用VideoCapX

可以在WPF应用程序中使用ActiveX控件。
请参阅Microsoft网站上的这些文章:
http://blogs.msdn.com/mhendersblog/archive/2005/09/23/473065.aspx
http://msdn.microsoft.com/en-us/library/ms742735.aspx
http://msdn.microsoft.com/en-us/library/ms744829.aspx
 

五、如何捕捉MP4视频?

如果安装了“3ivX D4视频编码器”MPEG-4编码器,则VideoCapX可以创建MPEG-4文件。只需设置CapFilename具有“.MP4”扩展名,如果找到3ivX编码器,它将用于将视频/音频转为MPEG-4文件。3ivX编码器可以在http://www.3ivx.com/download找到。


六、如何提高捕捉性能?

为了提高性能并减轻资源需求,请在调用StartCapture之前设置UseVideoFilter = false。如果你不需要即时视频压缩,请使用StartCapture2方法进行最
轻微的捕捉。
 

七、当使用ChromaKey时,关键部分可以正常工作,因为它会删除颜色范围内的像素,但它背后的背景图像不能正确显示。图像似乎伸展到水平条带中,不能识别。

这是因为VideoCapX将背景图像延伸到视频的尺寸大小。如果视频为640x480,则应使用640x480图像作为背景。
 

八、可以使用SetBitmapOverlay在C#(.Net)PictureBox上绘制一个框架吗?

可以。VideoCapX可以在.NET中用作任何其他ActiveX控件。VideoCapX“Samples”文件夹中有几个VideoCapX VB.NET示例。要绘制图形并将其放在视频预览上,请使用以下内容:
Bitmap b = new Bitmap(640, 480);                Graphics g = Graphics.FromImage(b);                g.Clear(System.Drawing.Color.White);                g.DrawRectangle(System.Drawing.Pens.Red, mx, my, mw, mh);                IntPtr bh = b.GetHbitmap();                videoCapX.SetBitmapOverlay((int)bh,0,0,0xffffff,255);                if(oldbh!=(IntPtr)0) DeleteObject(oldbh);                oldbh = bh;
 

九、可以在IP摄像机上使用VideoCapX吗?

可以。你可以使用VideoSourceURL属性来指定相机生成的JPG图像的直接URL。VideoCapX会自动将图像自动刷新至CaptureRate times。请参阅VideoCapX“samples”文件夹中的“IPCamera”示例。要指定用户名和密码,请使用以下特殊语法:vcx.VideoSourceURL =“http:// username:
password@server.com/path/image.jpg”
Example:vcx.VideoDeviceIndex = -2vcx.VideoSourceURL = "http://atlascam2.colorado.edu/axis-cgi/jpg/image.cgi"vcx.CaptureAudio = Falsevcx.Connected = Truevcx.Preview = True
VideoCapX也支持MJPEG。如果你的URL包含“mjpg”字符串,VideoCapX将使用MJPEG流读取器。
 

十、如何在运行时使用VB.NET或C#.NET创建一个新的控件实例?

请参阅此MSDN文章:http://support.microsoft.com/kb/326651
 

十一、视频会议功能

问:VideoCapX可以在视频会议软件中实现什么功能?它是否包括可用于视频会议软件的所有必要组件,如视频捕捉、压缩、数据通信、解压缩、重放等?还可以用于多方视频会议吗?
 
答:可以。VideoCapX包含以上所有提到的功能。你可以在VideoCapX“samples”文件夹中看到“VideoLan”示例。可用于制作多方视频会议软件。
 
在服务器端:
  • 连接到视频和音频设备
  • 设置视频压缩编解码器
  • 设置ServerMode = True
 
在客户端 :
  • 只需使用服务器计算机的网络地址调用DisplayRemote。
 
VideoCapX自动检测在服务器端使用的视频编解码器,并使用它在客户端解压缩视频流。使用内置GSM编码传输音频。

视频以服务器计算机捕捉的原始尺寸传输,因此,为了控制视频大小,在连接客户端之前,请在服务器端使用SetVideoFormat方法。不支持在会议中更改视频大小。

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA