insignia96 Posted May 16, 2009 Share Posted May 16, 2009 (edited) Ill be honest, if i ever need TV static ill come back. I modified some code here and got this. expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> #include <WinAPI.au3> ;HotKeySet(("^!p"), "SaveImage"); Ctrl+Alt+p Save image o file Opt("GUIOnEventMode", 1);0=disabled, 1=OnEvent mode enabled Global Const $ApW = Int(@DesktopWidth / 16) - Mod(Int(@DesktopWidth / 16), 16) Global Const $ApH = Int(@DesktopHeight / 16) - Mod(Int(@DesktopHeight / 16), 16) Global $hWnd, $hBitmap, $hImage, $hGraphic, $hBrush, $hBrush1, $hbmp, $aBmp $hGui = GUICreate("", $ApW + 40, $ApH + 40) GUISetOnEvent(-3, "_Quit") GUISetBkColor(0x000000, $hGui) $Pic = GUICtrlCreatePic("", 20, 20, $ApW, $ApH) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetState(-1, $GUI_DISABLE) Global Const $STM_SETIMAGE = 0x0172 Global Const $IMAGE_BITMAP = 0 $hWnd = GUICtrlGetHandle($Pic) PicSetGraphics($ApW, $ApH) GUISetState(@SW_SHOW, $hGui) While 1 PicSetGraphics($ApW, $ApH) Sleep(0) WEnd Func PicSetGraphics($iW, $iH) ;$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap) ;$hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage) $hBitmap = _CreateRandomBitmap($hGui, $iW, $iH) ;$hbmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) ;$aBmp = DllCall("user32.dll", "hwnd", "SendMessage", "hwnd", $hWnd, "int", $STM_SETIMAGE, "int", $IMAGE_BITMAP, "int", $hbmp) $iHBmp = GUICtrlSendMsg($Pic, $STM_SETIMAGE, 0, $hBitmap) _WinAPI_DeleteObject($iHBmp) _WinAPI_DeleteObject($hBitmap) ;_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0) ;_WinAPI_RedrawWindow($hGui, "", "", BitOR($RDW_INVALIDATE, $RDW_UPDATENOW, $RDW_FRAME)) EndFunc;==>PicSetGraphics Func _Quit() ;... Exit EndFunc;==>_Quit Func _CreateRandomBitmap($hWnd, $iWidth, $iHeight) Local $iI, $iSize, $tBits, $tBMI, $hDC, $hbmp, $iRow, $iW = 0, $iH = 0 $iSize = $iWidth * $iHeight $tBits = DllStructCreate("int[" & $iSize & "]") For $iI = 1 To $iSize ;DllStructSetData($tBits, 1, "0xFF" & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2), $iI) DllStructSetData($tBits, 1, Random(0, 0xFFFFFF, 1) + 0xFF000000, $iI) Next $tBMI = DllStructCreate($tagBITMAPINFO) DllStructSetData($tBMI, "Size", DllStructGetSize($tBMI) - 4) DllStructSetData($tBMI, "Planes", 1) DllStructSetData($tBMI, "BitCount", 32) DllStructSetData($tBMI, "Width", $iWidth) DllStructSetData($tBMI, "Height", $iHeight) $hDC = _WinAPI_GetDC($hWnd) $hbmp = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight) _WinAPI_SetDIBits(0, $hbmp, 0, $iHeight, DllStructGetPtr($tBits), DllStructGetPtr($tBMI)) _WinAPI_ReleaseDC($hWnd, $hDC) Return $hbmp EndFunc;==>_CreateRandomBitmap Func SaveImage() ;GDI Return EndFunc;==>SaveImage#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> #include <WinAPI.au3> ;HotKeySet(("^!p"), "SaveImage"); Ctrl+Alt+p Save image o file Opt("GUIOnEventMode", 1);0=disabled, 1=OnEvent mode enabled Global Const $ApW = Int(@DesktopWidth / 16) - Mod(Int(@DesktopWidth / 16), 16) Global Const $ApH = Int(@DesktopHeight / 16) - Mod(Int(@DesktopHeight / 16), 16) Global $hWnd, $hBitmap, $hImage, $hGraphic, $hBrush, $hBrush1, $hbmp, $aBmp $hGui = GUICreate("", $ApW + 40, $ApH + 40) GUISetOnEvent(-3, "_Quit") GUISetBkColor(0x000000, $hGui) $Pic = GUICtrlCreatePic("", 20, 20, $ApW, $ApH) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetState(-1, $GUI_DISABLE) Global Const $STM_SETIMAGE = 0x0172 Global Const $IMAGE_BITMAP = 0 $hWnd = GUICtrlGetHandle($Pic) PicSetGraphics($ApW, $ApH) GUISetState(@SW_SHOW, $hGui) While 1 PicSetGraphics($ApW, $ApH) Sleep(0) WEnd Func PicSetGraphics($iW, $iH) ;$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap) ;$hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage) $hBitmap = _CreateRandomBitmap($hGui, $iW, $iH) ;$hbmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) ;$aBmp = DllCall("user32.dll", "hwnd", "SendMessage", "hwnd", $hWnd, "int", $STM_SETIMAGE, "int", $IMAGE_BITMAP, "int", $hbmp) $iHBmp = GUICtrlSendMsg($Pic, $STM_SETIMAGE, 0, $hBitmap) _WinAPI_DeleteObject($iHBmp) _WinAPI_DeleteObject($hBitmap) ;_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0) ;_WinAPI_RedrawWindow($hGui, "", "", BitOR($RDW_INVALIDATE, $RDW_UPDATENOW, $RDW_FRAME)) EndFunc;==>PicSetGraphics Func _Quit() ;... Exit EndFunc;==>_Quit Func _CreateRandomBitmap($hWnd, $iWidth, $iHeight) Local $iI, $iSize, $tBits, $tBMI, $hDC, $hbmp, $iRow, $iW = 0, $iH = 0 $iSize = $iWidth * $iHeight $tBits = DllStructCreate("int[" & $iSize & "]") For $iI = 1 To $iSize ;DllStructSetData($tBits, 1, "0xFF" & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2), $iI) DllStructSetData($tBits, 1, Random(0, 0xFFFFFF, 1) + 0xFF000000, $iI) Next $tBMI = DllStructCreate($tagBITMAPINFO) DllStructSetData($tBMI, "Size", DllStructGetSize($tBMI) - 4) DllStructSetData($tBMI, "Planes", 1) DllStructSetData($tBMI, "BitCount", 32) DllStructSetData($tBMI, "Width", $iWidth) DllStructSetData($tBMI, "Height", $iHeight) $hDC = _WinAPI_GetDC($hWnd) $hbmp = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight) _WinAPI_SetDIBits(0, $hbmp, 0, $iHeight, DllStructGetPtr($tBits), DllStructGetPtr($tBMI)) _WinAPI_ReleaseDC($hWnd, $hDC) Return $hbmp EndFunc;==>_CreateRandomBitmap Func SaveImage() ;GDI Return EndFunc;==>SaveImage I Generates even faster the smaller the image is but no kidding guys its tv static! ( coolest tv static ever tho! ) Now if some one made told me how to set how fast it will refresh, probly throttled for video cards that suck, i will have the ultimate Screensaver! Edited May 16, 2009 by insignia96 Visit my website to see all my finished releases!Releases here:UDFs:GUI ResizingColor List (Web Colors)GUIFade_NearestPower Link to comment Share on other sites More sharing options...
trancexx Posted May 16, 2009 Share Posted May 16, 2009 Nice modifications. What are they? It can be faster, certainly simpler, like this: expandcollapse popup#include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) Global Const $iWidth = 110 Global Const $iHeight = 70 GUICreate("", $iWidth, $iHeight) GUISetOnEvent(-3, "_Quit") GUISetBkColor(0x000000) Global $Pic = GUICtrlCreatePic("", 0, 0, $iWidth, $iHeight) Global Const $STM_SETIMAGE = 370 Global $iSize = $iWidth * $iHeight Global $tBits = DllStructCreate("int[" & $iSize & "]") Global $pBits = DllStructGetPtr($tBits) Global $hBitmap, $aCall GUISetState() While 1 For $i = 1 To $iSize DllStructSetData($tBits, 1, Random(0, 0xFFFFFF, 1), $i) Next DllCall("gdi32.dll", "int", "DeleteObject", "ptr", $hBitmap) $aCall = DllCall("gdi32.dll", "hwnd", "CreateBitmap", _ "int", $iWidth, _ "int", $iHeight, _ "dword", 1, _ "dword", 32, _ "ptr", $pBits) $hBitmap = $aCall[0] DllCall("gdi32.dll", "int", "DeleteObject", "ptr", GUICtrlSendMsg($Pic, $STM_SETIMAGE, 0, $hBitmap)) Sleep(0) WEnd Func _Quit() Exit EndFunc ;==>_Quit ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
UEZ Posted May 16, 2009 Share Posted May 16, 2009 Nice modifications. What are they? It can be faster, certainly simpler, like this: expandcollapse popup#include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) Global Const $iWidth = 110 Global Const $iHeight = 70 GUICreate("", $iWidth, $iHeight) GUISetOnEvent(-3, "_Quit") GUISetBkColor(0x000000) Global $Pic = GUICtrlCreatePic("", 0, 0, $iWidth, $iHeight) Global Const $STM_SETIMAGE = 370 Global $iSize = $iWidth * $iHeight Global $tBits = DllStructCreate("int[" & $iSize & "]") Global $pBits = DllStructGetPtr($tBits) Global $hBitmap, $aCall GUISetState() While 1 For $i = 1 To $iSize DllStructSetData($tBits, 1, Random(0, 0xFFFFFF, 1), $i) Next DllCall("gdi32.dll", "int", "DeleteObject", "ptr", $hBitmap) $aCall = DllCall("gdi32.dll", "hwnd", "CreateBitmap", _ "int", $iWidth, _ "int", $iHeight, _ "dword", 1, _ "dword", 32, _ "ptr", $pBits) $hBitmap = $aCall[0] DllCall("gdi32.dll", "int", "DeleteObject", "ptr", GUICtrlSendMsg($Pic, $STM_SETIMAGE, 0, $hBitmap)) Sleep(0) WEnd Func _Quit() Exit EndFunc ;==>_Quit Is there a way to set the pixel size? UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
Zedna Posted June 7, 2009 Share Posted June 7, 2009 trancexx forgot to mention his awesome ASM optimized variant of this :-)http://www.autoitscript.com/forum/index.ph...st&p=692560 Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now