excel 什么是应用程序.发送键在VBA中的“Windows”键?

disbfnqx  于 2022-12-14  发布在  Windows
关注(0)|答案(1)|浏览(142)

没有“windows”键的文档:https://learn.microsoft.com/en-us/office/vba/api/excel.application.sendkeys
我想组合使用“Windows+UP”键来最大化活动窗口。因此,我尝试使用“Ctrl+Esc”来组合使用Windows键+ {UP}:* 应用程序.SendKeys(“^({ESC}{UP})”)*,但它不起作用。
有没有一种方法可以使用API、dll等发送Windows密钥,而不使用 AutoIt 等外部程序?

mzmfm0qo

mzmfm0qo1#

有没有一种方法发送windows键使用API,dll等,而不使用外部程序,如AutoIt
是的,您可以使用FindWindowShowWindow API来最大化窗口。这比使用Sendkeys更可靠。
以下是一个示例

Option Explicit

Private Declare PtrSafe Function ShowWindow Lib "user32" _
(ByVal hwnd As LongPtr, ByVal nCmdSHow As Long) As Long

Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr

Private Const SW_SHOWMAXIMIZED = 3

Sub MaximizeAWindow()
    Dim hwnd As Long
    Dim Caption As String
    
    Caption = "THIS IS THE CAPTION OF THE WINDOW"
    
    hwnd = FindWindow(vbNullString, Caption)
    
    If hwnd <> 0 Then
        ShowWindow hwnd, SW_SHOWMAXIMIZED
    Else
        MsgBox "Unable to find the window. Is the caption correct?"
    End If
End Sub

您可能还对GetForegroundWindowGetWindowText API感兴趣,以便获取当前活动窗口的标题?

相关问题