科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VB.NET打造个性化安全防护软件

VB.NET打造个性化安全防护软件

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

VB程序员可以轻松开发出高难度的曾经是可望而不可及的程序......

作者:付佳亮 来源:微软社区 2007年11月9日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
现在我们说一下对于配置文件的读取我们不可能要求用户每回都设置一遍配置。我采用的方法是用XML数据文件,XML数据文件分为XML文件和XSD文件,XSD是对XML文件结构的描述。

  XSD配置文件内容如下:

<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="SPYFileSet">
<xs:complexType>
<xs:sequence>
<xs:element name="Directory" type="xs:string" minOccurs="0" />
<xs:element name="FileName" type="xs:string" minOccurs="0" />
<xs:element name="Sub" type="xs:boolean" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

  基本的XML内容如下

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<SPYFileSet>
<Directory>c:\</Directory>
<FileName>*.*</FileName>
<Sub>true</Sub>
</SPYFileSet>
</NewDataSet>

  对于XML数据文件的读取,其实很简单。

Dim ds as DataSet=New DataSet()
Try
ds.ReadXmlSchema("FileSet.xsd")
ds.ReadXml("FileSet.xml")
Catch
'读取失败
End Try

  读取数据的方法是

Dim table as DataTable
Dim row as DataRow
table=ds.Tables.Item(0)
For rowIndex=0 To table.Rows.Count-1
row=table.Rows.Item(I)
messagebox.show row("Directory") & row("FileName") & row("Sub") next

  添加一个监控目录

row=table.NewRow()
row("Directory")="d:\"
row("FileName")="*.*"
row("Sub")=True
table.rows.add(row)

  删除一个监控的目录

  确定被选的纪录然后

row.Delete

  存储时用ds.WriteXml("FileSet.xml"),因为数据结构没有改变所以FileSet.xsd没有必要重写。到这里你可能会发现一个问题,就是一个FileSystemWatcher对象如何实现对多个目录的监控,一个FileSystemWatcher对象是无法监管多个目录的,只能采用控件数组。

'定义控件数组
Public FileSystemWatche32() As System.IO.FileSystemWatcher
'使用控件数组
'重新定义数组数量
Redim Preserve fswMain(Max)
'设置对象属性
for I=0 to Max
fswMain(I) = New FileSystemWatcher
'添加控件
me.Controls.Add(fswMain(I))
'设置属性
fswMain(I).Path="C:\"
'设置对象托管
AddHandler FileSystemWatche32(0).Changed, AddressOf FileSystemWatcher1_Changed next I

  在FileSystemWatcher1_Changed事件中添加对其的处理

Dim lb As System.IO.FileSystemWatcher = CType(sender, System.IO.FileSystemWatcher) Messagebox.Show e.ChangeType.ToString

  控件数组的使用方法就是这样,你可以根据上面的方法,增加其他事件的方法。基本上你可以结合上面的方法完成属于你自己的文件监控系统。为了增强交互性我们要引入微软的MS Agent控件。使用方法是工具箱上任意位置点击右键,选择自定义工具箱,选择COM控件中的"MicrosoftAgentControl2.0"点击确定后会把控件加入到工具箱中。

  使用MS Agent的方法是:

Private Peedy as IAgentCtlcharacterEx
'读取动画人物图像
AgentCtl.Characters.Load("char1","1.acs")
Peedy=AgentCtl.Characters("Char1")
Peedy.LanguageID=0x0409
Peedy.Show(false)

  这样就显示出了动画人物,动画人物可以设置多种表情动作,方法是

Peedy.Play("动作名")

  动画人物支持很多动作,像点头Acknowledge向左看LookLeftReturn等等可以去 http://agent.microsoft.com/agent2/sdk/samples/html/charview.htm观看。

  还有就是他还可以说话方法是:

Peedy.Speak("Hello")

  这样可以做到人机交互了。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章