|
发表于 2010-1-25 21:58:30
|
显示全部楼层
加一个万恶的全屏窗口
#NoTrayIcon
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ScreenCapture.au3>
opt ("GUICloseOnESC",0)
HotKeySet("!{r}","_exit")
$sString = "休息中,请勿打扰!"
$hBitmap = _ScreenCapture_Capture ("")
$hGUI = GUICreate("scrren", @DesktopWidth,@DesktopHeight , 0, 0,$WS_POPUP,BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW,$WS_EX_APPWINDOW ))
GUISetState()
_GDIPlus_Startup ()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hGraphic2 = _GDIPlus_ImageGetGraphicsContext($hImage)
$hFamily = _GDIPlus_FontFamilyCreate("Arial")
$hFont = _GDIPlus_FontCreate($hFamily, 16, 1)
$tLayout = _GDIPlus_RectFCreate(0, 0)
$hFormat = _GDIPlus_StringFormatCreate(0)
$hBrush1 = _GDIPlus_BrushCreateSolid(0xA2FFFFFF)
$hBrush2 = _GDIPlus_BrushCreateSolid(0xC4FF0000)
$hPen = _GDIPlus_PenCreate(0xC4000000, 2)
$aInfo = _GDIPlus_GraphicsMeasureString($hGraphic2, $sString, $hFont, $tLayout, $hFormat)
$iWidth = DllStructGetData($aInfo[0], "Width" )
$iHeight = DllStructGetData($aInfo[0], "Height")
_GDIPlus_GraphicsFillRect($hGraphic2, 0, 0, $iWidth, $iHeight, $hBrush1)
_GDIPlus_GraphicsDrawRect($hGraphic2, 0, 0, $iWidth,$iHeight, $hPen )
_GDIPlus_GraphicsDrawStringEx($hGraphic2, $sString, $hFont, $aInfo[0], $hFormat, $hBrush2)
$aSlice = _GDIPlus_BitmapCloneArea($hImage, 0, 0,@DesktopWidth, @DesktopHeight,$GDIP_PXF64ARGB)
_GDIPlus_GraphicsDrawImage($hGraphic, $aSlice, 0, 0)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_Exit()
EndSwitch
WEnd
Func _exit()
; Free resources
_GDIPlus_ImageDispose ($aSlice)
_WinAPI_DeleteObject ($hBitmap )
_GDIPlus_PenDispose ($hPen )
_GDIPlus_BrushDispose ($hBrush1 )
_GDIPlus_BrushDispose ($hBrush2 )
_GDIPlus_StringFormatDispose($hFormat )
_GDIPlus_FontDispose ($hFont )
_GDIPlus_FontFamilyDispose ($hFamily )
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_GraphicsDispose ($hGraphic2)
_GDIPlus_ImageDispose ($hImage )
_GDIPlus_ShutDown()
Exit
EndFunc |
|