Это настройки в реестре, которые вы можете отключить и включить, как хотите. У меня есть класс clsSapgui для этого
Option Explicit
Const mRegNameBase = "HKEY_CURRENT_USER\Software\SAP\SAPGUI Front\SAP Frontend Server\Security\"
Const mUserScripting = "UserScripting"
Const mWarnOnAttach = "WarnOnAttach"
Const mWarnOnConnection = "WarnOnConnection"
Const mSecurityLevel = "SecurityLevel"
Dim mRegKey As New clsRegistry
Property Get UserScripting() As Boolean
UserScripting = ReadRegKey(mUserScripting)
End Property
Property Let UserScripting(newVal As Boolean)
WriteRegKey mUserScripting, CBoolToVal(newVal)
End Property
Property Get WarnOnAttach() As Boolean
WarnOnAttach = ReadRegKey(mWarnOnAttach)
End Property
Property Let WarnOnAttach(newVal As Boolean)
WriteRegKey mWarnOnAttach, CBoolToVal(newVal)
End Property
Property Get WarnOnConnection() As Boolean
WarnOnConnection = ReadRegKey(mWarnOnConnection)
End Property
Property Let WarnOnConnection(newVal As Boolean)
WriteRegKey mWarnOnConnection, CBoolToVal(newVal)
End Property
Property Get SecurityLevel() As Boolean
SecurityLevel = ReadRegKey(mSecurityLevel)
End Property
Property Let SecurityLevel(newVal As Boolean)
WriteRegKey mSecurityLevel, CBoolToVal(newVal)
End Property
Private Function CBoolToVal(bVal As Boolean) As Byte
If bVal Then
CBoolToVal = 1
Else
CBoolToVal = 0
End If
End Function
Private Function ReadRegKey(sRegValue As String) As String
Dim sRegName As String
On Error GoTo NoRegkey
sRegName = mRegNameBase & sRegValue
ReadRegKey = mRegKey.ReadRegKey(sRegName)
Exit Function
NoRegkey:
ReadRegKey = 0
End Function
Private Function WriteRegKey(sRegKey As String, ByVal sRegValue As String) As Boolean
Dim sRegName As String
On Error GoTo NoRegkey
sRegName = mRegNameBase & sRegKey
WriteRegKey = mRegKey.WriteRegKey(sRegName, sRegValue, "REG_DWORD")
Exit Function
NoRegkey:
WriteRegKey = False
End Function
И затем вы можете полностью отключить предупреждения
Sub Silence()
Dim mySapGui As New clsSapGui
With mySapGui
.UserScripting = True
.SecurityLevel = False
.WarnOnAttach = False
.WarnOnConnection = False
End With
End Sub
И вы снова включаете их с помощью
Sub Show_Warnings()
Dim mySapGui As New clsSapGui
With mySapGui
.UserScripting = True
.SecurityLevel = True
.WarnOnAttach = True
.WarnOnConnection = True
End With
End Sub
Если вы хотите, вы, конечно, можете добавить новые методы в класс, который будет более аккуратным
Класс clsRegistry выглядит следующим образом
Option Explicit
Function ReadRegKey(RegKey As String) As Variant
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
On Error GoTo NoRegkey
ReadRegKey = wsh.regread(RegKey)
Set wsh = Nothing
Exit Function
NoRegkey:
ReadRegKey = ""
End Function
Function DeleteRegKey(RegKey As String) As Boolean
' http://msdn.microsoft.com/en-us/library/yfdfhz1b(v=vs.84).aspx
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
On Error GoTo NoRegkey
wsh.RegDelete RegKey
DeleteRegKey = True
Set wsh = Nothing
Exit Function
NoRegkey:
DeleteRegKey = False
End Function
Function WriteRegKey(RegName As String, RegValue As Variant, RegType As String) As Boolean
' http://msdn.microsoft.com/en-us/library/yfdfhz1b(v=vs.84).aspx
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
On Error GoTo NoRegkey
wsh.RegWrite RegName, RegValue, RegType
WriteRegKey = True
Set wsh = Nothing
Exit Function
NoRegkey:
WriteRegKey = False
End Function