Если вы не хотите устанавливать отдельные модули, вы можете использовать встроенный модуль ctypes .Использование ничем не отличается от принятого ответа выше, за исключением того, что вы взаимодействуете с самими библиотеками DLL и не должны устанавливать ничего другого.
Сначала вот код:
import ctypes
user32 = ctypes.WinDLL('user32')
SW_MAXIMISE = 3
hWnd = user32.GetForegroundWindow()
user32.ShowWindow(hWnd, SW_MAXIMISE)
Теперь объяснение:
- Получить модуль ctypes.
- Получить соответствующую среду выполнения, для справки используйте документацию Windows и посмотрите в разделе «Требования».
- Установите значение
SW_MAXIMISE
равным 3, поскольку это значение (указанное в документации ), чтобы установить максимальное окно. hWnd = user32.GetForegroundWindow()
возвращает окно переднего плана (окно, которое находится перед всеми остальными) - см. здесь для полного описания функции. - Используйте
ShowWindow()
для управления состоянием отображения окон.Это принимает два аргумента: дескриптор окна (определенный выше как hWnd
) и то, как окно должно быть видно (установите 3 в SW_MAXIMISE = 3
).Вы можете просмотреть документацию для более полного списка различных опций.
Вы, конечно, можете включить это в функцию, чтобы упростить ее использование.
Другой подход:
Поскольку в этом случае не нужно беспокоиться о кроссплатформенности, вы можете вместо этого создать расширение C или C ++.
Преимущества:
Недостатки:
- необходимо скомпилировать (поскольку это только для Windows, вам нужно беспокоиться только о компиляции для x32 и x64 бит)
- must быть модулем (т.е. вы не можете интегрировать его в один файл)
- требует минимального уровня знаний C или C ++, а также самого Python API
Фактическийвызываемая функция не должна быть такой сложной:
static PyObject * max_win(PyObject *self, PyObject *args) {
ShowWindow(GetForegroundWindow(), SW_MAXIMISE);
return Py_BuildValue(""); // Return nothing
}
Обратите внимание, что это только фрагменткод необходим