Browse Source

首次导入

lincl 2 years ago
commit
3bf2987f0c
38 changed files with 887 additions and 0 deletions
  1. BIN
      Ionic.Zip.dll
  2. 22 0
      Update.sln
  3. BIN
      Update.v12.suo
  4. 6 0
      Update/App.config
  5. 59 0
      Update/Form1.Designer.vb
  6. 120 0
      Update/Form1.resx
  7. 122 0
      Update/Form1.vb
  8. 38 0
      Update/My Project/Application.Designer.vb
  9. 11 0
      Update/My Project/Application.myapp
  10. 35 0
      Update/My Project/AssemblyInfo.vb
  11. 62 0
      Update/My Project/Resources.Designer.vb
  12. 117 0
      Update/My Project/Resources.resx
  13. 73 0
      Update/My Project/Settings.Designer.vb
  14. 7 0
      Update/My Project/Settings.settings
  15. 131 0
      Update/Update.vbproj
  16. BIN
      Update/bin/Debug/Ionic.Zip.dll
  17. 1 0
      Update/bin/Debug/Uconfig.txt
  18. BIN
      Update/bin/Debug/Update.exe
  19. 6 0
      Update/bin/Debug/Update.exe.config
  20. BIN
      Update/bin/Debug/Update.pdb
  21. BIN
      Update/bin/Debug/Update.vshost.exe
  22. 6 0
      Update/bin/Debug/Update.vshost.exe.config
  23. 11 0
      Update/bin/Debug/Update.vshost.exe.manifest
  24. 24 0
      Update/bin/Debug/Update.xml
  25. BIN
      Update/bin/Debug/Update.zip
  26. BIN
      Update/bin/Debug/intelligent-medicine-abinet.exe
  27. BIN
      Update/bin/update.zip
  28. BIN
      Update/obj/Debug/DesignTimeResolveAssemblyReferences.cache
  29. BIN
      Update/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  30. BIN
      Update/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll
  31. BIN
      Update/obj/Debug/Update.Form1.resources
  32. BIN
      Update/obj/Debug/Update.Resources.resources
  33. BIN
      Update/obj/Debug/Update.exe
  34. BIN
      Update/obj/Debug/Update.pdb
  35. 12 0
      Update/obj/Debug/Update.vbproj.FileListAbsolute.txt
  36. BIN
      Update/obj/Debug/Update.vbproj.GenerateResource.Cache
  37. BIN
      Update/obj/Debug/Update.vbprojResolveAssemblyReference.cache
  38. 24 0
      Update/obj/Debug/Update.xml

BIN
Ionic.Zip.dll


+ 22 - 0
Update.sln

@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Update", "Update\Update.vbproj", "{55C57002-B5EC-45A4-AA87-BBD71535EA3F}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{55C57002-B5EC-45A4-AA87-BBD71535EA3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{55C57002-B5EC-45A4-AA87-BBD71535EA3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{55C57002-B5EC-45A4-AA87-BBD71535EA3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{55C57002-B5EC-45A4-AA87-BBD71535EA3F}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal

BIN
Update.v12.suo


+ 6 - 0
Update/App.config

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
</configuration>

+ 59 - 0
Update/Form1.Designer.vb

@ -0,0 +1,59 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits System.Windows.Forms.Form
    'Form 重写 Dispose,以清理组件列表。
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub
    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer
    '注意:  以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改它。  
    '不要使用代码编辑器修改它。
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
        Me.TextBox2 = New System.Windows.Forms.TextBox()
        Me.SuspendLayout()
        '
        'ProgressBar1
        '
        Me.ProgressBar1.Location = New System.Drawing.Point(28, 97)
        Me.ProgressBar1.Name = "ProgressBar1"
        Me.ProgressBar1.Size = New System.Drawing.Size(234, 23)
        Me.ProgressBar1.TabIndex = 1
        '
        'TextBox2
        '
        Me.TextBox2.Location = New System.Drawing.Point(28, 135)
        Me.TextBox2.Name = "TextBox2"
        Me.TextBox2.Size = New System.Drawing.Size(234, 21)
        Me.TextBox2.TabIndex = 3
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(284, 262)
        Me.Controls.Add(Me.TextBox2)
        Me.Controls.Add(Me.ProgressBar1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
        Me.PerformLayout()
    End Sub
    Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
    Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
End Class

+ 120 - 0
Update/Form1.resx

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

+ 122 - 0
Update/Form1.vb

@ -0,0 +1,122 @@

Imports System.Net
Imports System.Text
Imports System.Reflection
Imports Ionic.Zip
Public Class Form1
    Private WithEvents client As New Net.WebClient
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        readTxt()
        DownLoadFiles()
        'zipExeAllDeComp("./Debug.zip", "./")
    End Sub
    Private Sub DownLoadFiles()
        'For Each p As Process In Process.GetProcesses
        '   If p.ProcessName = "intelligent-medicine-abinet" Then 'If you don't kNow what your program's process name is,simply run your program,run windows task manager,select 'processes' tab,scroll down untill you find your programs name.
        'p.Kill()
        '   End If
        'Next
        'IO.File.Delete("intelligent-medicine-abinet.exe")
        client.DownloadFileAsync(New Uri(updateUrl), "Update.zip")
        'client.DownloadFile("https://ehr.yihu.com/hlwyy/zjxl/healthMonitoring/demo/intelligent-medicine-abinet.exe", "intelligent-medicine-abinet_update.exe")
        client.Dispose()
    End Sub
    Private Sub webClient_DownloadProgressChanged(ByVal sender As System.Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles client.DownloadProgressChanged
        ProgressBar1.Value = e.ProgressPercentage
        'TextBox1.Text = e.ProgressPercentage.ToString() + "%"
        TextBox2.Text = String.Format("正在下载文件,完成进度{0}/{1}(KB)", e.BytesReceived / 1024, e.TotalBytesToReceive / 1024)
    End Sub
    Private Sub DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles client.DownloadFileCompleted
        'MessageBox.Show("下载程序成功!", "提示", MessageBoxButtons.OK)
        If e.Error Is Nothing Then
            'MessageBox.Show("下载程序成功!", "提示", MessageBoxButtons.OK)
        Else
            MessageBox.Show("下载程序失败!", "提示", MessageBoxButtons.OK)
            Application.Exit()
            Return
        End If
        If e.Cancelled = True Then
            MessageBox.Show("下载程序取消!", "提示", MessageBoxButtons.OK)
        Else
            For Each p As Process In Process.GetProcesses
                If p.ProcessName = "intelligent-medicine-abinet" Then 'If you don't kNow what your program's process name is,simply run your program,run windows task manager,select 'processes' tab,scroll down untill you find your programs name.
                    p.Kill()
                End If
            Next
            Threading.Thread.Sleep(5000)
            zipExeAllDeComp(AssemPath & "/Update.zip", AssemPath)
            'IO.File.Delete("intelligent-medicine-abinet.exe")
            'IO.File.Move("intelligent-medicine-abinet_update.exe", "intelligent-medicine-abinet.exe")
            MessageBox.Show("更新程序成功,请启动程序!", "提示", MessageBoxButtons.OK)
        End If
        Application.Exit()
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs)
        DownLoadFiles()
    End Sub
    Public Sub zipExeAllDeComp(ByVal zipFpn As String, DeCompPath As String)
        Dim Roptions As ReadOptions = New ReadOptions()
        Roptions.Encoding = Encoding.Default '解决zip 解压中文名乱码
        Using zip As ZipFile = ZipFile.Read(zipFpn, Roptions)
            'zip.Password = "123456"
            Dim fs As Object
            fs = CreateObject("Scripting.FileSystemObject")
            For Each entry As ZipEntry In zip
                Debug.Print("文件名:" & entry.FileName)
                If entry.IsDirectory Then
                    Dim fpath As String = AssemPath & "\" & entry.FileName.Replace("/", "")
                    If IO.Directory.Exists(fpath) Then
                        fs.deletefolder(fpath)
                    End If
                    'fs.deletefolder(AssemPath & "\" & entry.FileName.Replace("/", ""))
                    'IO.Directory.Delete(entry.FileName)
                Else
                    IO.File.Delete(entry.FileName)
                End If
                entry.Extract(DeCompPath)
            Next
        End Using
    End Sub
End Class
Module TxtRead
    Public updateUrl As String
    Public equNumFilePath As String
    Public password As String
    Public equNum As String
    Public app As String = Assembly.GetAssembly(GetType(Form1)).Location
    Public AssemPath As String = System.IO.Path.GetDirectoryName(app)
    Public Function readTxt()
        'Dim app As String = Assembly.GetAssembly(GetType(Form1)).Location
        'Dim AssemPath As String = System.IO.Path.GetDirectoryName(app)
        Debug.Print("1111111:" & AssemPath)
        Dim arr
        Dim str
        Dim i As Long
        arr = Split(CreateObject("scripting.filesystemobject").opentextfile(AssemPath & "\Uconfig.txt").readall, vbNewLine)
        For i = 0 To UBound(arr)
            str = Split(arr(i), "=")
            If str(0) = "updateUrl" Then
                updateUrl = str(1)
            End If
        Next
        Debug.Print(updateUrl)
    End Function
End Module

+ 38 - 0
Update/My Project/Application.Designer.vb

@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.42000
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
    
    'NOTE: This file is auto-generated; do not modify it directly.  To make changes,
    ' or if you encounter build errors in this file, go to the Project Designer
    ' (go to Project Properties or double-click the My Project node in
    ' Solution Explorer), and make changes on the Application tab.
    '
    Partial Friend Class MyApplication
        
        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Sub New()
            MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
            Me.IsSingleInstance = false
            Me.EnableVisualStyles = true
            Me.SaveMySettingsOnExit = true
            Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
        End Sub
        
        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Protected Overrides Sub OnCreateMainForm()
            Me.MainForm = Global.Update.Form1
        End Sub
    End Class
End Namespace

+ 11 - 0
Update/My Project/Application.myapp

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <MySubMain>true</MySubMain>
  <MainForm>Form1</MainForm>
  <SingleInstance>false</SingleInstance>
  <ShutdownMode>0</ShutdownMode>
  <EnableVisualStyles>true</EnableVisualStyles>
  <AuthenticationMode>0</AuthenticationMode>
  <ApplicationType>0</ApplicationType>
  <SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

+ 35 - 0
Update/My Project/AssemblyInfo.vb

@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' 有关程序集的常规信息通过下列特性集
' 控制。更改这些特性值可修改
' 与程序集关联的信息。
' 查看程序集特性的值
<Assembly: AssemblyTitle("Update")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("Update")> 
<Assembly: AssemblyCopyright("Copyright © Microsoft 2022")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: ComVisible(False)>
'如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
<Assembly: Guid("fe364216-6256-4641-81be-55bc51b930ac")> 
' 程序集的版本信息由下面四个值组成: 
'
'      主版本
'      次版本
'      生成号
'      修订号
'
' 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
' 方法是按如下所示使用“*”: 
' <Assembly: AssemblyVersion("1.0.*")> 
<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 

+ 62 - 0
Update/My Project/Resources.Designer.vb

@ -0,0 +1,62 @@
'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.42000
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My.Resources
    
    'This class was auto-generated by the StronglyTypedResourceBuilder
    'class via a tool like ResGen or Visual Studio.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    '''<summary>
    '''  A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
     Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
    Friend Module Resources
        Private resourceMan As Global.System.Resources.ResourceManager
        Private resourceCulture As Global.System.Globalization.CultureInfo
        '''<summary>
        '''  Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
            Get
                If Object.ReferenceEquals(resourceMan, Nothing) Then
                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Update.Resources", GetType(Resources).Assembly)
                    resourceMan = temp
                End If
                Return resourceMan
            End Get
        End Property
        '''<summary>
        '''  Overrides the current thread's CurrentUICulture property for all
        '''  resource lookups using this strongly typed resource class.
        '''</summary>
        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
        Friend Property Culture() As Global.System.Globalization.CultureInfo
            Get
                Return resourceCulture
            End Get
            Set(ByVal value As Global.System.Globalization.CultureInfo)
                resourceCulture = value
            End Set
        End Property
    End Module
End Namespace

+ 117 - 0
Update/My Project/Resources.resx

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

+ 73 - 0
Update/My Project/Settings.Designer.vb

@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.42000
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
    Partial Friend NotInheritable Class MySettings
        Inherits Global.System.Configuration.ApplicationSettingsBase
        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
        Private Shared addedHandler As Boolean
        Private Shared addedHandlerLockObject As New Object
        <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
        Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
            If My.Application.SaveMySettingsOnExit Then
                My.Settings.Save()
            End If
        End Sub
#End If
#End Region
        Public Shared ReadOnly Property [Default]() As MySettings
            Get
#If _MyType = "WindowsForms" Then
                   If Not addedHandler Then
                        SyncLock addedHandlerLockObject
                            If Not addedHandler Then
                                AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
                                addedHandler = True
                            End If
                        End SyncLock
                    End If
#End If
                Return defaultInstance
            End Get
        End Property
    End Class
End Namespace
Namespace My
    
    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _
     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _
    Friend Module MySettingsProperty
        
        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _
        Friend ReadOnly Property Settings() As Global.Update.My.MySettings
            Get
                Return Global.Update.My.MySettings.Default
            End Get
        End Property
    End Module
End Namespace

+ 7 - 0
Update/My Project/Settings.settings

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>

+ 131 - 0
Update/Update.vbproj

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{55C57002-B5EC-45A4-AA87-BBD71535EA3F}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <StartupObject>Update.My.MyApplication</StartupObject>
    <RootNamespace>Update</RootNamespace>
    <AssemblyName>Update</AssemblyName>
    <FileAlignment>512</FileAlignment>
    <MyType>WindowsForms</MyType>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <OutputPath>bin\Debug\</OutputPath>
    <DocumentationFile>Update.xml</DocumentationFile>
    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DocumentationFile>Update.xml</DocumentationFile>
    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>Off</OptionStrict>
  </PropertyGroup>
  <PropertyGroup>
    <OptionInfer>On</OptionInfer>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Ionic.Zip">
      <HintPath>..\Ionic.Zip.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
  </ItemGroup>
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Collections.Generic" />
    <Import Include="System.Data" />
    <Import Include="System.Drawing" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
    <Import Include="System.Linq" />
    <Import Include="System.Xml.Linq" />
    <Import Include="System.Threading.Tasks" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Form1.vb">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Form1.Designer.vb">
      <DependentUpon>Form1.vb</DependentUpon>
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="My Project\AssemblyInfo.vb" />
    <Compile Include="My Project\Application.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Application.myapp</DependentUpon>
    </Compile>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Include="Form1.resx">
      <DependentUpon>Form1.vb</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
      <SubType>Designer</SubType>
    </EmbeddedResource>
  </ItemGroup>
  <ItemGroup>
    <None Include="My Project\Application.myapp">
      <Generator>MyApplicationCodeGenerator</Generator>
      <LastGenOutput>Application.Designer.vb</LastGenOutput>
    </None>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <CustomToolNamespace>My</CustomToolNamespace>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <None Include="App.config" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>

BIN
Update/bin/Debug/Ionic.Zip.dll


+ 1 - 0
Update/bin/Debug/Uconfig.txt

@ -0,0 +1 @@
updateUrl=https://ehr.yihu.com/hlwyy/zjxl/healthMonitoring/demo/Update.zip

BIN
Update/bin/Debug/Update.exe


+ 6 - 0
Update/bin/Debug/Update.exe.config

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
</configuration>

BIN
Update/bin/Debug/Update.pdb


BIN
Update/bin/Debug/Update.vshost.exe


+ 6 - 0
Update/bin/Debug/Update.vshost.exe.config

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
</configuration>

+ 11 - 0
Update/bin/Debug/Update.vshost.exe.manifest

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

+ 24 - 0
Update/bin/Debug/Update.xml

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>
Update
</name>
</assembly>
<members>
<member name="P:Update.My.Resources.Resources.ResourceManager">
	<summary>
  Returns the cached ResourceManager instance used by this class.
</summary>
</member><member name="P:Update.My.Resources.Resources.Culture">
	<summary>
  Overrides the current thread's CurrentUICulture property for all
  resource lookups using this strongly typed resource class.
</summary>
</member><member name="T:Update.My.Resources.Resources">
	<summary>
  A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
</members>
</doc>

BIN
Update/bin/Debug/Update.zip


BIN
Update/bin/Debug/intelligent-medicine-abinet.exe


BIN
Update/bin/update.zip


BIN
Update/obj/Debug/DesignTimeResolveAssemblyReferences.cache


BIN
Update/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


BIN
Update/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll


BIN
Update/obj/Debug/Update.Form1.resources


BIN
Update/obj/Debug/Update.Resources.resources


BIN
Update/obj/Debug/Update.exe


BIN
Update/obj/Debug/Update.pdb


+ 12 - 0
Update/obj/Debug/Update.vbproj.FileListAbsolute.txt

@ -0,0 +1,12 @@
c:\users\administrator\documents\visual studio 2013\Projects\Update\Update\bin\Debug\Update.exe.config
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\bin\Debug\Update.exe
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\bin\Debug\Update.pdb
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\bin\Debug\Update.xml
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.Form1.resources
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.Resources.resources
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.vbproj.GenerateResource.Cache
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.exe
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.xml
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.pdb
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\obj\Debug\Update.vbprojResolveAssemblyReference.cache
C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Update\Update\bin\Debug\Ionic.Zip.dll

BIN
Update/obj/Debug/Update.vbproj.GenerateResource.Cache


BIN
Update/obj/Debug/Update.vbprojResolveAssemblyReference.cache


+ 24 - 0
Update/obj/Debug/Update.xml

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>
Update
</name>
</assembly>
<members>
<member name="P:Update.My.Resources.Resources.ResourceManager">
	<summary>
  Returns the cached ResourceManager instance used by this class.
</summary>
</member><member name="P:Update.My.Resources.Resources.Culture">
	<summary>
  Overrides the current thread's CurrentUICulture property for all
  resource lookups using this strongly typed resource class.
</summary>
</member><member name="T:Update.My.Resources.Resources">
	<summary>
  A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
</members>
</doc>