184 lines
9.0 KiB
VB.net
184 lines
9.0 KiB
VB.net
Imports System.Deployment.Application
|
||
Imports System.IO
|
||
Imports System.Reflection
|
||
Imports iMESExceptionManager
|
||
|
||
Module modTest
|
||
|
||
Public Const defInteger As Integer = -999 '宣告整數使用的常數,用以辨識參數是否有傳入Function中。
|
||
Public Const defString As String = "Null" '宣告字串使用的常數,用以辨識參數是否有傳入Function中。
|
||
Public Const defDateTime As Date = #12/31/1900# '宣告日期使用的常數,用以辨識參數是否有傳入Function中。
|
||
Public Const defSingle As Single = -999 '宣告單精準數使用的常數,用以辨識參數是否有傳入Function中。
|
||
Public Const defDouble As Double = -999 '宣告雙精準數使用的常數,用以辨識參數是否有傳入Function中。
|
||
Public Const strAddTagLabel As String = "extrabase" 'Add by py for Combine Addition XML doc
|
||
Public Const strAddTagName As String = "ExtraBase" 'Add by py for Combine Addition XML doc
|
||
Public Const defWinErrCode As String = "0000-899999"
|
||
Public Const defNullDate As Date = #12/31/1910# '宣告日期使用的常數,用以辨識參數是否要變更為Null。
|
||
Public Const defNullInteger As Integer = -9999 '宣告數值使用的常數,用以辨識參數是否要變更為Null。
|
||
|
||
Sub Main()
|
||
Dim WinFormInfo As System.Windows.Forms.SystemInformation
|
||
|
||
'*****************************************************************************************************************
|
||
|
||
Dim ArgumentStr() As String = Split(Microsoft.VisualBasic.Command()) '取得傳給此執行檔的參數(應用程式路徑,UserID,Password)
|
||
Dim i As Integer
|
||
Dim App_Path As String = ""
|
||
|
||
'Modify By Peter 2005/06/21 Add /WSH
|
||
For i = LBound(ArgumentStr) To UBound(ArgumentStr)
|
||
If InStr(UCase(ArgumentStr(i)), "/DIR:") > 0 Then
|
||
App_Path = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/UID:") > 0 Then
|
||
gUserNo = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/UNA:") > 0 Then
|
||
gUserName = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/LVL:") > 0 Then
|
||
gUserLevel = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/LAN:") > 0 Then
|
||
gLanguageMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/WSH:") > 0 Then
|
||
gMESWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/CSH:") > 0 Then
|
||
gCUSWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/ENV:") > 0 Then
|
||
gSettingMode = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/SSH:") > 0 Then
|
||
gSFCWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/ESH:") > 0 Then
|
||
gERPWebServiceHost = Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length)
|
||
ElseIf InStr(UCase(ArgumentStr(i)), "/SSL:") > 0 Then
|
||
gEnableSSL = IIf(Mid(Trim(ArgumentStr(i)), 6, Trim(ArgumentStr(i)).Length).ToUpper = "TRUE", True, False)
|
||
End If
|
||
Next
|
||
|
||
'*****************************************************************************************************************
|
||
If App_Path = "" Then
|
||
gAppPath = Application.StartupPath
|
||
Else
|
||
gAppPath = App_Path
|
||
End If
|
||
|
||
If gUserNo = "" And gUserName = "" Then
|
||
|
||
Using obj As New frmCOMChkPassword
|
||
obj.ShowDialog()
|
||
End Using
|
||
|
||
Else
|
||
gReturnKeyValue = gUserNo
|
||
End If
|
||
|
||
'用來做為是否可以進入系統的判斷
|
||
If gReturnKeyValue <> "" Then
|
||
'取得電腦名稱
|
||
gComputerName = WinFormInfo.ComputerName
|
||
|
||
iMESExceptionManager.ExceptionManager.LanguageMode = gLanguageMode
|
||
|
||
' 2014/12/26 YF, Coding時套用Pro5 Style
|
||
Infragistics.Win.AppStyling.StyleManager.Load(New MemoryStream(Global.Test.My.Resources.Resources.iMES))
|
||
gEnableStyle = True
|
||
|
||
'進入之系統
|
||
Dim fMain As New MDI_Panel
|
||
fMain.ShowDialog()
|
||
|
||
End If
|
||
|
||
End Sub
|
||
|
||
Public Function LoadAssembly(ByVal pFileName As String) As Assembly
|
||
|
||
Dim mainAssembly As System.Reflection.Assembly
|
||
Dim myfieldinfo() As System.Reflection.FieldInfo
|
||
Dim strAppBase As String = AppDomain.CurrentDomain.BaseDirectory
|
||
Dim strFilePath As String
|
||
Dim strNamespace As String
|
||
|
||
Try
|
||
|
||
'判斷是否使用ClickOnce
|
||
If ApplicationDeployment.IsNetworkDeployed Then
|
||
'ClickOnce架構下將strAppBase改指回Smart Client
|
||
Dim tempUri As System.Uri = ApplicationDeployment.CurrentDeployment.UpdateLocation
|
||
strAppBase = tempUri.ToString.Replace("/ClickOnce/MESSeries.application", "")
|
||
End If
|
||
|
||
strFilePath = strAppBase & "/" & pFileName
|
||
|
||
'檢查檔案是否存在
|
||
If (Not funCheckFileExist(strFilePath)) Then
|
||
Throw New iMESException.MESException("0000-202115", strFilePath)
|
||
End If
|
||
|
||
mainAssembly = Assembly.LoadFrom(strFilePath)
|
||
|
||
'strNamespace = mainAssembly.GetExportedTypes(0).Namespace
|
||
|
||
'設定值予Module Public變數
|
||
'myfieldinfo = mainAssembly.GetType(strNamespace & ".modWIN").GetFields()
|
||
|
||
'For i As Integer = 0 To myfieldinfo.Length - 1
|
||
' If myfieldinfo(i).Name.ToUpper = "gUserNo".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gUserNo)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gUserName".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gUserName)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gComputerName".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gComputerName)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gUserLevel".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gUserLevel)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gLanguageMode".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gLanguageMode)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gAppPath".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gAppPath)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gMESWebServiceHost".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gMESWebServiceHost)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gCUSWebServiceHost".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gCUSWebServiceHost)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gSFCWebServiceHost".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gSFCWebServiceHost)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gERPWebServiceHost".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gERPWebServiceHost)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gSettingMode".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gSettingMode)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gEnterpriseNo".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gEnterpriseNo)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableSSL".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gEnableSSL)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gConfigFile".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gConfigFile)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gEnableStyle".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), True)
|
||
' ElseIf myfieldinfo(i).Name.ToUpper = "gSYSmode".ToUpper Then
|
||
' myfieldinfo(i).SetValue(myfieldinfo(i), gSYSmode)
|
||
' End If
|
||
'Next
|
||
|
||
Catch ex As Exception
|
||
mainAssembly = Nothing
|
||
ExceptionManager.iMESShowDialog(defWinErrCode, "Load Assembly Fail!" & vbCrLf & ex.Message, ex.StackTrace)
|
||
End Try
|
||
|
||
Return mainAssembly
|
||
|
||
End Function
|
||
|
||
'檢查檔案是否存在
|
||
Private Function funCheckFileExist(ByVal strFilePath As String) As Boolean
|
||
|
||
'Network架構下
|
||
If ApplicationDeployment.IsNetworkDeployed OrElse
|
||
Application.ExecutablePath.ToLower.StartsWith("http") Then
|
||
'暫不檢查
|
||
ElseIf IO.File.Exists(strFilePath) = False Then
|
||
'檔案架構下
|
||
Return False
|
||
End If
|
||
|
||
Return True
|
||
|
||
End Function
|
||
|
||
End Module
|