vba - 如何使用 VBA 更改外部应用程序的屏幕大小
问题描述
我试过下面的代码来调整 Excel 的屏幕大小
Sub win()
Dim myWindow1 As Window, myWindow2 As Window
Set myWindow1 = ActiveWindow
Set myWindow2 = myWindow1.NewWindow
With myWindow1
.WindowState = xlNormal
.Top = 0
.Left = 0
.Height = Application.UsableHeight
.Width = Application.UsableWidth * 0.25
End With
With myWindow2
.WindowState = xlNormal
.Top = 0
.Left = (Application.UsableWidth * 0.25) + 1
.Height = Application.UsableHeight
.Width = Application.UsableWidth * 0.75
End With
End Sub
但我想更改谷歌浏览器的屏幕大小。如果不使用 shell 打开新的 Chrome 应用程序,我该怎么办?我想更改已经打开的 Chrome 应用程序的屏幕大小
解决方案
您可以使用 User32 库中的函数来控制外部窗口。以下是针对 Google Chrome“新标签”窗口执行此操作的示例:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Resize_Chrome()
Dim ChromeHandle As Long
ChromeHandle = FindWindow(vbNullString, "New Tab - Google Chrome")
SetWindowPos ChromeHandle, -1, 0, 0, 600, 600, &H10
End Sub
这会将窗口设置为左上角 (0,0),像素大小为 600 x 600 (600,600)
有关 SetWindowPos 函数的详细信息,请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
推荐阅读
- javascript - 带有手势的Fabric js如何防止在触摸设备上缩放
- sql - 编写查询
- xml - 我无法理解 XSLT 1.0 Muenchian 分组
- performance - 等待标头时超出客户端超时
- javascript - Heremaps交互式javascript API:maptile加载事件
- apollo - 突变后更新阿波罗缓存时出现不变违规错误
- docker - 如何配置 kafka 进行流式传输所需的时间?
- javascript - 如何循环浏览 API 中的多个页面?
- spring - spring boot DeferredResult onError如何调用回调?
- angular7 - 为什么要使用 FormBuilder 而不是 FormGroup?