未找到

未发布 15个适合初学者学习C#编程语言的免费在线资源丨附地址
by Harriet666 keys 分享 1488523005149

C#是一种通用编程语言,广泛应用于开发企业应用程序。C#是由Microsoft开发的,是.NET框架的主要语言。C#主要用于创建控制台应用程序、图形用户界面(GUI)应用程序和Web应用程序等。这些应用程序在个人计算机、Windows移动设备和嵌入式系统上运行。C#提供了一系列功能,例如自动管理内存和垃圾回收。它支持数据封装和继承和多态性,并且包括对COM技术(组件对象模型)和基于Windows的应用程序的本地支持。 

如果你准备学习C#编程语言,那么有大量的在线资源非常适合初学者学习。这里列出了15个在线资源可以让你逐步学习C#编程。

点击查看详情>>>

未发布 MailBee.NET Objects发送电子邮件(SMTP)教程八:使用多个SMTP服务器发送邮件
by Harriet666 keys 分享 1496655901549
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了如何使用使用多个SMTP服务器发送邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
当开发人员不确定他将用于发送电子邮件的SMTP服务器是否可靠(例如,有时服务器崩溃)时,使用多个SMTP服务器则非常有用。例如,当使用单个SMTP服务器发送消息时,如果此SMTP服务器崩溃,则MailBee无法发送消息。但是,在使用多个SMTP服务器时,如果一个SMTP服务器崩溃,MailBee会根据这些服务器的优先级别尝试使用其他SMTP服务器。
 
因此,使用多个SMTP服务器增加了邮件发送成功的可靠性。MailBee.NET Objects允许开发人员管理SMTPSERVER对象的集合,存储在SMTP.SmtpServers的SMTP对象的属性。开发人员应调用SMTP.SmtpServers.Add方法向集合添加一个新的SmtpServer对象实例。这个方法有五个重载。第一个重载允许添加直接SmtpServer对象,如下所示:
C#:

SmtpServer smtp_srv = new SmtpServer();

smtp_srv.Name = "mail.domain.com";
smtp_srv.AccountName = "john_doe";
smtp_srv.Password = "secret";

oMailer.SmtpServers.Add(smtp_srv);

VB.NET:
Dim smtp_srv As SmtpServer =  New SmtpServer() 
 
smtp_srv.Name = "mail.domain.com"
smtp_srv.AccountName = "john_doe"
smtp_srv.Password = "secret"
 
oMailer.SmtpServers.Add(smtp_srv)
 
SMTP.SmtpServers.Add方法的下一次重载允许通过指定的服务器名称或相应的IP地址添加新的SMTP服务器,如下所示:
C#:

oMailer.SmtpServers.Add("127.0.0.1");
oMailer.SmtpServers.Add("smtp.company.com");

VB.NET:
oMailer.SmtpServers.Add("127.0.0.1")
oMailer.SmtpServers.Add("smtp.company.com")
 
此外,开发人员可以指定SMTP服务器的端口号和优先级。默认优先级为0(即最高),默认端口号为25。以下代码将两个具有不同优先级的SMTP服务器添加到集合中:
C#:

oMailer.SmtpServers.Add("127.0.0.1", 33, 1);
oMailer.SmtpServers.Add("smtp.company.com", 37, 2);

VB.NET:
oMailer.SmtpServers.Add("127.0.0.1", 33, 1)
oMailer.SmtpServers.Add("smtp.company.com", 37, 2)

此外,SMTP.SmtpServers.Add方法的以下重载允许通过指定的服务器名称(或相应的IP地址)、登录名和密码将SMTP服务器添加到集合中,如下所示:
C#:

oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password");
oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret");

VB.NET:
oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password")
oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret")
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

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

未发布 【更新】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”高级设置可以自动在“用户会话”视图中添加用户帐户数据。

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

未发布 Red Carpet Subscriptions发布2017 v3,适用于Linux和macOS的新版本
by Harriet666 keys 分享 1505294232532
Red Carpet Subscriptions贵宾订购版是综合通讯、安全和电子商务的组件包。贵宾订购版,在一个封包里给你任何东西:适用任何主流Internet协议的通讯组件、SSL 和 SSH 安全组件、S/MIME加密组件、数字证书(Digital Certificates)组件、信用卡交易处理(Credit Card Processing)组件、ZIP压缩组件、即时消息(Instant Messaging)组件、甚至电子商务(EDI)交易组件。
 
Red Carpet Subscription 2017 v3此次更新支持.NET Standard/ .NET Core,TLS 1.3,与OneDrive for Business和Wasabi云存储的集成,JSON安全性,并适用于Linux和macOS的新版本等。
 

重点


升级开发平台

  • 在任何支持.NET Standard和.NET Core的平台上使用.NET Editions
  • 使用PHP 7改进你的PHP应用程序。
  • 使用Node.js 8.3.0和OpenSSL 1.1.0升级Node.js应用程序。
  • 在Linux和macOS上使用IP*Works!IPC。

升级安全选项

  • 开始在.NET和Java中使用TLS 1.3。
  • 使用具有JSON Web Encryption(JWE)和JSON Web Signatures(JWS)选项的JSON Web Tokens(JWT)。

升级云存储集成

  • Graph API 与OneDrive for Business集成。
  • 与新的Wasabi云存储服务集成。

升级企业适配器

  • 使用WebDAV与BizTalk。
  • 使用BlueSnap支付网关与电子支付积分器。
     

细节


支持.NET Standard

所有.NET版本现在包括.NET Standard 1.4、1.6和2.0库。这意味着你可以在任何支持.NET Standard,包括.NET Core、UWP、Mono、Xamarin(Android和iOS)的平台中使用/n software组件。所有.NET版本都包含在内,也是NuGet软件包的一部分。

支持TLS 1.3

.NET和Java Edition现在支持客户端和服务器组件中的TLS 1.3。该版本支持SHA-256、SHA-384和SHA-512签名算法以及DHE 2048、3072、4096、6144和8192组。更多的算法、功能和平台将在下一个版本中推出。

支持Wasabi云服务

这个新组件将一个接口嵌入到Wasabi服务中,为云存储集成商提供了另一个云存储选项。

JSON(JWS / JWE / JWT)安全性

  • IP*Works!Auth包括用于签名/验证加密/解密JSON Web Tokens的新JWT组件。支持所有标准声明和添加自定义声明的功能。
  • IP*Works!Encrypt包括两个新的组件JWS和JWE,用于支持JSON Web Signatures和JSON Web Encryption,用于以各自的标准格式对数据进行签名/验证和加密/解密。

支持PHP 7和7.1

充分利用最新版本的性能和代码升级。所有PHP版本现在支持PHP 7和7.1。

PowerShell服务器支持SSL Tunnels到SSL主机

新功能允许你保护旧版应用程序,支持以前的SSL版本,并具有新的TLS 1.2安全性。
未发布 新的JavaScript库邀请程序员使用Canvas进行创意编程
by Harriet666 keys 分享 1487837494989

首款专门用于LOB应用开发的JavaScript框架点击下载>>>

为了模糊技术和艺术之间的界限,Sandpit库使用JavaScript和Canvas 2D元素进行创意编程。

通过GitHub或NPM并内置在ECMAScript 6中,Sandpit仍然使用着一个可能会在1.0版本之前更改的API进行开发。“Sandpit的目标是规范和简化创建编码的过程,利用代码来做漂亮的东西,”文档介绍里提到。“不管是在2D还是3D中,通常都会绘制到Canvas元素中。”Sandpit使用dat.GUI(一个改变JavaScript中的变量的轻量级GUI)来管理设置。

未发布 条码识别控件Dynamsoft Barcode Reader更新至v5.2丨附下载
by Harriet666 keys 分享 1505814675249
Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序,能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。
 
 
31935a2406f642ab98a8a5a6ebf07737ojpg
 

Dynamsoft Barcode Reader v5.2新版本更新和改进仅适用于Windows Edition。
 
新版本的亮点:
  • 通过优化的本地化和识别算法,提高了PDF417的识别性能。
  • 通过优化的去模糊算法提高了1D条形码的识别精度。
  • 现在可以设置暂停条形码识别。
 
改进:
  • 改进了PDF417条形码的本地化和识别算法。
  • 优化了1D条形码的去模糊算法,提高识别精度。
  • 现在可以暂停条码识别。
  • 增加B&W图像的QR码和数据矩阵条码识别速度。
修复:
  • 小的修复和调整。
未发布 条码控件Dynamsoft Barcode Reader教程:从PDF417驾驶执照中提取数据
by Harriet666 keys 分享 1499929296192
根据AAMVA卡的设计标准,PDF417二维条码符号系统是符合驾驶执照/识别文件必须存在的最低强制性机读技术。条形码编码关于持卡人的关键信息,包括姓名、出生日期、性别、眼睛颜色、身高等等。
 
从驾驶执照中提取数据有两种方法。我们可以使用OCR技术识别ID上打印的字符。或者,我们可以使用条形码识别技术对PDF417符号系统进行解码,然后将其解析为可读的格式。一般来说,后者比前者更准确,性价比更高。
 
本文将讨论如何使用Dynamsoft Barcode Reader SDK从驾驶执照中提取文本。
 
Dynamsoft Barcode Reader最新版下载>>>

在线演示

要了解这是如何进行的,你可以尝试在线演示 - 查看驾驶执照的PDF417条码
 
请注意,此演示还提供文档扫描,由Dynamsoft Web TWAIN SDK提供支持。

如何从PDF417驾驶执照中提取数据

步骤1.检测并解码PDF417代码
var barcodeImage = DWObject.GetImageURL(index, -1, -1);
dbrObject.readURLAsync(barcodeImage,
    index,
    GetBarcodeInfo,
    OnBarcodeReadFailure);
function OnBarcodeReadFailure(sImageIndex, errorCode, errorString) {
    console.log(errorString);
}
function GetBarcodeInfo(sImageIndex, result) {//This is the function called when barcode is read successfully
    //Retrieve barcode details
    var count = result.getCount();
    if (count == 0) {
        alert("The barcode for the selected format is not found.");
        return;
    } else {
        for (i = 0; i < count; i++) {
            Barcode_text = result.get(i).text;
            var x = result.get(i).x1;
            var y = result.get(i).y1;
            var format = result.get(i).formatString;
            var barcodeText = ("barcode[" + (i + 1) + "]: " + "\n" + Barcode_text + "\n");
            extractInformation();
        }
    }
}
 
步骤2.将其解析成可读的格式
driverLicenseFields = [
        { 'abbreviation': 'DAA', 'description': 'Full Name' }
        , { 'abbreviation': 'DAB', 'description': 'Last Name' }
        , { 'abbreviation': 'DAB', 'description': 'Family Name' }
        , { 'abbreviation': 'DAC', 'description': 'First Name' }
        , { 'abbreviation': 'DAC', 'description': 'Given Name' }
        , { 'abbreviation': 'DAD', 'description': 'Middle Name or Initial' }
        , { 'abbreviation': 'DAD', 'description': 'Middle Name' }
        , { 'abbreviation': 'DAE', 'description': 'Name Suffix' }
        , { 'abbreviation': 'DAF', 'description': 'Name Prefix' }
        , { 'abbreviation': 'DAG', 'description': 'Mailing Street Address1' }
        , { 'abbreviation': 'DAH', 'description': 'Mailing Street Address2' }
        , { 'abbreviation': 'DAI', 'description': 'Mailing City' }
        , { 'abbreviation': 'DAJ', 'description': 'Mailing Jurisdiction Code' }
        , { 'abbreviation': 'DAK', 'description': 'Mailing Postal Code' }
        , { 'abbreviation': 'DAL', 'description': 'Residence Street Address1' }
        , { 'abbreviation': 'DAM', 'description': 'Residence Street Address2' }
        , { 'abbreviation': 'DAN', 'description': 'Residence City' }
        , { 'abbreviation': 'DAO', 'description': 'Residence Jurisdiction Code' }
        , { 'abbreviation': 'DAP', 'description': 'Residence Postal Code' }
        , { 'abbreviation': 'DAQ', 'description': 'License or ID Number' }
        , { 'abbreviation': 'DAR', 'description': 'License Classification Code' }
        , { 'abbreviation': 'DAS', 'description': 'License Restriction Code' }
        , { 'abbreviation': 'DAT', 'description': 'License Endorsements Code' }
        , { 'abbreviation': 'DAU', 'description': 'Height in FT_IN' }
        , { 'abbreviation': 'DAV', 'description': 'Height in CM' }
        , { 'abbreviation': 'DAW', 'description': 'Weight in LBS' }
        , { 'abbreviation': 'DAX', 'description': 'Weight in KG' }
        , { 'abbreviation': 'DAY', 'description': 'Eye Color' }
        , { 'abbreviation': 'DAZ', 'description': 'Hair Color' }
        , { 'abbreviation': 'DBA', 'description': 'License Expiration Date' }
        , { 'abbreviation': 'DBB', 'description': 'Date of Birth' }
        , { 'abbreviation': 'DBC', 'description': 'Sex' }
        , { 'abbreviation': 'DBD', 'description': 'License or ID Document Issue Date' }
        , { 'abbreviation': 'DBE', 'description': 'Issue Timestamp' }
        , { 'abbreviation': 'DBF', 'description': 'Number of Duplicates' }
        , { 'abbreviation': 'DBG', 'description': 'Medical Indicator Codes' }
        , { 'abbreviation': 'DBH', 'description': 'Organ Donor' }
        , { 'abbreviation': 'DBI', 'description': 'Non-Resident Indicator' }
        , { 'abbreviation': 'DBJ', 'description': 'Unique Customer Identifier' }
        , { 'abbreviation': 'DBK', 'description': 'Social Security Number' }
        , { 'abbreviation': 'DBL', 'description': 'Date Of Birth' }
        , { 'abbreviation': 'DBM', 'description': 'Social Security Number' }
        , { 'abbreviation': 'DBN', 'description': 'Full Name' }
        , { 'abbreviation': 'DBO', 'description': 'Last Name' }
        , { 'abbreviation': 'DBO', 'description': 'Family Name' }
        , { 'abbreviation': 'DBP', 'description': 'First Name' }
        , { 'abbreviation': 'DBP', 'description': 'Given Name' }
        , { 'abbreviation': 'DBQ', 'description': 'Middle Name' }
        , { 'abbreviation': 'DBQ', 'description': 'Middle Name or Initial' }
        , { 'abbreviation': 'DBR', 'description': 'Suffix' }
        , { 'abbreviation': 'DBS', 'description': 'Prefix' }
        , { 'abbreviation': 'DCA', 'description': 'Virginia Specific Class' }
        , { 'abbreviation': 'DCB', 'description': 'Virginia Specific Restrictions' }
        , { 'abbreviation': 'DCD', 'description': 'Virginia Specific Endorsements' }
        , { 'abbreviation': 'DCE', 'description': 'Physical Description Weight Range' }
        , { 'abbreviation': 'DCF', 'description': 'Document Discriminator' }
        , { 'abbreviation': 'DCG', 'description': 'Country territory of issuance' }
        , { 'abbreviation': 'DCH', 'description': 'Federal Commercial Vehicle Codes' }
        , { 'abbreviation': 'DCI', 'description': 'Place of birth' }
        , { 'abbreviation': 'DCJ', 'description': 'Audit information' }
        , { 'abbreviation': 'DCK', 'description': 'Inventory Control Number' }
        , { 'abbreviation': 'DCL', 'description': 'Race Ethnicity' }
        , { 'abbreviation': 'DCM', 'description': 'Standard vehicle classification' }
        , { 'abbreviation': 'DCN', 'description': 'Standard endorsement code' }
        , { 'abbreviation': 'DCO', 'description': 'Standard restriction code' }
        , { 'abbreviation': 'DCP', 'description': 'Jurisdiction specific vehicle classification description' }
        , { 'abbreviation': 'DCQ', 'description': 'Jurisdiction-specific' }
        , { 'abbreviation': 'DCR', 'description': 'Jurisdiction specific restriction code description' }
        , { 'abbreviation': 'DCS', 'description': 'Family Name' }
        , { 'abbreviation': 'DCS', 'description': 'Last Name' }
        , { 'abbreviation': 'DCT', 'description': 'Given Name' }
        , { 'abbreviation': 'DCT', 'description': 'First Name' }
        , { 'abbreviation': 'DCU', 'description': 'Suffix' }
        , { 'abbreviation': 'DDA', 'description': 'Compliance Type' }
        , { 'abbreviation': 'DDB', 'description': 'Card Revision Date' }
        , { 'abbreviation': 'DDC', 'description': 'HazMat Endorsement Expiry Date' }
        , { 'abbreviation': 'DDD', 'description': 'Limited Duration Document Indicator' }
        , { 'abbreviation': 'DDE', 'description': 'Family Name Truncation' }
        , { 'abbreviation': 'DDF', 'description': 'First Names Truncation' }
        , { 'abbreviation': 'DDG', 'description': 'Middle Names Truncation' }
        , { 'abbreviation': 'DDH', 'description': 'Under 18 Until' }
        , { 'abbreviation': 'DDI', 'description': 'Under 19 Until' }
        , { 'abbreviation': 'DDJ', 'description': 'Under 21 Until' }
        , { 'abbreviation': 'DDK', 'description': 'Organ Donor Indicator' }
        , { 'abbreviation': 'DDL', 'description': 'Veteran Indicator' }
        , { 'abbreviation': 'PAA', 'description': 'Permit Classification Code' }
        , { 'abbreviation': 'PAB', 'description': 'Permit Expiration Date' }
        , { 'abbreviation': 'PAC', 'description': 'Permit Identifier' }
        , { 'abbreviation': 'PAD', 'description': 'Permit IssueDate' }
        , { 'abbreviation': 'PAE', 'description': 'Permit Restriction Code' }
        , { 'abbreviation': 'PAF', 'description': 'Permit Endorsement Code' }
        , { 'abbreviation': 'ZVA', 'description': 'Court Restriction Code' }
    ]
未发布 GIS软件开发工具包TatukGIS Developer Kernel更新至v11.7丨附下载
by Harriet666 keys 分享 1504171491009
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
 
TatukGIS Developer Kernel v11.7更新内容
更新内容:
  • DK for Java(Beta)发布。(DK-9623)
  • 一些.NET样本在除96之外的DPI上不能正常打开。(DK-9488)
  • SimplEdit得到了一个更容易测试编辑的数据集。(DK-9501)
  • 插值方法在速度和CS支持方面大大改善。(DK-9502)
  • 插值样本出现错误。(DK-9493) 
  • 修正了WinForms在非标准DPI上放大矩形问题。(DK-9510)
  • 插值样本重做。(DK-9493)
  • 修复了打印预览组件的各种问题。(DK-9510)
  • 示例源代码现在可用于在线浏览。参考Isochrone样品
  • 改进示例文档。
  • 审查样品。
未发布 Windows网络守门人UserLock教程:让用户、组或组织单位进行同步会话
by Harriet666 keys 分享 1508390200193
IS Decisions公司旗下的UserLock为企业和组织提供了实施网络访问安全以及优化工作站使用的一系列有效方法。它通过阻挠来自于外部或者内部的恶意访问事件为Windows网络提供了真正的访问安全。(重要推荐:UserLock已加入在线订购,点击购买!

UserLock免费下载试用>>>


您可以用UserLock创建一个规则,让用户进行同步会话。此规则可以由用户、组或用户组织单位创建,同时可以选择使用哪种类型的会话。本文将一步一步的教您如何制定一个将每个成员限制到一个并行工作站的规则。
 
1、点击菜单中的“受保护的帐户”。如果已存在则可以通过双击相应的行来打开所需的用户帐户。否则,您可以为目标组创建受保护的帐户。
 
2、在受保护的帐户设置中,显示“常规”部分(第一部分)。
 
3、在“允许的并发会话数”中,将“工作站会话”调整为“限制”。输入'1'作为值。点击“确定”进行验证。

该组的每个用户将被授权登录到同一个工作站会话。如果该组的用户成员尝试在前一个会话打开时打开第二个会话,则会被拒绝。要登录到另一个工作站,他们将不得不注销他们当前的会话。
 

选项

有些选项有更大的灵活性:
 
如果已经达到允许的会话数,则可以注销现有会话
当尝试打开另一个工作站会话时,用户将有一个提示窗口,允许他们强制从上一个会话中注销。要打开此选项,请将相应的下拉列表从“未配置”
更改为“已启用”。
 
只允许一个解锁的交互式会话
用户可以打开多个会话(在此示例中),但是一旦新会话打开,上一个会话将被自动锁定。这确保了会话所有者正在使用另一个工作站时,任何会话都不会被打开并可以自由利用。要打开此选项,请将相应的下拉列表从“未配置”更改为“已启用”。

【示例教程】如何用LEADTOOLS 实现一个简单的STORE SCU存储客户端
by Harriet666 keys 分享 1519722017492
leadtools提供了封装后的dicom插件,可以非常方便的开发出dicom通讯部分的组件,本篇教程讲解如何使用相关的接口进行代码编写,实现Dicom协议中的CStore存储操作。
 
1.用vs2015创建一个winform项目,引用下面的dll,并在代码里引用
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom.Scu;
using Leadtools.MedicalViewer;
using System.Net;
using System.IO;
 
2.创建下面的对象
// CStore highlevel 客户端和服务端对象
        private StoreScu _cstore;
        private DicomScp _server = new DicomScp();
 
3.初始化服务器和客户端参数,
本次用的服务器即是开发包中运行pacs服务器设置程序后,创建的L19_PACS_SCP64
private void initServer() {
            _server = new DicomScp();
            _server.AETitle = "L19_PACS_SCP64";
            _server.PeerAddress = IPAddress.Parse("10.32.1.75");
            _server.Port = 534;
            _server.Timeout = 30;
        }
private void initCstore() {
            _cstore = new StoreScu();
            _cstore.AETitle = "L19_CLIENT64";
            _cstore.HostPort = 1030;
            //存储成功后
            _cstore.AfterCStore += _cstore_AfterCStore;
        }
 
4.执行存储命令
private void 存储ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filename ="D:\\Xa.dcm";
            _cstore.Store(_server, filename);

        }

保存成功后即可在服务器管理器中,或者使用客户端查询已经存储的图像。

 近期热门 - 点击最多
  1. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  2. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  3. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  4. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  5. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  6. Springboot+Gradle+Mysql+Jpa最简单实例教程
  7. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  8. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  9. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  10. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务

  全端社区 - 最新回复
  1. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  2. Windows与Mac通过git ssh和rsync实现文件共享互传
  3. Windows与Mac通过git ssh和scp实现文件共享互传
  4. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  5. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  6. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  7. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  8. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  9. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  10. Springboot+Gradle+Mysql+Jpa最简单实例教程

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

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

OnceOA