Option Explicit
#If Win64 Then
#If VBA7 Then ' Windows x64, Office 2010
Private Declare PtrSafe Function SHMessageBoxCheckA Lib "shlwapi" (ByVal hWnd As LongLong, _
ByVal lpszText As String, ByVal lpszTitle As String, ByVal dwType As VbMsgBoxStyle, _
ByVal iDefault As LongLong, ByVal lpszId As String) As LongLong
#Else ' Windows x64,Office 2003-2007
Private Declare Function SHMessageBoxCheckA Lib "shlwapi" (ByVal hWnd As LongLong, _
ByVal lpszText As String, ByVal lpszTitle As String, ByVal dwType As VbMsgBoxStyle, _
ByVal iDefault As LongLong, ByVal lpszId As String) As LongLong
#End If
#Else
#If VBA7 Then ' Windows x86, Office 2010
Private Declare PtrSafe Function SHMessageBoxCheckA Lib "shlwapi" (ByVal hWnd As Long, _
ByVal lpszText As String, ByVal lpszTitle As String, ByVal dwType As VbMsgBoxStyle, _
ByVal iDefault As Long, ByVal lpszId As String) As Long
#Else ' Windows x86, Office 2003-2007
Private Declare Function SHMessageBoxCheckA Lib "shlwapi" (ByVal hWnd As Long, _
ByVal lpszText As String, ByVal lpszTitle As String, ByVal dwType As VbMsgBoxStyle, _
ByVal iDefault As Long, ByVal lpszId As String) As Long
#End If
#End If
Sub testMSGCHK0()
Dim message ' As Long
message = SHMessageBoxCheckA(Application.hWnd, "Текст сообщения", "Заголовок окна", _
vbOKCancel Or vbInformation, vbCancel, "mySetting0")
Debug.Print message
End Sub
Sub testMSGCHK1()
Dim message ' As Long
message = SHMessageBoxCheckA(Application.hWnd, "Текст сообщения", "Заголовок окна", _
vbAbortRetryIgnore Or vbCritical Or vbDefaultButton3, vbCancel, "mySetting1")
Debug.Print message
End Sub
Sub testMSGCHK2()
Dim message ' As LongLong
message = SHMessageBoxCheckA(Application.hWnd, "Текст сообщения", "Заголовок окна", _
vbYesNoCancel Or vbExclamation Or vbDefaultButton3, vbCancel, "mySetting2")
Debug.Print message
End Sub
Sub testMSGCHK3()
Dim message ' As Long
message = SHMessageBoxCheckA(Application.hWnd, "Текст сообщения", "Заголовок окна", _
vbYesNoCancel Or vbDefaultButton3, vbCancel, "mySetting3")
Debug.Print message
End Sub
Sub testMSGCHK4()
Dim message ' As Long
message = SHMessageBoxCheckA(Application.hWnd, "Текст сообщения", "Заголовок окна", _
vbOKOnly, vbOK, "mySetting4")
Debug.Print message
End Sub
Sub CallDeleteRegKey()
DeleteRegKey ("mySetting0")
End Sub
Sub DeleteRegKey(myRegKey As String)
Dim WshShell As Object, RegPath$
Set WshShell = CreateObject("WScript.Shell")
RegPath = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain\"
WshShell.RegDelete RegPath & myRegKey
End Sub
|