These are settings in the registry which you can turn off and turn on like you want
I have a class clsSapgui for that
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
And then you can turn off the warnings completely
Sub Silence()
Dim mySapGui As New clsSapGui
With mySapGui
.UserScripting = True
.SecurityLevel = False
.WarnOnAttach = False
.WarnOnConnection = False
End With
End Sub
And you turn them on again with
Sub Show_Warnings()
Dim mySapGui As New clsSapGui
With mySapGui
.UserScripting = True
.SecurityLevel = True
.WarnOnAttach = True
.WarnOnConnection = True
End With
End Sub
If you want to you can of course add new methods to the class which would be neater
The class clsRegistry looks like that
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