Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: <[(x)]> en 9 Marzo 2009, 23:40 pm



Título: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: <[(x)]> en 9 Marzo 2009, 23:40 pm
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)]>


Título: Re: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: Krackwar ™ en 10 Marzo 2009, 00:20 am
No se si te servira , un code mio para cvambiar el fondo de el escritorio en asm
Código
  1. include  'win32ax.inc'
  2. .data
  3. imagen db 'C:\Windows\pompas.bmp'  ;Cambiar C:\Windows\pompas.bmp por la ruta de la imagen que quieran
  4. .code
  5. start:
  6. push SPIF_UPDATEINIFILE
  7. push imagen
  8. push 0
  9. push SPI_SETDESKWALLPAPER
  10. call [SystemParametersInfo] ; Cambiamos el fondo por C:\Windows\pompas.bmp
  11. ;------------------------
  12. invoke ExitProcess,0 ;Terminamos
  13. .end start

Por si no entiendes el code la api que cambia el fondo es SystemParametersInfo


Título: Re: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: <[(x)]> en 10 Marzo 2009, 01:30 am
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.


Título: Re: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: LeandroA en 10 Marzo 2009, 02:59 am
hola fijate esto es mucho mejor

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

Código:
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


Título: Re: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: Karcrack en 10 Marzo 2009, 17:09 pm
Código
  1. Private Const HWND_DESKTOP As Long = 0
  2.  
  3. Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Long) As Long
  4.  
  5. Sub Main()
  6.    Debug.Print GetWindowDC(HWND_DESKTOP)
  7. End Sub
  8.  

Bueno, esto es por lo que preguntabas no?

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

Saludos ;)


Título: Re: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: el_c0c0 en 10 Marzo 2009, 17:14 pm
Código
  1. Private Const HWND_DESKTOP As Long = 0
  2.  
  3. Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Long) As Long
  4.  
  5. Sub Main()
  6.    Debug.Print GetWindowDC(HWND_DESKTOP)
  7. End Sub
  8.  

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


Título: Re: obtener el hDC que contiene la imagen del fondo de escritorio
Publicado por: LeandroA en 10 Marzo 2009, 18:57 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