obtener el hDC que contiene la imagen del fondo de escritorio

Iniciado por <[(x)]>, 9 Marzo 2009, 23:40 PM

0 Miembros y 1 Visitante están viendo este tema.

<[(x)]>

holas

Lo q ando buscando es la forma de obtener el controlador del DC del fondo de pantalla. (hDC)

No es para sacar la imagen de fondo sino para poner una imagen mía la cual modificaría constante mente mientras el programa este vivo.

les agradezco por leer, y les agradecería MAS si pudieran poner algo q pueda ayudarme ..

54¬ui) att: <[(x)]>
<[(x)]>

Krackwar ™

No se si te servira , un code mio para cvambiar el fondo de el escritorio en asm
Código (ASM) [Seleccionar]

include  'win32ax.inc'
.data
imagen db 'C:\Windows\pompas.bmp'  ;Cambiar C:\Windows\pompas.bmp por la ruta de la imagen que quieran
.code
start:
push SPIF_UPDATEINIFILE
push imagen
push 0
push SPI_SETDESKWALLPAPER
call [SystemParametersInfo] ; Cambiamos el fondo por C:\Windows\pompas.bmp
;------------------------
invoke ExitProcess,0 ;Terminamos
.end start


Por si no entiendes el code la api que cambia el fondo es SystemParametersInfo
WHK es mas u17r4m4573r31337 que yo



El error mas grande de el mundo es decir que el ser humano es inteligente.

Facismo , antifacismo , etc.. la misma mierda ..
Soy el-> http://tinyurl.com/fantasma-de-krackwar
Código (asm) [Seleccionar]

mov ecx,1000
Etiqueta:
invoke printf,"No Copiare en clases"
loop Etiq

<[(x)]>

mm

lo q estoy buscando es pasar algo como un pequeño videito en ese DC

si eso q pusistes no tilda la pc y es rápido puede q me sirva.
<[(x)]>

LeandroA

hola fijate esto es mucho mejor

agrega un WindowsMediaPlayer1 (el de la ultima versión) y un timer1

Option Explicit
'By Leandro Ascierto
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Declare Function SetSysColors Lib "user32.dll" (ByVal nChanges As Long, ByRef lpSysColor As Long, ByRef lpColorValues As Long) As Long
Private Declare Function GetSysColor Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Const COLOR_BACKGROUND As Long = 1
Private Const SPIF_UPDATEINIFILE As Long = &H1
Private Const SPIF_SENDWININICHANGE As Long = &H2
Private Const SPI_GETDESKWALLPAPER As Long = 115
Private Const SPI_SETDESKWALLPAPER As Long = 20
Dim lOldColor As Long
Dim sOldWallPaper As String

Private Sub Form_Load()
    Me.Visible = False
    Me.Move 0, 0, Screen.Width, Screen.Height
    sOldWallPaper = Space(255)
    SystemParametersInfo SPI_GETDESKWALLPAPER, 255, sOldWallPaper, 0
    lOldColor = GetSysColor(COLOR_BACKGROUND)

    Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, " ", 0)
    Call SetSysColors(1, COLOR_BACKGROUND, RGB(16, 0, 16))
   
    WindowsMediaPlayer1.Move 0, 0, Screen.Width, Screen.Height
    WindowsMediaPlayer1.URL = "http://tn.com.ar/vivo/metafile.asx"
    WindowsMediaPlayer1.stretchToFit = True
    Timer1.Interval = 1000
End Sub




Private Sub Timer1_Timer()
Static x As Long
x = x + 1
If x = 100 Then

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, sOldWallPaper, 0)
Call SetSysColors(1, COLOR_BACKGROUND, lOldColor)
Unload Me
End If
End Sub


Saludos

Karcrack

Código (vb) [Seleccionar]
Private Const HWND_DESKTOP As Long = 0

Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Long) As Long

Sub Main()
    Debug.Print GetWindowDC(HWND_DESKTOP)
End Sub


Bueno, esto es por lo que preguntabas no?

Aunque el ejemplo de Leandro es todavia mejor, lastima que necesites el WMP :P

Saludos ;)

el_c0c0

Cita de: Karcrack en 10 Marzo 2009, 17:09 PM
Código (vb) [Seleccionar]
Private Const HWND_DESKTOP As Long = 0

Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Long) As Long

Sub Main()
    Debug.Print GetWindowDC(HWND_DESKTOP)
End Sub


Bueno, esto es por lo que preguntabas no?

Aunque el ejemplo de Leandro es todavia mejor, lastima que necesites el WMP :P

Saludos ;)

podes hacer createobject en ese caso. en fin, lo de leandro funciona porque ese color reemplaza por algun motivo al video (?)
pero bueno, el quiere sacar el dc del objeto ListView SUPONGO!

saludos
'-     coco
"Te voy a romper el orto"- Las hemorroides

LeandroA

Cita de: Karcrack en 10 Marzo 2009, 17:09 PM

Aunque el ejemplo de Leandro es todavia mejor, lastima que necesites el WMP :P

Saludos ;)

Hola no es nesesario el WMP se puede hacer con MCI puse el WMP para poder mostrar el ejemplo con un avi en una web, y ademas por vagancia, despues voy a ver si puede poner un ejemplo mas completito usando MCI

Saludos