Дано: Форма
Задача: Необходимо дублировать картинку на экране в форму
Накидал примерный скрипт:
В сущности получилось, то что происходит на одной половине монитора дублируется на другой половине. Но вот почему не отображаются значки рабочего стола и панель задач не могу понять.
Внимание:В вышеуказанном скрипте, параметры указанные в функции _WinAPI_StretchBlt(), применимы для моего монитора. Возможно, для корректного отображения с другим разрешением экрана, Вам необходимо будет изменить данные параметры в этой функции.
Задача: Необходимо дублировать картинку на экране в форму
Накидал примерный скрипт:
Код:
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#Include <WinAPIEx.au3>
Opt("GUICloseOnESC", 0)
HotKeySet("{ESC}", "_Exit")
Global $GUI, $hGuiDC, $hDeskDC
WinMinimizeAll()
; Создаем GUI
$GUI = GUICreate("FORM", @DesktopWidth /2, @DesktopHeight, 0, 0, $WS_POPUP)
GUISetState(@SW_SHOW)
;$Получаем Handle $GUI
$hGUI = WinGetHandle("FORM")
; Получаем device context для $GUI
$hDC = _WinAPI_GetDC($hGUI)
; Получаем Handle рабочего стола
$hDesk = _WinAPI_GetDesktopWindow()
; Получаем device context для Рабочего стола
$hDeskDC = _WinAPI_GetDC($hDesk)
If @error Then
_WinAPI_ReleaseDC($hGUI, $hDC)
Exit
EndIf
Run("Explorer.Exe")
; Копируем картинку рабочего стола в наше $GUI
While 1
Sleep(100)
_WinAPI_StretchBlt ( $hDC, 0, 0, 1920, 1080, $hDeskDC, 960, 0, 1920, 1080, $SRCCOPY )
WEnd
Func _Exit()
_WinAPI_ReleaseDC(0, $hDeskDC)
_WinAPI_ReleaseDC($hGUI, $hDC)
GUIDelete($hGUI)
Exit
EndFunc
В сущности получилось, то что происходит на одной половине монитора дублируется на другой половине. Но вот почему не отображаются значки рабочего стола и панель задач не могу понять.
Внимание:В вышеуказанном скрипте, параметры указанные в функции _WinAPI_StretchBlt(), применимы для моего монитора. Возможно, для корректного отображения с другим разрешением экрана, Вам необходимо будет изменить данные параметры в этой функции.