1 2 3 | /* Property *//* Scan pages in 200 DPI */DWObject.Resolution = 200; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Method ///<summary> /// Rotates the image of a specified index in buffer by a specified angle. /// </summary>///<param name="sImageIndex" type="short" data-filtered="filtered">specifies the index of image in buffer. The index is 0-based.///<param name="fAngle" type="float" data-filtered="filtered">specifies the angle.///<param name="bKeepSize" type="bool" data-filtered="filtered">specifies whether to keep the original size///<returns type="bool" data-filtered="filtered"></returns>DWObject.Rotate(0, 45, false); // rotate the 1st image in the buffer by 45 degrees |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <script type="text/javascript" data-filtered="filtered">Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);var DWObject;/* OnWebTwainReady event fires as soon as Dynamic Web TWAIN is initialized and ready to be used. It is the best place to add event listeners */function Dynamsoft_OnReady() { DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); DWObject.RegisterEvent("OnPostTransfer", Dynamsoft_OnPostTransfer);}function Dynamsoft_OnPostTransfer() { /* This event OnPostTransfer will be triggered after a transfer ends. */ /* your code goes here*/}</script> |
1 2 3 4 5 6 7 8 9 10 | <script type="text/javascript" data-filtered="filtered">Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);var DWObject;function Dynamsoft_OnReady() { DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); DWObject.RegisterEvent("OnPostTransfer", function() { /* your code goes here*/ });}</script> |
1 2 | /* sImageIndex is the index of the image you clicked on*/OnMouseClick(short sImageIndex) |
1 2 3 | function DynamicWebTwain_OnMouseClick(index) { CurrentImage.value = index + 1;} |
1 2 3 | DWObject.RegisterEvent("OnPostTransfer", function(index) { CurrentImage.value = index + 1;}); |
1 2 3 4 5 6 7 | <script type="text/javascript" data-filtered="filtered">Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);var DWObject;function Dynamsoft_OnReady() { DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');}</script> |
1 2 3 4 5 | <script type="text/javascript" data-filtered="filtered"> Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', function() { DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); });</script> |
本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!
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.
From: MAILER-DAEMON@domain.local To: jdoe@localhost Subject: Undeliverable mail: Failed to deliver to ''
// 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
}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 Sub2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!
很多企业都选择使用开源软件(OSS)构建更加灵活的产品,但其中也存在潜在的风险,软件供应商和IoT制造商都有必要去了解一下隐藏在软件供应链中的风险。
例如,犯罪分子就完全可以利用Apache Struts CVE-2017-5638漏洞来获取Equifax客户的个人资料。众所周知,Apache Struts是一种广泛使用的开源组件 – Web服务器的框架,它可以用于接收和提供公司内部系统中的商业数据。归根到底,还是因为这个开源组件所存在的漏洞以致于使其成为网络攻击的主要目标。
根据Flexera的一份最新报告显示,在商业和IoT软件产品中所发现的代码有百分之五十都是与开源软件有关的。但调查显示只有37%的受访者表示曾获取并使用开源软件。而63%的公司说,他们并没有获取或使用开源软件,或者说他们根本就不知道有这种情况的存在。
并且据了解,目前基本没有人对开源软件的安全性负责:39%的受访者表示,在他们公司内部没有人会对开源软件的安全性负责,或者可以说他们压根就不知道应该是由谁来负责。
除此之外,开源软件的贡献者也不是遵循最佳实践:33%的受访者表示自己的公司曾为开源项目做出了贡献。但是,又有63%的受访者表示他们的公司压根并没有开源采购或使用政策,当然也有43%的受访者表示自己本身对开源项目也有做出贡献。
不管怎样,我们都不能忽视开源确实是一个明显的捷径。 Flexera产品管理副总裁Jeff Luszcz表示:“完全开源可获取的代码可以快速获得产品,这对于软件开发的快速节奏来说非常重要。” “然而,大多数软件工程师并没有在私下里去跟踪开源的使用情况,而且有绝大部分的软件高管都没有意识到其安全/合规风险方面存在一定差距。”
事实上,对于开源软件使用过程中的安全合规、许可等流程可能远比简单的拿来用要方便的多,但这些流程毫无疑问是必不可少的。
“开源软件的安全合规流程能够很好的保护产品和品牌声誉。但大多数软件和IoT厂商都没有意识到存在的问题,所以他们并没有保护自己和户,”Luszcz说,“对于暴露产品合规性和漏洞风险的供应商,还有那些压根就不知道他们运行开放源代码和其他第三方软件的客户,甚至可能是包含软件漏洞的客户 ,这些都是会危及到整个软件供应链。”
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

[PresentationContext(DicomUidType.VideoPhotographicImageStorage, DicomUidType.ImplicitVRLittleEndian,
DicomUidType.JPEG2000,
DicomUidType.JPEG2000LosslessOnly,
DicomUidType.JPEGBaseline1,
DicomUidType.JPEGExtended2_4,
DicomUidType.ExplicitVRBigEndian,
DicomUidType.ExplicitVRLittleEndian,
DicomUidType.JPEGLosslessNonhier14,
DicomUidType.JPEGLosslessNonhier14B,
DicomUidType.Mpeg4AvcH264BdCompatibleHighProfileLevel_4_1,
DicomUidType.Mpeg4AvcH264HighProfileLevel4_1)]
[PresentationContext(DicomUidType.VideoPhotographicImageStorage, DicomUidType.ImplicitVRLittleEndian,
DicomUidType.JPEG2000,
DicomUidType.JPEG2000LosslessOnly,
DicomUidType.JPEGBaseline1,
DicomUidType.JPEGExtended2_4,
DicomUidType.ExplicitVRBigEndian,
DicomUidType.ExplicitVRLittleEndian,
DicomUidType.JPEGLosslessNonhier14,
DicomUidType.JPEGLosslessNonhier14B,
DicomUidType.Mpeg4AvcH264BdCompatibleHighProfileLevel_4_1,
DicomUidType.Mpeg4AvcH264HighProfileLevel4_1,
DicomUidType.MPEG2MainProfileHighLevel,
DicomUidType.MPEG2MainProfileMainLevel)]
试用、下载、了解更多产品信息请点击"咨询在线客服"
微软在2017年9月发布的免费开源代码编辑器Visual Studio Code(v1.17)进行了一些重要的更新。支持将区域标记带入代码折叠,并提升内置终端的性能。
通过代码折叠,开发人员可以使用行号之间的折叠图标和一行代码的开始来隐藏源代码区域。区域标记允许您使用注释来精确指定可折叠块的开始和结束位置。目前已经为TypeScript、JavaScript、C和C ++、C#、F#、PowerShell和Visual Basic定义了标记。
1.17版本也是一款基于画布的渲染引擎,具有集成终端功能,可根据情况将渲染从5提升到45倍。微软表示:“这种改变减少了输入延迟、功耗,并显着提高了终端的帧速率。”集成终端可以节省开发人员的时间,不必切换窗口或更改现有终端状态,以便快速执行命令行任务。
Visual Studio Code现在有一个源代码管理提供程序,提供了多个可以由SCM提供程序提供的存储库的概述。例如,Git存储库可以与Microsoft Team Foundation Server工作区并排维护。用户可以利用Ctrl+单击或Shift单击功能来选择多个存储库,这些存储库显示为拆分视图。
对于Mac用户来说,Visual Studio Code1.17增加了在MacOS Touch Bar中显示操作的支持。可以在编辑器历史记录中导航并控制调试器。此外,扩展项可以用于通过touchBar菜单标识符向Touch Bar添加命令。同时也为MacOS Sierra添加了本地窗口选项卡的支持。
最后,Visual Studio Code现在为Java开发人员提供了新的在线文档。Java调试最近通过扩展添加到了Visual Code中。
有关Visual Studio的更多信息,请参阅慧都控件网Visual Studio。













VectorDraw web library (javascript)是一个矢量图形库,它不仅能打开CAD图纸,而且能显示任何支持HTML5标准平台上的通用矢量对象,如Windows,安卓,iOS和Linux。无需任何安装,VectorDraw web library (javascript)就可以运行在任何支持canvas标签和Javascript的主流浏览器(Chrome, Firefox, Safari, Opera, Dolphin, Boat等等)中。这意味着可以用DXF,DWG,DGN,VDML等多种格式在任何台式、平板电脑,智能手机和便携式笔记本上展现出你的业务。
VectorDraw web组件是一个革新性项目,其功能和性能得到了快速的提升。这意味着 VectorDraw web library 一直在加入新的功能和发展潜力。
