如何从vb宏取消保护我的VB项目?我找到了这段代码:
Sub UnprotectVBProject(ByRef WB As Workbook, ByVal Password As String)
Dim VBProj As Object
Set VBProj = WB.VBProject
Application.ScreenUpdating = False
'Ne peut procéder si le projet est non-protégé.
If VBProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = VBProj
'Utilisation de "SendKeys" Pour envoyer le mot de passe.
SendKeys Password & "~"
SendKeys "~"
'MsgBox "Après Mot de passe"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
Application.Wait (Now + TimeValue("0:00:1"))
End Sub
Run Code Online (Sandbox Code Playgroud)
但是此解决方案不适用于Excel 2007.它在我的IDE中显示验证的窗口和打印密码.
然后,我的目标是取消保护我的VBproject而不显示此窗口.
谢谢你的帮助.
我使用winapi来处理网页对话框,除了excel vba编辑器,我无法访问visual studio或其他工具.另外,我对winapi的经验不足.我想点击此网页对话框的某个按钮并输入一些文字.
使用winapi我可以找到它的句柄并尝试枚举子窗口,但收到的信息不正确.
' search for child window accept button
hWndAccept = FindWindowEx(hWndColo, 0, vbNullString, vbNullString)
Debug.Print hWndAccept
Run Code Online (Sandbox Code Playgroud)
和
Public Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
Dim slength As Long
Dim wintext As String ' window title text length and buffer
Dim retval As Long ' return value
Dim textlen As Long
Static winnum As Integer ' counter keeps track of how many windows have been enumerated
winnum = winnum + 1
textlen = …Run Code Online (Sandbox Code Playgroud) 我想将"{TAB}"密钥发送到另一个应用程序窗口(将密钥发送到窗口而不是文本框).
我试过了:
SendMessage(hWnd, WM_SETHOTKEY, VK_TAB, 0)
Run Code Online (Sandbox Code Playgroud)
没啥事儿.
我的目标是:
当应用程序窗口不在焦点时,
将tab键发送到我的应用程序或其他应用程序.
(我知道sendkey不专业,在这种情况下没有选择(这是我第一次使用它).)
我做了很多尝试,我总是回到同样的结果:
没啥事儿.
有人知道答案吗?
excel ×2
vba ×2
excel-2007 ×1
excel-vba ×1
postmessage ×1
sendmessage ×1
vb.net ×1
winapi ×1
windows ×1
winforms ×1