转:WinForm使用WebService自动升级 (VB + .Net)
	
    
    
	转自:http://hi.baidu.com/sunward08/blog/item/cb64ac224657014dac34de2d.html 
 
WinForm使用WebService自动升级
2009-08-08 10:49
winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了这一缺陷,有较好的参考价值。 
一、升级的好处。 
长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序的可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素,也是那些B/S的支持者们将Client/Server结构打入地狱的一个重要原因。 
现在好了,我们就在最新的基于Microsoft 的 WinForm上用WebServices来实现软件的自动升级功能。 
二、升级的技术原理。 
升级的原理有好几个,首先无非是将现有版本与最新版本作比较,发现最新的则提示用户是否升级。当然也有人用其它属性比较的,例如:文件大小。:) 或者更新日期。 
而实现的方法呢?在VB时代,我使用的是XmlHTTP+INet控件。用XmlHTTP获取信息,用INET传输升级文件,而用一个简单的BAT文件来实现升级。 
Public Sub CheckUpdate() 
On Error Resume Next 
Dim b As Boolean 
Dim XmlHttp As Object 
Set XmlHttp = CreateObject("Microsoft.XMLHttp") 
XmlHttp.Open "GET", "Http://mu.5inet.net/MuAdmin/update.xml", False 
XmlHttp.Send 
Dim vs As String 
vs = XmlHttp.responseText 
If Err.Number > 0 Then 
Exit Sub 
End If 
Dim Xml As Object 
Set Xml = CreateObject("Microsoft.XmlDom") 
Xml.LoadXml vs 
Dim Version As String 
Dim downAddr As String 
Dim FSize As Long 
Dim fInfo As String 
Version = Xml.DocumentElement.ChildNodes(0).Text 
downAddr = Xml.DocumentElement.ChildNodes(1).Text 
FSize = CLng(Xml.DocumentElement.ChildNodes(2).Text) 
fInfo = Xml.DocumentElement.ChildNodes(3).Text 
Set Xml = Nothing 
Set XmlHttp = Nothing 
Dim Major As Long 
Dim Minor As Long 
Dim Revision As Long 
Dim C() As String 
C = Split(Version, ".") 
Major = CLng(C(0)) 
Minor = CLng(C(1)) 
Revision = CLng(C(2)) 
If Major > App.Major Then 
b = True 
ElseIf Minor
    
     
	
	
    
    
	相关文档:
        
    
      C#自己没有Inputbox这个类,但是Inputbox也蛮好用的,所以有两种方法可以使用
   一:.间接调用vb中的Inputbox功能
      1。在项目中添加对Microsoft.VisualBasic引用
      2。在项目中添加命名空间Using Microsoft.VisualBasic;
  &n ......
	
    
        
    
     写了一个vb的程序,用来把原来写的几个vb和vc的程序整合起来。就是使用Shell函数。结果发现,vc的程序可以很好的显示,但vb写的却一运行就最小化了。仔细查看了一下以下文章,才发现原来shell函数的默认显示模式是windowstyle是等于vbMinimizedFocus。然后就是直接加上一个vbNormalFocus。一切ok!  
vb的s ......
	
    
        
    
    Public Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long
Public Declare Function VarPtrStringArray Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long
取对象地址: ObjPtr
取OLE对象的地址: OLE_NAME.LpOleObject
取函数地址: AddressOf
取字符串地址: StrPtr
取 ......
	
    
        
    
        摘要: 本文阐述了在VB程序中利用ADO对象动态创建数据库和数据表的方法,这些方法在开发VB数据库应用程序中很有实用价值,它可以提高数据库程序灵活性。
  关键词:数据库、数据表、ADO、ADOX 
  1: 问题的提出
  在Visual Basic中,常用的数据访问接口有下列三种:数据库访问对象(DAO,Data A ......
	
    
        
    
     正在开发小秘书系统并不断提高其智能水平,其中用到的是脚本支持的技术
虽然这部分不属于初学者使用,然而有些人想学这个东东,这里就发~~~布出去吧!
新建一个标准exe工程(Standard EXE);
"工程"(Project)-->"部件"(Components)
选定"Microsoft Script Control 1.0" ,位置是C:\WINDOWS\system32\msscript.ocx
添 ......