initial commit

This commit is contained in:
Arin(asus)
2024-11-26 20:15:16 +09:00
commit 973524ee77
435 changed files with 103766 additions and 0 deletions

6
VMSMonitor/App.config Normal file
View File

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

144
VMSMonitor/ArinXMl.vb Normal file
View File

@@ -0,0 +1,144 @@
Imports System.Xml
Public Class ArinXML
Private File As String
Private vDocu As XmlDocument = Nothing
Private nsmgr As XmlNamespaceManager
Public Root As XmlElement
Public ReadOnly Property Docu() As XmlDocument
Get
Return Me.vDocu
End Get
End Property
Public ReadOnly Property Filename As String
Get
Return Me.File
End Get
End Property
Public Sub New(ByVal Filename As String)
Me.File = Filename
If Exist() Then '//파일이 존재하면 도큐먼트반환
Me.vDocu = New XmlDocument
nsmgr = New XmlNamespaceManager(New Xml.NameTable)
nsmgr.AddNamespace("x", "http://tindevil.com")
Try
Me.vDocu.Load(Filename)
Root = vDocu.DocumentElement
Catch ex As Exception
Me.vDocu = Nothing
Me.Root = Nothing
End Try
End If
End Sub
Public Sub New(ByVal docu As Xml.XmlDocument)
Me.vDocu = docu
Me.File = My.Application.Info.DirectoryPath & "\temp.xml"
nsmgr = New XmlNamespaceManager(New Xml.NameTable)
nsmgr.AddNamespace("x", "http://tindevil.com")
Root = vDocu.DocumentElement
End Sub
''' <summary>
''' 파일존재여부
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Function Exist() As Boolean
If Not vDocu Is Nothing Then Return True
Return System.IO.File.Exists(Me.File)
End Function
Public Sub CreateFile()
'//주어진파일명으로 기본파일을 생성한다.
Dim NewXml As New System.Text.StringBuilder
NewXml.AppendLine("<?xml version='1.0' encoding='KSC5601'?>")
NewXml.AppendLine("<tindevil xmlns='http://tindevil.com'> ")
NewXml.AppendLine("</tindevil>")
If System.IO.File.Exists(Me.File) Then System.IO.File.Delete(Me.File)
My.Computer.FileSystem.WriteAllText(Me.File, NewXml.ToString.Replace("'", Chr(&H22)), False)
Me.vDocu = New XmlDocument
Me.vDocu.Load(Me.File)
nsmgr = New XmlNamespaceManager(New Xml.NameTable)
nsmgr.AddNamespace("x", "http://tindevil.com")
Root = vDocu.DocumentElement
End Sub
Public Function Read(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As String = "", Optional ByVal Nullvalue As String = "") As String '//변수초기화
'//파일이없을경우 빈값을 반환합니다.
If Exist() = False Then Return ""
Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
If L Is Nothing Then Return ""
Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
If C Is Nothing Then Return ""
Return C.InnerText
End Function
Public Function Get_NameSpace() As XmlNamespaceManager
Return Me.nsmgr
End Function
Public Function NS() As XmlNamespaceManager
Return Me.nsmgr
End Function
Public Function CreateElement(ByVal name As String) As XmlElement
Return Me.Docu.CreateElement(name, Me.NS.DefaultNamespace)
End Function
Public Function GetNode(ByVal appkey As String) As XmlElement
'//파일이없을경우 빈값을 반환합니다.
If Docu Is Nothing Then Return Nothing
Return Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
End Function
Public Function GetNodes(ByVal appkey As String) As Xml.XmlNodeList
'//파일이없을경우 빈값을 반환합니다.
If Docu Is Nothing Then Return Nothing
Dim L As XmlNodeList = Me.Root.SelectNodes(appkey, nsmgr) '//appkey를 먼저 조회한다.
Return L
End Function
Public Property Data(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As Object = "", Optional ByVal trim As Boolean = False) As String
Get
'//파일이없을경우 빈값을 반환합니다.
If Exist() = False Then Return defaltvalue
Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
If L Is Nothing Then Return defaltvalue
Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
If C Is Nothing Then Return defaltvalue
If trim Then
Return C.InnerText.Trim
Else
Return C.InnerText
End If
End Get
Set(ByVal value As String)
'//파일이없을경우 빈값을 반환합니다.
If Exist() = False Then Return
Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
If L Is Nothing Then '//만들어야한다.
L = Me.Docu.CreateElement(appkey)
Me.Root.AppendChild(L)
End If
Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
If C Is Nothing Then '//만들어야한다.
C = Me.Docu.CreateElement(subkey)
C.InnerText = value
L.AppendChild(C)
Else
C.InnerText = value
End If
Me.Docu.Save(Me.File)
'MsgBox(value)
End Set
End Property
Public Sub Save()
Me.Docu.Save(Me.File)
End Sub
End Class

172
VMSMonitor/Form1.Designer.vb generated Normal file
View File

@@ -0,0 +1,172 @@
<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 Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.bt_monitor = New System.Windows.Forms.ToolStripButton()
Me.bt_run = New System.Windows.Forms.ToolStripButton()
Me.bt_kill = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.status_monitor = New System.Windows.Forms.ToolStripStatusLabel()
Me.status_run = New System.Windows.Forms.ToolStripStatusLabel()
Me.status_create = New System.Windows.Forms.ToolStripStatusLabel()
Me.lb_msg = New System.Windows.Forms.ToolStripStatusLabel()
Me.ToolStrip1.SuspendLayout()
Me.StatusStrip1.SuspendLayout()
Me.SuspendLayout()
'
'Timer1
'
Me.Timer1.Interval = 1000
'
'Timer2
'
Me.Timer2.Interval = 1000
'
'ToolStrip1
'
Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32)
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_monitor, Me.bt_run, Me.bt_kill, Me.ToolStripButton1})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(496, 39)
Me.ToolStrip1.TabIndex = 4
Me.ToolStrip1.Text = "ToolStrip1"
'
'bt_monitor
'
Me.bt_monitor.Image = CType(resources.GetObject("bt_monitor.Image"), System.Drawing.Image)
Me.bt_monitor.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_monitor.Name = "bt_monitor"
Me.bt_monitor.Size = New System.Drawing.Size(103, 36)
Me.bt_monitor.Text = "모니터시작"
'
'bt_run
'
Me.bt_run.Enabled = False
Me.bt_run.Image = CType(resources.GetObject("bt_run.Image"), System.Drawing.Image)
Me.bt_run.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_run.Name = "bt_run"
Me.bt_run.Size = New System.Drawing.Size(93, 36)
Me.bt_run.Text = "VPS 실행"
'
'bt_kill
'
Me.bt_kill.Enabled = False
Me.bt_kill.Image = CType(resources.GetObject("bt_kill.Image"), System.Drawing.Image)
Me.bt_kill.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_kill.Name = "bt_kill"
Me.bt_kill.Size = New System.Drawing.Size(117, 36)
Me.bt_kill.Text = "VPS 강제종료"
'
'ToolStripButton1
'
Me.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image)
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(115, 36)
Me.ToolStripButton1.Text = "프로그램종료"
'
'ProgressBar1
'
Me.ProgressBar1.Dock = System.Windows.Forms.DockStyle.Fill
Me.ProgressBar1.Location = New System.Drawing.Point(0, 39)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(496, 93)
Me.ProgressBar1.TabIndex = 5
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.status_monitor, Me.status_run, Me.status_create, Me.lb_msg})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 110)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(496, 22)
Me.StatusStrip1.TabIndex = 6
Me.StatusStrip1.Text = "StatusStrip1"
'
'status_monitor
'
Me.status_monitor.Name = "status_monitor"
Me.status_monitor.Size = New System.Drawing.Size(66, 17)
Me.status_monitor.Text = "● Monitor"
'
'status_run
'
Me.status_run.Name = "status_run"
Me.status_run.Size = New System.Drawing.Size(45, 17)
Me.status_run.Text = "● VPS"
'
'status_create
'
Me.status_create.Name = "status_create"
Me.status_create.Size = New System.Drawing.Size(44, 17)
Me.status_create.Text = "● Run"
'
'lb_msg
'
Me.lb_msg.Name = "lb_msg"
Me.lb_msg.Size = New System.Drawing.Size(53, 17)
Me.lb_msg.Text = "Message"
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(496, 132)
Me.Controls.Add(Me.StatusStrip1)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.ToolStrip1)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.MaximizeBox = False
Me.Name = "Form1"
Me.Text = "VPS STARTER"
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Timer1 As System.Windows.Forms.Timer
Friend WithEvents Timer2 As System.Windows.Forms.Timer
Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip
Friend WithEvents bt_monitor As System.Windows.Forms.ToolStripButton
Friend WithEvents bt_run As System.Windows.Forms.ToolStripButton
Friend WithEvents bt_kill As System.Windows.Forms.ToolStripButton
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip
Friend WithEvents lb_msg As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents status_run As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents status_monitor As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents status_create As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton
End Class

284
VMSMonitor/Form1.resx Normal file
View File

@@ -0,0 +1,284 @@
<?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=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>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>107, 17</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>197, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bt_monitor.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMpSURBVFhH7ZfLS1RRHMe1rCCkqAwiqkV/hhtbutBQUHyC
gWCaZas22jg+Z8zMHNTRZBAbRB1d2aaFq9z6FoUW4trw/QZRfp3PoTOMwhmtmYEWCl/OY7738/3Onbl3
rnFxl3+XZ+B/OgMjIyNeJYmxvNb3PDw8LMfHx3JychITwSbDWiAQCMjR0ZEcHBzI4eFhVAUTNhnWAoOD
g7K/vy87OzuSnJwsz9PToyJYMGGTYS0wMDAQLJCWliavysqkrLQ0IsGAZQqQYS3Q39+vC2xvb0t2dra8
r6qSaocjIsGABRM2GdYCfr9f9vb2tDknJydqBWDBhE2GtUBfX582bW1tSX5+ftQKwIIJmwxrgd7eXm3a
3NyUwsLCiE596EcHCyZsMqwFfD6f7O7uysbGhrwoKpLamppgiZWVlX8qBAMWTNhkWAv09PQECxQXF0uT
261LGFEidH2ROQxYpgAZ1gLdXV26wPr6upSUlIinrU1cjY2nRImze+HWMGDBhE2GtYC3s1Nfr2tra/ra
/9LdLR+bm4MiPHR9kTkMWDBhk2Et0N7erk2rq6vyurxcvqpvLO8AEW7mZs3e2f1QD3MYsGDCJsNawOPx
aNPi4qK8raiQwNCQbhyJYMCCCZsMa4HPra3atLCwIFWVlTI6OirfIhQMWDBhk2Et8KmlRd+x5ufnpaG+
/q8/b9t3AhZM2GRYCwDANDc3pw+IpmDCJsNa4ENTkzbNzMzI7OxsVAUTNhnWAm6XS9+zp6endQnU0dFx
SmY/3Oj2v5Fn7xKF0fhgwibDWqCxoUGbJicnZWpqSovnQ3O5MTf74cYK31P5+eulMBofTNhkWAvU19Vp
08TEhC6BxsbGTsnshxsDP0rF9T1BGI0PJmwyrAXqamv1DWN8fDwmgk2GtUCN0ynLy8uytLQUE8Emw1rA
6XB4ndXVElOpjPP+F4p3Op1X1C/YNfUwebOgoOCWeqK5k5WVdTcvLy9JPd89yMzMfKQesx6r+RMj1rm5
uQ+V735GRsY9jlGv3VZKTE1NvaHGqyo4/rzw0Ncx6zJGQFJSUhIoh9T6uhFr5UvAE3rMn1Br8G+IV7/l
/QuMLAAAAABJRU5ErkJggg==
</value>
</data>
<data name="bt_run.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANwSURBVFhH7ZbpT1NBFMXdKNQKtCwKKgYNRgVZCm0phRYR
cQkitVoIyGYkpAqYEIIxKIggxAqiaNS4xS1YZNUqi2AgLmGVHREEBBQR/4rjTIMJRBSpgH7oS05e+/qm
9zfn3rkzCxboLp0DOgd+44Cnp+cSFxcXYz6fb0Hv9Pu8GkaDHsk0OZmUZ9AVlW6WweVyNwmFQpN5A3F0
dLQ+nsvsaRiMxt1aLk7kMocVZ00vkud2xBVTAqg3p444OTnZnlbroW1Egd5vqWj9fAK5DWIkqhhjCqXp
LVcPexcHB4fltra2DAKycNZhnJ2d7ZNL9NA4HEgUTEBi8H4sBe0jychv2oFTj/VxOMtEJd5uJ6J1YmNj
oz+rIBQgsVAP9UOBqB3cr1H9YBBaPinw7msSOkZTUfTWD8klLERlcYq9Zeu3kfSsInXCnBUQCnAsj4Ha
j3K8GZBNUu2AHE3DkegcTUTXaBoetwQguYiDqHPsCv9D1oE8Hs+KpIdFQBZpnRoKEPeAQQLvw+t+6dQi
vzUMRZC0JBCQVDxrC0dSgRkOKg1rpAqrcApCVo2BVo5QgNg7+iSwDC/7/KeRlDgVSgo1Hp1fUlHeHolT
BWtwMINduTNgLX+8PmZmBgVQ3NTHyw9S1PTu+WO97gvAm/4DeNUXiBs1XISksW+LRCLDmUUnb1OAQ1cN
8KTNC0Ut4mlV3CrBs04fVPdKUdW9F0r1RkReY2KL1MZTawfCcpgoapPgUbPol8pvdkdJuxcqe/zwomcv
MtWbEXGZBVmCuYovcnQan/3M+wR1IOg8E/nNHnjYKPxJqkY3FLZIUNa1SzPj7FIuwnIM4Z9gVixwtxdO
aFIzdl8zgALIlUvxsEmE+/X8SVKRZ+qO7ajs9kdOGQ8hF4zhG2/yVOy7YQcZZzneHbUL/GMUBZCeWYoH
ja64U+esEf1c3L4VFd27calCgOAsDnbFmVaIZWv30Sak9ZKbCpUC7E5h4V4dH3freCQVEpS/88WV524I
OW8On1hOjVhurVnrs9b9JoLQzWhnEosUnwSlJM/Xqz1I4BXwjmHXi4NXR9Pd8q+73e+SRAN4x7F7rla5
IizbEl5HjTo8DqxKJDNeR3K8TC6XL/67JE8zmh5IxBEWJyWxRl3uoSvTiSPrBQKB0bwdSP75kWxO7dX9
uc6B/8WB7+oZG+bTszTSAAAAAElFTkSuQmCC
</value>
</data>
<data name="bt_kill.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOISURBVFhH7Zb7S1NxGMatrJ1mpfPW0jSLkIooSud0ZjNT
3HK5rXZzaqXSgki6W79JdA+ie0FFBQVBCZUlERWRlkVRkanzbOYlmJN+aX9A8PR+V0IEeb7q+dHBB3bY
e97neZ/3e7ZFRIy/xhMYT4AzgY6VynPteVE/O/RRkKI9T3mRsy1f2RcS767R4sfDq/jRdH14Hl3D1806
yGaibYXytK98KQbP7cbAiS34tt+Cb/vM/2Xg+BYMXqhDd5UGbWNN4hOJd5UtRvDMTgSOe9C/rxT9dWsl
CRzbjOCFvfBVZeHzaE18zFOe9DoWkviO3+J1JL7XxE3gaA2C5/eQCQ0+kYk79ohJfAunKibeYUtH8NR2
sGn695Dw7pIREzhcjeDZXRCrtfjAa+J97tQDbeY0BE9uwwCbPCxsHDWBQ5swSCv0upfgXS7H0/FWJ3z3
b1yGwJFq9O0yom9n8ZgJHNyA7koysEIJyTW05gqhblc6+naQ8PYi2fjqXoC3uRwGXumEkN8xH321hbLC
hmrVcRhoIQM+2zz0biuQFTbUK91U6RU055CBdWno3ZovK37bXDTncBh4kS2EROsciOYUWfGvT8OLbA4D
z7VkgImbkmXFb0nFcy2HgadkoKs0CV0lalnxmZNBvaXPwOMsIeQ1qeE1JsrHmkSINNSTLB4DminfRUsS
/OYkeIvjZcFXOgs+6tekEUKSX0RNGsWBl/po9LjS4CtVo7ModkyIppnocc7Bm8JYNGUqjkoaYAWNGcLp
sAlHKnwliehcHTMqxDUJ6KUerUVxaMwULt5ZFDGFywAresBMrIr5bYIadRZEjwjRGI9eewpeF8bhPhMf
wc/xhPr6+okej2dyQ6Zw6WU+JWGfDdFIq1g1nQvREEviySSuAvW44jFlKO12O/s/MEEyASZeW1ursNls
scTcm5ro2+EkbPRoGlToyJ82LF3FqnBtC63tVnbM3UqnZSGJqysqKqL0en2kpAnmlBU7nc4Uh8Ohcblc
JVd0M582F6gQqJnPRQtNflmnfkb3WqnHSuqVzgai3uwMDJ/CvwlQg6VE9g2t6l7DcgV4YLVlZWU5brc7
g4mPKAHmcOgMmEwmZXl5+QxqpGITUNN41sxqtc5mCdH71CHYNU2cRHUJFosljt1Dn0UT0wwGg4L7DPx1
SFhUYTNDsCZsj+yAMlikQ7BrqotkNX/f8yfy/8b+Cyvx1MsdZ4/QAAAAAElFTkSuQmCC
</value>
</data>
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGGSURBVFhH7ZbPKwRxGMb3ZNbuQblNbbTRZidqm1k/1yJt
22a1mNLi6qZoIyv/hvInOEqIthRKKSlJ+4OLmcXNyV/w+j7l6jDPHqRm6mlOz+f99F6+byDgf/4G/A38
sgHDMNpM09Qty+pT/wEmP10dLM+LxvCzVGelNhmWVgIGWJ4FYF9Vwz8P9uTr6oQKumCA5VkAK3+aCMv7
7oo0t4tU0AUDLErgMR2Wt51lcbeKVNAFgxZ4SIekWcbwRSrogkEL3I8rAQwv2VTQBYMWuEuFxN20xdmY
p4IuGLTA7ZgSKC2Is16ggi4YtMDNaLu4avjrWp4KumDQAteq/GL3S6MQp4IuGLTA5YgSmFPD8zEq6IJB
C1wMB+V5Nib1XA8VdMGgBSpDSmCmV+rZKBV0waAFzgeD0shFpZbpooIuGLTAaVIJZLulNh2hgi4YtMBx
UpN6JiLVKZ0KumBQAnhCjyxNnKW4fKwmqKALBvsc6/uJjsqhqUkrAYM6SP78JPN8QPgFfwP/dQPf75A9
ouq07JEAAAAASUVORK5CYII=
</value>
</data>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>306, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8AAAAAAQAAAAIAAAAEAAAABwAAAAoAAAALAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA
AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACwAAAAoAAAAHAAAABAAA
AAIAAAAB////AP///wAAAAACAAAABwAAAA0AAAAWAAAAHQAAACIAAAAkAAAAJAAAACQAAAAkAAAAJAAA
ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAAHQAA
ABYAAAANAAAABwAAAAL///8A////AAAAAAQAAAANAAAAGwAAAC0AAAA6AAAAQwAAAEgAAABIAAAASAAA
AEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAA
AEMAAAA6AAAALQAAABsAAAANAAAABP///wD///8AAAAABwAAABZ9VjSpjWE7/41hO/+NYTv/jWE7/41h
O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h
O/+NYTv/jWE7/41hO/+NYTv/fVY0qQAAABYAAAAH////AP///wAAAAAKAAAAHY1hO/+0Yz3/tGM9/7Rj
Pf/p0cX/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/6dHF/7Rj
Pf/p0cX/3rqq/+nRxf+0Yz3/tGM9/7RjPf+NYTv/AAAAHQAAAAr///8A////AAAAAAsAAAAijWE7/7Vk
Pv+1ZD7/tWQ+/+nRxf/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967
qv/p0cX/tWQ+/+nRxf/eu6r/6dHF/7VkPv+1ZD7/tWQ+/41hO/8AAAAiAAAAC////wD///8AAAAADAAA
ACSNYTv/t2U//7dlP/+3ZT//6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rR
xv/q0cb/6tHG/+rRxv+3ZT//6tHG/+rRxv/q0cb/t2U//7dlP/+3ZT//jWE7/wAAACQAAAAM////AP//
/wAAAAAMAAAAJI1hO/+3Z0D/t2dA/7dnQP+3Z0D/t2dA/7dnQP+4aEH/uGlB/7hpQf+5aUL/uWpC/7lq
Qv+5akL/uWpC/7lqQv+5aUL/uGlB/7hpQf+4aEH/t2dA/7dnQP+3Z0D/t2dA/7dnQP+NYTv/AAAAJAAA
AAz///8A////AAAAAAwAAAAkjWE7/7lpQf+5aUH/uWlB/7lpQf+6akL/umtC/7trQ/+7bEP/vG1E/7xu
RP+9bkT/vW5E/71vRf+9bkT/vW5E/7xuRP+8bUT/u2xD/7trQ/+6a0L/umpC/7lpQf+5aUH/uWlB/41h
O/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/umtD/7prQ/+6a0P/u2xE/7ttRP+8bkX/vW9G/75w
Rv++cUf/v3JH/79zSP+/c0j/v3NI/79zSP+/c0j/v3JH/75xR/++cEb/vW9G/7xuRf+7bUT/u2xE/7pr
Q/+6a0P/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1hO/+7bUT/u21E/7xuRf+9cEb/vXFG/75y
R/+/dEj/wHVJ/8F2Sv/Bd0r/wnhL/8J4S//CeUv/wnhL/8J4S//Bd0r/wXZK/8B1Sf+/dEj/vnJH/71x
Rv+9cEb/vG5F/7ttRP+NYTv/AAAAJAAAAAz///8A////AAAAAAwAAAAkjWE7/71vRf++cEb/v3JH/79z
R//AdUn/wXZK/8J4S//DeUv/xHtN/8V8Tf/FfU7/xn1O/8Z+Tv/GfU7/xX1O/8V8Tf/Ee03/w3lL/8J4
S//Bdkr/wHVJ/79zR/+/ckf/vnBG/41hO/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/v3JI/79z
SP/AdUr/wXdL/8N5TP/Ee03/xX1P/8Z+T//HgFD/x4FR/8iCUv/Ig1L/yINS/8iDUv/IglL/x4FR/8eA
UP/Gfk//xX1P/8R7Tf/DeUz/wXdL/8B1Sv+/c0j/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1h
O//XpYn/16aJ/9iniv/ZqYv/2aqM/9usjf/brY7/3K6O/9ywj//dsZD/3bKQ/96ykf/espH/3rKR/92y
kP/dsZD/3LCP/9yujv/brY7/26yN/9mqjP/ZqYv/2KeK/9emif+NYTv/AAAAJAAAAAz///8A////AAAA
AAwAAAAkjWE7/9eniv/YqIv/2aqM/9qsjf/brY7/3K+P/9ywkP/dspH/3rOS/960k//ftZP/37WU/9+1
lP/ftZT/37WT/960k//es5L/3bKR/9ywkP/cr4//262O/9qsjf/Zqoz/2KiL/41hO/8AAAAkAAAADP//
/wD///8AAAAADAAAACSNYTv/2amL/9mqjP/arI3/266O/9ywkP/dspH/3rOS/961k//gt5T/4LiV/+C5
lv/huZb/4bmW/+G5lv/guZb/4LiV/+C3lP/etZP/3rOS/92ykf/csJD/266O/9qsjf/Zqoz/jWE7/wAA
ACQAAAAM////AP///wAAAAAMAAAAJI1hO//aq4z/26yN/9yujv/csJD/3rKR/960kv/gtpT/4LiV/+G6
lv/iu5b/4ryX/+O9l//jvZj/472X/+K8l//iu5b/4bqW/+C4lf/gtpT/3rSS/96ykf/csJD/3K6O/9us
jf+NYTv/AAAAJAAAAAz///8A////AAAAAAsAAAAijWE7/9usjv/cro//3LCQ/96ykv/etJP/4LaU/+C4
lv/iupf/4ryY/+O+mf/kv5r/5MCb/+TAm//kwJv/5L+a/+O+mf/ivJj/4rqX/+C4lv/gtpT/3rST/96y
kv/csJD/3K6P/41hO/8AAAAiAAAAC////wD///8AAAAACgAAAB2NYTv/////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////jWE7/wAAAB0AAAAK////AP///wAAAAAHAAAAFo1hO///////3qqB////
////////////////////////////////////////////////////////////////////////////////
////////////////////////3qqB//////+NYTv/AAAAFgAAAAf///8A////AAAAAAQAAAANjWE7////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////41hO/8AAAANAAAABP///wD///8AAAAAAgAA
AAeJXjmbjWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h
O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/iV45mwAAAAcAAAAC////AP//
/wAAAAABAAAAAgAAAAQAAAAHAAAACgAAAAsAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA
AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALAAAACgAAAAcAAAAEAAAAAgAA
AAH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8AgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAH/////////////
//////////////////////////////////8=
</value>
</data>
</root>

306
VMSMonitor/Form1.vb Normal file
View File

@@ -0,0 +1,306 @@
Public Class Form1
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)
Private Const WM_QUIT = &H12
Private Const WM_CLOSE = &H10
Private ison As Boolean = False
Private ismonitor As Boolean = False
Dim totaltime As TimeSpan
Dim ercnt As Integer = 0
Dim starttime As Integer = 0
Dim Xml As ArinXML
Dim Createfile As String = ""
Dim CreateStart As String = ""
Dim killon As Boolean = False
Dim fclose As Boolean = False
Dim autoexit As Short = 0
Dim runtime As String = Now.ToString
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If fclose = False Then e.Cancel = True
Me.WindowState = FormWindowState.Minimized
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 6
totaltime = Nothing
ercnt = 0
Me.bt_monitor.PerformClick()
End Sub
Public Function RunProcess(ByVal 파일이름 As String, Optional ByVal 실행옵션 As String = vbNullString) As Boolean
Dim RunP As Process
Dim B As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo
If FileIO.FileSystem.FileExists(파일이름) Then
B.FileName = 파일이름
B.WorkingDirectory = 파일이름.Substring(0, 파일이름.LastIndexOf("\"))
B.Arguments = 실행옵션
RunP = Process.Start(B)
Return True
Else
Return False
End If
End Function
Public Function checkmyproc() As Process
Try
Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다.
Dim MyPrc As Process
For Each MyPrc In Prc
If MyPrc.ProcessName.ToUpper.IndexOf("VPS.NET") <> -1 Then
Return MyPrc
End If
Next
Return Nothing
Catch ex As Exception
Return Nothing
End Try
End Function
Public Sub KillMyProc(ByVal 클래스명 As String)
Dim Np As IntPtr
Np = FindWindow(클래스명, vbNullString)
'Me.lstOutput.Items.Add("WHND:" & Np.ToInt32.ToString)
If Np = 0 Then
'Form_Standard.MDIMessage.Text = "Cannot Find :" & 클래스명
Exit Sub
End If
PostMessage(Np.ToInt32, WM_QUIT, 0&, 0&)
Sleep(500)
End Sub
Private Sub Msg(ByVal m As String)
Me.lb_msg.Text = m
My.Application.DoEvents()
End Sub
Public Sub oKillMyProc(ByVal 프로세스명 As String)
Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다.
Dim MyPrc As Process
Dim 파일명 As String = 프로세스명.Substring(프로세스명.LastIndexOf("\") + 1).ToUpper
For Each MyPrc In Prc
If (MyPrc.ProcessName & ".EXE").ToUpper = 파일명 Then
' MsgBox(MyPrc.StartInfo.Fileame)
MyPrc.Kill()
End If
Next
Sleep(500)
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim Prc As Process = checkmyproc()
If Prc Is Nothing Then
'//프로세스가 없다.
If Me.Timer2.Enabled = False Then
autoexit += 1
If autoexit > 3 Then
Me.Close()
End If
End If
ison = False
Me.bt_kill.Enabled = False
Me.bt_run.Enabled = True
'Me.Text = "noprocee"
Me.status_run.ForeColor = Color.Gray
If Me.starttime > 0 Then
Me.status_run.ForeColor = Color.Orange
End If
Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml")
Dim File As String = Xml.Data("config", "autocreate")
Dim Filename As String = Xml.Data("config", "createfile")
Runtime = Xml.Data("config", "runtime")
If File.Trim = "1" AndAlso Filename.Trim <> "" AndAlso Me.Timer2.Enabled = False Then
Me.ProgressBar1.ForeColor = Color.Green
Me.Timer2.Enabled = True
Me.Timer2.Start()
End If
Else
autoexit = 0
Me.status_run.ForeColor = Color.Blue
Me.bt_kill.Enabled = True
Me.bt_run.Enabled = False
ison = True
Try
dispalyinfo(Prc)
Catch ex As Exception
End Try
End If
End Sub
Private Sub dispalyinfo(ByVal prc As Process)
Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml")
Createfile = Xml.Data("config", "createfile")
CreateStart = Xml.Data("config", "createstart")
Dim Buf As New System.Text.StringBuilder
Buf.AppendLine("NOW TIME:" & Now.ToString)
If CreateStart.Trim <> "" AndAlso Createfile <> "" Then
Buf.AppendLine(">> 생산중:" & Createfile)
Buf.AppendLine(">> 판정시작:" & CreateStart)
killon = True
Me.status_create.ForeColor = Color.Blue
Else
Me.status_create.ForeColor = Color.Gray
killon = False
End If
Buf.AppendLine("PROCESS NAME:" & prc.ProcessName)
Buf.AppendLine("Start Time:" & prc.StartTime.ToString())
Buf.AppendLine("Total time:" & prc.TotalProcessorTime.ToString())
Buf.AppendLine("SessionID:" & prc.SessionId.ToString)
Buf.AppendLine("Response:" & prc.Responding)
Buf.AppendLine("Handle:" & prc.Handle.ToString)
Buf.AppendLine("Handle Count:" & prc.HandleCount)
Buf.AppendLine("prc.HasExited:" & prc.HasExited)
Buf.AppendLine("prc.Id:" & prc.Id)
Buf.AppendLine("prc.MainWindowTitle:" & prc.MainWindowTitle)
Buf.AppendLine("prc.PrivilegedProcessorTime.ToString:" & prc.PrivilegedProcessorTime.ToString)
Buf.AppendLine("prc.UserProcessorTime.ToString:" & prc.UserProcessorTime.ToString)
Buf.AppendLine("Error Count:" & Me.ercnt)
If Me.totaltime = Nothing Then
Me.totaltime = prc.TotalProcessorTime
Else
Dim ts As TimeSpan = prc.TotalProcessorTime - Me.totaltime
Buf.AppendLine("Run Status:" & ts.ToString())
If (Now - CDate(Me.runtime)).Seconds = 15 And killon Then
Me.ProgressBar1.ForeColor = Color.Red
ercnt += 1
Me.ProgressBar1.Value = ercnt
Else
Me.ProgressBar1.Value = 0
ercnt = 0
End If
Me.totaltime = prc.TotalProcessorTime
If ercnt > 5 And killon Then '//10초를 넘도록
bt_kill.PerformClick()
End If
End If
Buf.AppendLine(prc.ToString())
Dim runtime As String = Xml.Data("config", "runtime")
Msg("Running Time:" & runtime)
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
starttime += 1
Me.ProgressBar1.Value = starttime
If starttime > 5 Then
Me.ProgressBar1.Value = 0
Me.ProgressBar1.ForeColor = Color.Red
Me.bt_run.PerformClick()
starttime = 0
Me.Timer2.Stop()
Me.Timer2.Enabled = False
End If
End Sub
Private Sub bt_monitor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_monitor.Click
Me.ProgressBar1.Value = 0
If Me.ismonitor Then
Me.Timer1.Stop()
Me.Timer1.Enabled = False
Me.ismonitor = False
Me.bt_monitor.Text = "모니터 시작"
Msg("MONITOR OFF")
Me.status_monitor.ForeColor = Color.Gray
Else
Me.Timer1.Enabled = True
Me.Timer1.Start()
Me.ismonitor = True
Me.bt_monitor.Text = "모니터 종료"
Me.status_monitor.ForeColor = Color.Blue
End If
End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_run.Click
If Me.ison Then
MsgBox("중복실행이므로 실행을 할 수 없습니다", MsgBoxStyle.Information, "확인")
Else
RunProcess(My.Application.Info.DirectoryPath & "\vps.net.exe", "TINDEVIL")
End If
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_kill.Click
Dim Prc As Process = checkmyproc()
If Not Prc Is Nothing Then
Dim sta As Boolean = Prc.CloseMainWindow()
If sta Then
My.Application.DoEvents()
While (1)
Dim P As Process = checkmyproc()
If P Is Nothing Then Exit While
My.Application.DoEvents()
End While
Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml")
Xml.Data("config", "autocreate") = "1"
Xml.Data("config", "shutdown") = "0"
Me.ProgressBar1.ForeColor = Color.Green
starttime = 0
Me.Timer2.Enabled = True
Me.Timer2.Start()
Else
Xml = New ArinXML(My.Application.Info.DirectoryPath & "\conf.xml")
Xml.Data("config", "autocreate") = "1"
Xml.Data("config", "shutdown") = "0"
Prc.Kill()
Me.ProgressBar1.ForeColor = Color.Green
starttime = 0
Me.Timer2.Enabled = True
Me.Timer2.Start()
End If
End If
End Sub
Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
End Sub
Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Me.fclose = True
End
End Sub
End Class

179
VMSMonitor/Frm_monitor.Designer.vb generated Normal file
View File

@@ -0,0 +1,179 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_monitor
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 Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_monitor))
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.bt_monitor = New System.Windows.Forms.ToolStripButton()
Me.bt_run = New System.Windows.Forms.ToolStripButton()
Me.bt_kill = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.status_monitor = New System.Windows.Forms.ToolStripStatusLabel()
Me.status_run = New System.Windows.Forms.ToolStripStatusLabel()
Me.lb_msg = New System.Windows.Forms.ToolStripStatusLabel()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.ToolStrip1.SuspendLayout()
Me.StatusStrip1.SuspendLayout()
Me.SuspendLayout()
'
'Timer1
'
Me.Timer1.Interval = 1000
'
'Timer2
'
Me.Timer2.Interval = 1000
'
'ToolStrip1
'
Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32)
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_monitor, Me.bt_run, Me.bt_kill, Me.ToolStripButton1})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(648, 39)
Me.ToolStrip1.TabIndex = 4
Me.ToolStrip1.Text = "ToolStrip1"
'
'bt_monitor
'
Me.bt_monitor.Image = CType(resources.GetObject("bt_monitor.Image"), System.Drawing.Image)
Me.bt_monitor.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_monitor.Name = "bt_monitor"
Me.bt_monitor.Size = New System.Drawing.Size(103, 36)
Me.bt_monitor.Text = "모니터시작"
'
'bt_run
'
Me.bt_run.Enabled = False
Me.bt_run.Image = CType(resources.GetObject("bt_run.Image"), System.Drawing.Image)
Me.bt_run.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_run.Name = "bt_run"
Me.bt_run.Size = New System.Drawing.Size(97, 36)
Me.bt_run.Text = "VMS 실행"
'
'bt_kill
'
Me.bt_kill.Enabled = False
Me.bt_kill.Image = CType(resources.GetObject("bt_kill.Image"), System.Drawing.Image)
Me.bt_kill.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_kill.Name = "bt_kill"
Me.bt_kill.Size = New System.Drawing.Size(91, 36)
Me.bt_kill.Text = "강제종료"
'
'ToolStripButton1
'
Me.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image)
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(115, 36)
Me.ToolStripButton1.Text = "프로그램종료"
'
'ProgressBar1
'
Me.ProgressBar1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.ProgressBar1.Location = New System.Drawing.Point(0, 362)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(648, 23)
Me.ProgressBar1.TabIndex = 5
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.status_monitor, Me.status_run, Me.lb_msg})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 340)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(648, 22)
Me.StatusStrip1.TabIndex = 6
Me.StatusStrip1.Text = "StatusStrip1"
'
'status_monitor
'
Me.status_monitor.Name = "status_monitor"
Me.status_monitor.Size = New System.Drawing.Size(66, 17)
Me.status_monitor.Text = "● Monitor"
'
'status_run
'
Me.status_run.Name = "status_run"
Me.status_run.Size = New System.Drawing.Size(49, 17)
Me.status_run.Text = "● VMS"
'
'lb_msg
'
Me.lb_msg.Name = "lb_msg"
Me.lb_msg.Size = New System.Drawing.Size(53, 17)
Me.lb_msg.Text = "Message"
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Font = New System.Drawing.Font("나눔고딕", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.RichTextBox1.Location = New System.Drawing.Point(0, 39)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(648, 301)
Me.RichTextBox1.TabIndex = 7
Me.RichTextBox1.Text = "VMS 실행감지"
'
'Frm_monitor
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(648, 385)
Me.Controls.Add(Me.RichTextBox1)
Me.Controls.Add(Me.StatusStrip1)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.ToolStrip1)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.MaximizeBox = False
Me.Name = "Frm_monitor"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "VMS STARTER"
Me.WindowState = System.Windows.Forms.FormWindowState.Minimized
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Timer1 As System.Windows.Forms.Timer
Friend WithEvents Timer2 As System.Windows.Forms.Timer
Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip
Friend WithEvents bt_monitor As System.Windows.Forms.ToolStripButton
Friend WithEvents bt_run As System.Windows.Forms.ToolStripButton
Friend WithEvents bt_kill As System.Windows.Forms.ToolStripButton
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip
Friend WithEvents lb_msg As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents status_run As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents status_monitor As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton
Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
End Class

284
VMSMonitor/Frm_monitor.resx Normal file
View File

@@ -0,0 +1,284 @@
<?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>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>107, 17</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>197, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bt_monitor.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMpSURBVFhH7ZfLS1RRHMe1rCCkqAwiqkV/hhtbutBQUHyC
gWCaZas22jg+Z8zMHNTRZBAbRB1d2aaFq9z6FoUW4trw/QZRfp3PoTOMwhmtmYEWCl/OY7738/3Onbl3
rnFxl3+XZ+B/OgMjIyNeJYmxvNb3PDw8LMfHx3JychITwSbDWiAQCMjR0ZEcHBzI4eFhVAUTNhnWAoOD
g7K/vy87OzuSnJwsz9PToyJYMGGTYS0wMDAQLJCWliavysqkrLQ0IsGAZQqQYS3Q39+vC2xvb0t2dra8
r6qSaocjIsGABRM2GdYCfr9f9vb2tDknJydqBWDBhE2GtUBfX582bW1tSX5+ftQKwIIJmwxrgd7eXm3a
3NyUwsLCiE596EcHCyZsMqwFfD6f7O7uysbGhrwoKpLamppgiZWVlX8qBAMWTNhkWAv09PQECxQXF0uT
261LGFEidH2ROQxYpgAZ1gLdXV26wPr6upSUlIinrU1cjY2nRImze+HWMGDBhE2GtYC3s1Nfr2tra/ra
/9LdLR+bm4MiPHR9kTkMWDBhk2Et0N7erk2rq6vyurxcvqpvLO8AEW7mZs3e2f1QD3MYsGDCJsNawOPx
aNPi4qK8raiQwNCQbhyJYMCCCZsMa4HPra3atLCwIFWVlTI6OirfIhQMWDBhk2Et8KmlRd+x5ufnpaG+
/q8/b9t3AhZM2GRYCwDANDc3pw+IpmDCJsNa4ENTkzbNzMzI7OxsVAUTNhnWAm6XS9+zp6endQnU0dFx
SmY/3Oj2v5Fn7xKF0fhgwibDWqCxoUGbJicnZWpqSovnQ3O5MTf74cYK31P5+eulMBofTNhkWAvU19Vp
08TEhC6BxsbGTsnshxsDP0rF9T1BGI0PJmwyrAXqamv1DWN8fDwmgk2GtUCN0ynLy8uytLQUE8Emw1rA
6XB4ndXVElOpjPP+F4p3Op1X1C/YNfUwebOgoOCWeqK5k5WVdTcvLy9JPd89yMzMfKQesx6r+RMj1rm5
uQ+V735GRsY9jlGv3VZKTE1NvaHGqyo4/rzw0Ncx6zJGQFJSUhIoh9T6uhFr5UvAE3rMn1Br8G+IV7/l
/QuMLAAAAABJRU5ErkJggg==
</value>
</data>
<data name="bt_run.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANxSURBVFhH7ZbpT1NBFMXdSqkVLJuCiAGDUUGWQltqoUVE
WYJKrRYiIkIgpCqYEIIxbCKoEUEUjRi3gBqssirKIhoal5RNdkQQEVBE/CuOMw0mEBWkAvqhLzl57eub
3t+ce+fOLFigu3QO6ByYwgFPT88lrq6uy/l8vjm90+/zahgNejjLODnlvn539GnTM1wud6NQKDSeNxAn
Jyfr44Ws3sbBIyhQc5FUyBpWnDW5SJ7bE1dMCCBjTh1xdna2O1nBQPuIAn3f0tH2OQmFjWIkKhljikyT
m24eDq6Ojo4r7Ozs9AjIwlmHcXFxcUgtZ6BpOJgohIDE4N1YGjpGUlHU7IsTD5k4lG2sFPvYi2id2Nra
MmcVhAIkljDQMBQM9eBejRoG96H1kwJvv6agczQdpW92IrWcjehsozJv2bptJD2WpE5YswJCAY7d14P6
oxyvB2STpB6Qo3k4Cl2jiegezcDD1iCklhoh+hynJjDSOpjH41mR9LAJyCKtU0MB4u7qkcB78OqD9Nci
vzUOhZO0JBCQdDxpP4iUYlNEZBqopAqrgxSErBp9rRyhALH5TBJYhhf9gdNISpw6QAo1Hl1f0lHdEYUT
xWsQcYZT6xdkwx+vj5mZQQEUN5h48V4KVd+uP9ar/iC8/rAfL/uDcV3FRWgG55ZIJDKYWXTyNgWIzNPH
o3YvlLaKp1VZmwRPurajrk+KZz27kVmxAVFXWdgitfXU2oGwXBZK2yV40CL6rYpa3FHe4YXa3p143rsb
WRWbEH6ZDVmCmZIvcnIen/3M+wR1YN95FopaPHCvSfiTlE2bUdIqQVW3v2bGOZVchOUaIDDBtEzg7iCc
0KRm7L5mAAWQZy7FvWYR7jTwJ0lJnlV0+qC2JxC5VTyEXliOgHjjx+KA9b5knMV4d9Qu8I9RFEB6ainu
Nrkhv95FI/q5rGMranp24FKNACHZRvCPM6kRy2z20Cak9ZL7FSoF2JHGxu16PgrqeSQVElS/DcCVp5sR
et4M22ONVGK5tWatz1r3mwhCNyO/FDYpPgkqSZ6v1XmQwCvhHcNpEIesPkJ3y7/udlMliQbwjuP05j1z
Q1iOBbyOGnZ67LdMJDNeS3K8TC6XL/67JE8zmh5IxOHmyZJYw273A6tOE0fWCQQCw3k7kPzzI9mc2qv7
c50D/4sD3wHeuRvlgDZ3nAAAAABJRU5ErkJggg==
</value>
</data>
<data name="bt_kill.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOHSURBVFhH7Zb7S1NxGMatzJ1mpVOzpWkWIRVRlM7prGam
uOVyW+3m1C5KCyLpbv0m0T2I7gUVFRQEFVSWRFRE2o2iIlPnOTMvwZz0S/sDgqf3uxIiyPNVz48OPrDD
3vM+z/u837MtKmr0NZrAaAKcCbQtU59pzYv92WaMhRytS9XnOdvylX0h8c4aPX48uIwfjVcH5+EVfN1o
gGImWpaoT0oVC9F/Zif6jm3Ct702fNtj/S99Rzeh/1wdOjfo0DLSJD6ReEf5fIRObUfwqA+9e8rQW7dK
luCRjQid2w1pQw4+D9fEx6Xq437XXBLf9lu8jsR3W7gJHq5B6OwuMqHDJzJxyxk1jm/hVMXE2xyZCJ3Y
CjZN7y4S3lk6ZIIHqxE6vQNitR4feE28z5+wr8WagdDxLehjk0eEzcMmeGA9+mmFfu8CvMvneDre5sR8
D6xbhOChavTsMKNne8mICe5fi84qMrBEDdk1NOcL4U5PJnq2kfDWYsX46p2Dt/k8BgxCOOCajZ7aIkVh
Q702cBqQHLPQvaVQUdhQLw0T5FfQlCeEpdUZ6N5coCgBx0w05XEYeJ4rhEX7DIjWNEUJrMnA81wOA8/0
ZICJW1IVJWBLxzM9h4EnZKCjLAUdpVpFkaypoN7yZ+BBjhD2W7Twm5OVY2UyRBrqcQ6HgUe6mO+iLQUB
awr8JUmKIJVNg0T9GnRCWPaLqFGn2vfCGIcuTwakMi3aixNGhGiZii73DLwpSkBjtuqwrAFW0JAlnIyY
cKVDKk1G+4r4YSGunIJu6vG6OBEN2cL5W/OiYrgMsKL7zMTy+N8mqFF7YdyQEM1J6Ham4VVRIu4x8SH8
HI+pr68f6/P5xt/JFi68KKAknNMhmmkVyydxIZoSSDyVxDWgHpd8liy10+lk/wfGyCbAxGtra1UOhyOB
mHldF3czkoSDHk2TBm0FEwelo0QTqW2mtd3Ijb9d5bbNJXFtZWVlrNFojJY1wZyyYrfbneZyuXQej6f0
kmHqk6ZCDYI1s7lopskvGrRP6V479VhGvTLZQNSbnYHBU/g3AWqwkMi9ptfcvbNYBR5YbXl5eZ7X681i
4kNKgDkcOAMWi0VdUVExmRpp2ATUNIk1s9vt01lC9D59AHZNE6dQ3RSbzZbI7qHP4oiJJpNJxX0G/jok
LKqImQFYE7ZHdkAZLNIB2DXVRbOav+/5E/l/Y/8Fd+zUtiElh8IAAAAASUVORK5CYII=
</value>
</data>
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGGSURBVFhH7ZbPKwRxGMb3ZNbuQblNbbTRZidqm1k/1yJt
22a1mNLi6qZoIyv/hvInOEqIthRKKSlJ+4OLmcXNyV/w+j7l6jDPHqRm6mlOz+f99F6+byDgf/4G/A38
sgHDMNpM09Qty+pT/wEmP10dLM+LxvCzVGelNhmWVgIGWJ4FYF9Vwz8P9uTr6oQKumCA5VkAK3+aCMv7
7oo0t4tU0AUDLErgMR2Wt51lcbeKVNAFgxZ4SIekWcbwRSrogkEL3I8rAQwv2VTQBYMWuEuFxN20xdmY
p4IuGLTA7ZgSKC2Is16ggi4YtMDNaLu4avjrWp4KumDQAteq/GL3S6MQp4IuGLTA5YgSmFPD8zEq6IJB
C1wMB+V5Nib1XA8VdMGgBSpDSmCmV+rZKBV0waAFzgeD0shFpZbpooIuGLTAaVIJZLulNh2hgi4YtMBx
UpN6JiLVKZ0KumBQAnhCjyxNnKW4fKwmqKALBvsc6/uJjsqhqUkrAYM6SP78JPN8QPgFfwP/dQPf75A9
ouq07JEAAAAASUVORK5CYII=
</value>
</data>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>306, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8AAAAAAQAAAAIAAAAEAAAABwAAAAoAAAALAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA
AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACwAAAAoAAAAHAAAABAAA
AAIAAAAB////AP///wAAAAACAAAABwAAAA0AAAAWAAAAHQAAACIAAAAkAAAAJAAAACQAAAAkAAAAJAAA
ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAiAAAAHQAA
ABYAAAANAAAABwAAAAL///8A////AAAAAAQAAAANAAAAGwAAAC0AAAA6AAAAQwAAAEgAAABIAAAASAAA
AEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAAAEgAAABIAAAASAAA
AEMAAAA6AAAALQAAABsAAAANAAAABP///wD///8AAAAABwAAABZ9VjSpjWE7/41hO/+NYTv/jWE7/41h
O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h
O/+NYTv/jWE7/41hO/+NYTv/fVY0qQAAABYAAAAH////AP///wAAAAAKAAAAHY1hO/+0Yz3/tGM9/7Rj
Pf/p0cX/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/3rqq/966qv/euqr/6dHF/7Rj
Pf/p0cX/3rqq/+nRxf+0Yz3/tGM9/7RjPf+NYTv/AAAAHQAAAAr///8A////AAAAAAsAAAAijWE7/7Vk
Pv+1ZD7/tWQ+/+nRxf/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967qv/eu6r/3ruq/967
qv/p0cX/tWQ+/+nRxf/eu6r/6dHF/7VkPv+1ZD7/tWQ+/41hO/8AAAAiAAAAC////wD///8AAAAADAAA
ACSNYTv/t2U//7dlP/+3ZT//6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rRxv/q0cb/6tHG/+rR
xv/q0cb/6tHG/+rRxv+3ZT//6tHG/+rRxv/q0cb/t2U//7dlP/+3ZT//jWE7/wAAACQAAAAM////AP//
/wAAAAAMAAAAJI1hO/+3Z0D/t2dA/7dnQP+3Z0D/t2dA/7dnQP+4aEH/uGlB/7hpQf+5aUL/uWpC/7lq
Qv+5akL/uWpC/7lqQv+5aUL/uGlB/7hpQf+4aEH/t2dA/7dnQP+3Z0D/t2dA/7dnQP+NYTv/AAAAJAAA
AAz///8A////AAAAAAwAAAAkjWE7/7lpQf+5aUH/uWlB/7lpQf+6akL/umtC/7trQ/+7bEP/vG1E/7xu
RP+9bkT/vW5E/71vRf+9bkT/vW5E/7xuRP+8bUT/u2xD/7trQ/+6a0L/umpC/7lpQf+5aUH/uWlB/41h
O/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/umtD/7prQ/+6a0P/u2xE/7ttRP+8bkX/vW9G/75w
Rv++cUf/v3JH/79zSP+/c0j/v3NI/79zSP+/c0j/v3JH/75xR/++cEb/vW9G/7xuRf+7bUT/u2xE/7pr
Q/+6a0P/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1hO/+7bUT/u21E/7xuRf+9cEb/vXFG/75y
R/+/dEj/wHVJ/8F2Sv/Bd0r/wnhL/8J4S//CeUv/wnhL/8J4S//Bd0r/wXZK/8B1Sf+/dEj/vnJH/71x
Rv+9cEb/vG5F/7ttRP+NYTv/AAAAJAAAAAz///8A////AAAAAAwAAAAkjWE7/71vRf++cEb/v3JH/79z
R//AdUn/wXZK/8J4S//DeUv/xHtN/8V8Tf/FfU7/xn1O/8Z+Tv/GfU7/xX1O/8V8Tf/Ee03/w3lL/8J4
S//Bdkr/wHVJ/79zR/+/ckf/vnBG/41hO/8AAAAkAAAADP///wD///8AAAAADAAAACSNYTv/v3JI/79z
SP/AdUr/wXdL/8N5TP/Ee03/xX1P/8Z+T//HgFD/x4FR/8iCUv/Ig1L/yINS/8iDUv/IglL/x4FR/8eA
UP/Gfk//xX1P/8R7Tf/DeUz/wXdL/8B1Sv+/c0j/jWE7/wAAACQAAAAM////AP///wAAAAAMAAAAJI1h
O//XpYn/16aJ/9iniv/ZqYv/2aqM/9usjf/brY7/3K6O/9ywj//dsZD/3bKQ/96ykf/espH/3rKR/92y
kP/dsZD/3LCP/9yujv/brY7/26yN/9mqjP/ZqYv/2KeK/9emif+NYTv/AAAAJAAAAAz///8A////AAAA
AAwAAAAkjWE7/9eniv/YqIv/2aqM/9qsjf/brY7/3K+P/9ywkP/dspH/3rOS/960k//ftZP/37WU/9+1
lP/ftZT/37WT/960k//es5L/3bKR/9ywkP/cr4//262O/9qsjf/Zqoz/2KiL/41hO/8AAAAkAAAADP//
/wD///8AAAAADAAAACSNYTv/2amL/9mqjP/arI3/266O/9ywkP/dspH/3rOS/961k//gt5T/4LiV/+C5
lv/huZb/4bmW/+G5lv/guZb/4LiV/+C3lP/etZP/3rOS/92ykf/csJD/266O/9qsjf/Zqoz/jWE7/wAA
ACQAAAAM////AP///wAAAAAMAAAAJI1hO//aq4z/26yN/9yujv/csJD/3rKR/960kv/gtpT/4LiV/+G6
lv/iu5b/4ryX/+O9l//jvZj/472X/+K8l//iu5b/4bqW/+C4lf/gtpT/3rSS/96ykf/csJD/3K6O/9us
jf+NYTv/AAAAJAAAAAz///8A////AAAAAAsAAAAijWE7/9usjv/cro//3LCQ/96ykv/etJP/4LaU/+C4
lv/iupf/4ryY/+O+mf/kv5r/5MCb/+TAm//kwJv/5L+a/+O+mf/ivJj/4rqX/+C4lv/gtpT/3rST/96y
kv/csJD/3K6P/41hO/8AAAAiAAAAC////wD///8AAAAACgAAAB2NYTv/////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////jWE7/wAAAB0AAAAK////AP///wAAAAAHAAAAFo1hO///////3qqB////
////////////////////////////////////////////////////////////////////////////////
////////////////////////3qqB//////+NYTv/AAAAFgAAAAf///8A////AAAAAAQAAAANjWE7////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////41hO/8AAAANAAAABP///wD///8AAAAAAgAA
AAeJXjmbjWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41h
O/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/jWE7/41hO/+NYTv/iV45mwAAAAcAAAAC////AP//
/wAAAAABAAAAAgAAAAQAAAAHAAAACgAAAAsAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAA
AAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALAAAACgAAAAcAAAAEAAAAAgAA
AAH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8AgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAH/////////////
//////////////////////////////////8=
</value>
</data>
</root>

337
VMSMonitor/Frm_monitor.vb Normal file
View File

@@ -0,0 +1,337 @@
Public Class Frm_monitor
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)
Private Const WM_QUIT = &H12
Private Const WM_CLOSE = &H10
Private ison As Boolean = False
Private ismonitor As Boolean = False
Dim totaltime As TimeSpan
Dim ercnt As Integer = 0
Dim starttime As Integer = 0
Dim Xml As ArinXML
Dim Createfile As String = ""
Dim CreateStart As String = ""
Dim killon As Boolean = False
Dim fclose As Boolean = False
Dim autoexit As Short = 0
Dim runtime As String = Now.ToString
Dim conffile As String = My.Application.Info.DirectoryPath & "\error.xml"
Dim AutoClose As Boolean = False
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Not AutoClose Then
If MsgBox("정말로 종료하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
Else
e.Cancel = True
End If
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 6
Dim a As New System.Text.StringBuilder
a.AppendLine("이 프로그램은 VMS의 실행을 감지하는 프로그램입니다")
a.AppendLine("VMS프로그램이 오류발생으로 작동을 멈출경우")
a.AppendLine("초기화 및 재실행을 수행합니다.")
a.AppendLine()
Me.RichTextBox1.Text = a.ToString & vbCrLf
totaltime = Nothing
ercnt = 0
Me.bt_monitor.PerformClick()
End Sub
Public Function RunProcess(ByVal 파일이름 As String, Optional ByVal 실행옵션 As String = vbNullString) As Boolean
Try
Dim RunP As Process
Dim B As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo
If FileIO.FileSystem.FileExists(파일이름) Then
B.FileName = 파일이름
B.WorkingDirectory = 파일이름.Substring(0, 파일이름.LastIndexOf("\"))
B.Arguments = 실행옵션
RunP = Process.Start(B)
Return True
Else
Return False
End If
Catch ex As Exception
Msg("ERROR_RUNPROCESS->" & ex.Message.ToString)
Return False
End Try
End Function
Public Function checkmyproc() As Process
Try
Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다.
Dim MyPrc As Process
For Each MyPrc In Prc
If MyPrc.ProcessName.ToUpper.IndexOf("VMS.NET") <> -1 And MyPrc.ProcessName.ToUpper.IndexOf("VSHOST") = -1 Then
Return MyPrc
End If
Next
Return Nothing
Catch ex As Exception
Msg("ERROR_CHECKMYPROC->" & ex.Message.ToString)
Return Nothing
End Try
End Function
Public Sub KillMyProc(ByVal 클래스명 As String)
Try
Dim Np As IntPtr
Np = FindWindow(클래스명, vbNullString)
'Me.lstOutput.Items.Add("WHND:" & Np.ToInt32.ToString)
If Np = 0 Then
'Form_Standard.MDIMessage.Text = "Cannot Find :" & 클래스명
Exit Sub
End If
PostMessage(Np.ToInt32, WM_QUIT, 0&, 0&)
Sleep(500)
Catch ex As Exception
Msg("ERROR_KIMMMYPROC->" & ex.Message.ToString)
End Try
End Sub
Private Sub Msg(ByVal m As String)
If Me.RichTextBox1.Text.Length > 10000 Then
Try
My.Computer.FileSystem.WriteAllText(My.Application.Info.DirectoryPath & "\" & Now.ToString("yyyyMMdd") & ".txt", Me.RichTextBox1.Text, True)
Catch ex As Exception
End Try
Me.RichTextBox1.Text = ""
End If
Me.RichTextBox1.AppendText("[" & Now.ToString("yyyy-MM-dd HH:mm:ss") & "] " & m & vbCrLf)
My.Application.DoEvents()
End Sub
Public Sub oKillMyProc(ByVal 프로세스명 As String)
Try
Dim Prc() As Process = Process.GetProcesses '//현재프로세스배열을 가져온다.
Dim MyPrc As Process
Dim 파일명 As String = 프로세스명.Substring(프로세스명.LastIndexOf("\") + 1).ToUpper
For Each MyPrc In Prc
If (MyPrc.ProcessName & ".EXE").ToUpper = 파일명 Then
' MsgBox(MyPrc.StartInfo.Fileame)
MyPrc.Kill()
End If
Next
Sleep(500)
Catch ex As Exception
Msg("ERROR_OKILLMYPROC->" & ex.Message.ToString)
End Try
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Timer1.Enabled = False
Dim Prc As Process = checkmyproc()
If Prc Is Nothing Then
'//프로세스가 없다.
If Me.Timer2.Enabled = False Then
autoexit += 1
If autoexit > 3 Then
AutoClose = True
Me.Close()
End If
End If
ison = False
Me.bt_kill.Enabled = False
Me.bt_run.Enabled = True
'Me.Text = "noprocee"
Me.status_run.ForeColor = Color.Gray
If Me.starttime > 0 Then
Me.status_run.ForeColor = Color.Orange
End If
If System.IO.File.Exists(conffile) Then ''//에러파일이 존재하는지 확인한다.
Dim buffer = My.Computer.FileSystem.ReadAllText(conffile, System.Text.Encoding.Default).Trim
If buffer <> "" Then
If buffer.Substring(0, 5) = "ERROR" Then
If Me.Timer2.Enabled = False Then '//작동중이아니라면 실행한다.
Me.ProgressBar1.ForeColor = Color.Green
Me.Timer2.Enabled = True
Me.Timer2.Start()
End If
End If
End If
End If
Else
autoexit = 0
Me.status_run.ForeColor = Color.Blue
Me.bt_kill.Enabled = True
Me.bt_run.Enabled = False
ison = True
Try
dispalyinfo(Prc)
Catch ex As Exception
End Try
End If
Timer1.Enabled = True
End Sub
Private Sub dispalyinfo(ByVal prc As Process)
Try
Dim Eron As Boolean = False
If System.IO.File.Exists(conffile) Then ''//에러파일이 존재하는지 확인한다.
Dim buffer = My.Computer.FileSystem.ReadAllText(conffile, System.Text.Encoding.Default).Trim
If buffer <> "" Then
If buffer.Substring(0, 5) = "ERROR" Then
If Me.Timer2.Enabled = False Then '//작동중이아니라면 실행한다.
Eron = True
End If
End If
End If
End If
If Eron Then
Msg("VMS로부터 에러발생을 확인하였습니다")
killon = True
Else
killon = False
End If
'Buf.AppendLine("PROCESS NAME:" & prc.ProcessName)
'Buf.AppendLine("Start Time:" & prc.StartTime.ToString())
'Buf.AppendLine("Total time:" & prc.TotalProcessorTime.ToString())
'Buf.AppendLine("SessionID:" & prc.SessionId.ToString)
'Buf.AppendLine("Response:" & prc.Responding)
'Buf.AppendLine("Handle:" & prc.Handle.ToString)
'Buf.AppendLine("Handle Count:" & prc.HandleCount)
'Buf.AppendLine("prc.HasExited:" & prc.HasExited)
'Buf.AppendLine("prc.Id:" & prc.Id)
'Buf.AppendLine("prc.MainWindowTitle:" & prc.MainWindowTitle)
'Buf.AppendLine("prc.PrivilegedProcessorTime.ToString:" & prc.PrivilegedProcessorTime.ToString)
'Buf.AppendLine("prc.UserProcessorTime.ToString:" & prc.UserProcessorTime.ToString)
'Buf.AppendLine("Error Count:" & Me.ercnt)
If killon Then '//10초를 넘도록
Me.WindowState = FormWindowState.Normal
Me.RichTextBox1.BackColor = Color.Orange
Msg("VMS 재실쟁 대기중 : 잠시만 기다려주세요.")
Me.Hide()
Me.Show()
My.Application.DoEvents()
bt_kill.PerformClick()
Sleep(2000)
Try
System.IO.File.Delete(conffile)
Catch ex As Exception
End Try
End If
Catch ex As Exception
Msg("ERROR_DISPLAYINFO_->" & ex.Message.ToString)
End Try
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
starttime += 1
Me.ProgressBar1.Value = starttime
If starttime > 5 Then
Me.ProgressBar1.Value = 0
Me.ProgressBar1.ForeColor = Color.Red
Me.bt_run.PerformClick()
starttime = 0
Me.Timer2.Stop()
Me.Timer2.Enabled = False
End If
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_monitor.Click
Me.ProgressBar1.Value = 0
If Me.ismonitor Then
Me.Timer1.Stop()
Me.Timer1.Enabled = False
Me.ismonitor = False
Me.bt_monitor.Text = "모니터 시작"
Msg("모니터링이 종료되었습니다.")
Me.status_monitor.ForeColor = Color.Gray
Else
Me.Timer1.Enabled = True
Me.Timer1.Start()
Me.ismonitor = True
Me.bt_monitor.Text = "모니터 종료"
Msg("모니터링이 시작되었습니다.")
Me.status_monitor.ForeColor = Color.Blue
End If
End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_run.Click
If Me.ison Then
MsgBox("중복실행이므로 실행을 할 수 없습니다", MsgBoxStyle.Information, "확인")
Else
RunProcess(My.Application.Info.DirectoryPath & "\cVMS.NET.exe", "")
Msg("VMS프로그램을 실행합니다")
Me.WindowState = FormWindowState.Minimized
Me.RichTextBox1.BackColor = Nothing
End If
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_kill.Click
Dim Prc As Process = checkmyproc()
If Not Prc Is Nothing Then
Try
Try
System.IO.File.Delete(conffile)
Catch ex As Exception
End Try
Prc.Kill()
Me.ProgressBar1.ForeColor = Color.Green
starttime = 0
Me.Timer2.Enabled = True
Me.Timer2.Start()
Catch ex As Exception
Msg("ERROR_BTKILL_->" & ex.Message.ToString)
End Try
End If
End Sub
Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Me.fclose = True
End
End Sub
End Class

View File

@@ -0,0 +1,44 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'참고: 자동으로 생성되므로 직접 이 파일을 수정하지 마세요. 변경할 사항이 있거나
' 파일에서 빌드 오류가 발생하는 경우 프로젝트 디자이너로
' 이동([프로젝트 속성]으로 이동하거나 솔루션 탐색기에서 My Project 노드를
'두 번 클릭)한 다음 [애플리케이션] 탭에서 변경하세요.
'
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.VMSMonitor.Frm_monitor
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
Me.MinimumSplashScreenDisplayTime = 0
Return MyBase.OnInitialize(commandLineArgs)
End Function
End Class
End Namespace

View File

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

View File

@@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
' 어셈블리와 관련된 정보를 수정하려면
' 이 특성 값을 변경하십시오.
' 어셈블리 특성 값을 검토합니다.
<Assembly: AssemblyTitle("VMSMonitor")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("VMSMonitor")>
<Assembly: AssemblyCopyright("Copyright ©Arinware 2012")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
<Assembly: Guid("16fe3d11-55f7-4bfc-a33b-422036072665")>
' 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
'
' 주 버전
' 부 버전
' 빌드 번호
' 수정 버전
'
' 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
' 지정되도록 할 수 있습니다.
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyFileVersion("1.0.0.62")>

View File

@@ -0,0 +1,63 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
'클래스에서 자동으로 생성되었습니다.
'멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
'다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
'''<summary>
''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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>
''' 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
'''</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("VMSMonitor.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
''' 재정의합니다.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
End Module
End Namespace

View File

@@ -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>

View File

@@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </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", "17.11.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 자동 저장 기능"
#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(sender As Global.System.Object, 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.VMSMonitor.My.MySettings
Get
Return Global.VMSMonitor.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@@ -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>

20
VMSMonitor/VMSMonitor.sln Normal file
View File

@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VMSMonitor", "VMSMonitor.vbproj", "{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Debug|x86.ActiveCfg = Debug|x86
{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Debug|x86.Build.0 = Debug|x86
{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Release|x86.ActiveCfg = Release|x86
{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{FD1E7E91-6D8F-4B42-BAFF-18C28E8DFE79}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>VMSMonitor.My.MyApplication</StartupObject>
<RootNamespace>VMSMonitor</RootNamespace>
<AssemblyName>VMSMonitor</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>..\cVMS.NET\bin\Debug\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>monitor.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</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" />
</ItemGroup>
<ItemGroup>
<Compile Include="ArinXMl.vb" />
<Compile Include="Frm_monitor.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Frm_monitor.Designer.vb">
<DependentUpon>Frm_monitor.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>
<DesignTime>True</DesignTime>
</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="Frm_monitor.resx">
<DependentUpon>Frm_monitor.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="App.config" />
<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>
</ItemGroup>
<ItemGroup>
<Content Include="monitor.ico" />
<Content Include="system.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>for %25%25F in ("$(TargetDir)*.exe") do (
xcopy "%25%25F" "..\..\..\cVMS.NET_CS\bin\Debug" /Y /R /D
echo Copied %25%25F to "..\..\..\cVMS.NET_CS\bin\Debug"
)
</PostBuildEvent>
</PropertyGroup>
<!-- 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
VMSMonitor/monitor.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
VMSMonitor/system.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB