Установка высоты и ширины приложения с помощью WMI

245
lordhog

Можно ли установить высоту и ширину приложения с помощью WMI? Если так, то как? Например, измените высоту и ширину Блокнота.

Спасибо

0
Поможет ли WASP? https://archive.codeplex.com/?p=wasp Andrew Lau 6 лет назад 0
Нет. WMI - это интерфейс управления, а не интерфейс приложения. Вы должны отредактировать этот вопрос и рассказать о той проблеме, которую вы пытаетесь решить. Ƭᴇcʜιᴇ007 6 лет назад 0
@ Ƭᴇcʜιᴇ007, это настоящая проблема, которую я пытаюсь решить. Мне было интересно / надеюсь, что у WMI есть возможность изменить высоту / ширину работающего приложения. Вопрос сформирован в очень общем вопросе, который я и имел в виду. Еще более общая форма вопроса может заключаться в том, как изменить ширину и высоту работающего приложения через API (VBScript, WMI и т. Д.). lordhog 6 лет назад 0
@ AndrewLau, не уверен, что WASP поможет, но я никогда не слышал об этом. Я проверю это и может быть многообещающим, так как это PowerShell. Благодарю. lordhog 6 лет назад 0
«Еще более общая форма вопроса может быть такой: как изменить ширину и высоту работающего приложения через API (VBScript, WMI и т. Д.)», - был бы ответный вопрос в этом формате. Поскольку вы указали конкретную информацию о предлагаемом решении, а не о проблеме (известной как [Проблема XP] (http://xyproblem.info/)), поэтому ответ на вопрос, как есть, просто «Нет». И как таковой, не очень подходит для SU. Ƭᴇcʜιᴇ007 6 лет назад 0

1 ответ на вопрос

0
ttaylor1218

Из VBScript, VBA и т. Д. Действительно можно изменить размер окна. Ниже приведен пример того, как изменить размер окна, используя его дескриптор. Вам нужно будет указать hWnd (дескриптор окна) конкретного окна, размер которого вы хотите изменить. Другие win32 apis могут быть использованы для определения hwnd, например, из заголовка окна.

Const HWND_TOPMOST = -1 Const SWP_NOACTIVATE = &H10 Const SWP_SHOWWINDOW = &H40  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 ResizeWindow(ByVal hWnd as Long,ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long) SetWindowPos hWnd, HWND_TOPMOST, X, Y, cx, cy, SWP_NOACTIVATE Or SWP_SHOWWINDOW End Sub 

Функция SetWindowPos