Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: agus0 en 13 Enero 2010, 23:11 pm



Título: [Solucionado] Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: agus0 en 13 Enero 2010, 23:11 pm
Buenas Foro!

Tenia una duda.

¿Como puedo crear ese efecto que tiene windows xp Cunado uno aprieta el boton de apagar, que todo menos las opciones de "Apagar, Suspender y reiniciar" se pone blanco y negro???

Es decir esto

(http://www.monografias.com/trabajos39/lecciones-windows-xp/Image11388.jpg)

Link de la img: Clic aqui (http://www.monografias.com/trabajos39/lecciones-windows-xp/Image11388.jpg)

y si no, Como hacer el de win vista o win7 cuando un soft trata de ejecutarse como admin, osea este:

(http://public.bay.livefilestore.com/y1pYbMdvB-sNd39oBc4hBktnVbBPCk-Katk8UjyCfHA9-pMfD0DUODLcKuQ7kkJBLbuJxVssYs7K762NGl2AY7pBw/34.jpg)

[LINK de la img]

Gracias!!
 (http://public.bay.livefilestore.com/y1pYbMdvB-sNd39oBc4hBktnVbBPCk-Katk8UjyCfHA9-pMfD0DUODLcKuQ7kkJBLbuJxVssYs7K762NGl2AY7pBw/34.jpg)


Título: Re: Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: raul338 en 14 Enero 2010, 00:23 am
Basicamente crea un formulario del tamaño de la pantalla, de color negro, y con la API (creo que es con SetLayeredWindow o algo asi) la haces un % transparente, y vas animando con un timer ;-)



Título: Re: Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: agus0 en 14 Enero 2010, 00:49 am
podrias explicarme mas del uso de esta api... raul? Gracias


Título: Re: Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: b10s_0v3rr1d3 en 14 Enero 2010, 01:06 am
si es la funcion SetLayeredWindowAttributes, puse hace un time una explicacion en el blog, aqui lo tienes:

http://c0d3-l4bs.blogspot.com/2009/11/manipular-las-transparencias-de-las.html [!= spam]


Título: Re: Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: LeandroA en 14 Enero 2010, 04:03 am
Hola para el efecto de vista si podrias usar SetLayeredWindowAttributes pero para el de apagado del xp te paso un metodo convirtiendo la pantalla a escala de grices.

Agrega a un formulario: Timer1, Picture1, Command1

Código
  1. Option Explicit
  2. '*-------------------------------------*
  3. 'Autor:     Leandro Ascierto
  4. 'web:       www.leandroascierto.com.ar
  5. 'Date:      13/01/2009
  6. 'Referncia  ApiGuide
  7. 'Requimientos Timer1, Picture1, Command1
  8. '*-------------------------------------*
  9. Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
  10. Private Declare Function CreateDIBSection Lib "gdi32" (ByVal hdc As Long, pBitmapInfo As BITMAPINFO, ByVal un As Long, ByVal lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long
  11. Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
  12. Private Declare Function SetDIBitsToDevice Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BITMAPINFO, ByVal wUsage As Long) As Long
  13. Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
  14. Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
  15. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  16. Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
  17. Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
  18. Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
  19.  
  20. Private Type BITMAPINFOHEADER
  21.    biSize As Long
  22.    biWidth As Long
  23.    biHeight As Long
  24.    biPlanes As Integer
  25.    biBitCount As Integer
  26.    biCompression As Long
  27.    biSizeImage As Long
  28.    biXPelsPerMeter As Long
  29.    biYPelsPerMeter As Long
  30.    biClrUsed As Long
  31.    biClrImportant As Long
  32. End Type
  33.  
  34. Private Type RGBQUAD
  35.    rgbBlue As Byte
  36.    rgbGreen As Byte
  37.    rgbRed As Byte
  38.    rgbReserved As Byte
  39. End Type
  40.  
  41. Private Type BITMAPINFO
  42.    bmiHeader As BITMAPINFOHEADER
  43.    bmiColors As RGBQUAD
  44. End Type
  45.  
  46. Private Const BI_RGB = 0&
  47. Private Const DIB_RGB_COLORS = 0
  48.  
  49. Private Const HWND_TOPMOST      As Long = -1
  50. Private Const SWP_NOACTIVATE    As Long = &H10
  51. Private Const SWP_SHOWWINDOW    As Long = &H40
  52.  
  53. Private bi24BitInfo     As BITMAPINFO
  54. Private hBitmap         As Long
  55. Private lHdc            As Long
  56. Private bBytes()        As Byte
  57. Dim lCunter             As Long
  58.  
  59. Private Sub Command1_Click()
  60.    Unload Me
  61. End Sub
  62.  
  63. Private Sub Form_Load()
  64.    Dim TempDC As Long
  65.  
  66.    Me.BorderStyle = 0
  67.    Me.Caption = ""
  68.    Me.WindowState = vbMaximized
  69.    Me.AutoRedraw = True
  70.    Command1.Caption = "Cancelar"
  71.  
  72.    TempDC = GetDC(0)
  73.  
  74.    With bi24BitInfo.bmiHeader
  75.        .biBitCount = 24
  76.        .biCompression = BI_RGB
  77.        .biPlanes = 1
  78.        .biSize = Len(bi24BitInfo.bmiHeader)
  79.        .biWidth = Screen.Width / Screen.TwipsPerPixelX
  80.        .biHeight = Screen.Height / Screen.TwipsPerPixelY
  81.    End With
  82.  
  83.    ReDim bBytes(1 To bi24BitInfo.bmiHeader.biWidth * bi24BitInfo.bmiHeader.biHeight * 3) As Byte
  84.  
  85.    lHdc = CreateCompatibleDC(0)
  86.    hBitmap = CreateDIBSection(lHdc, bi24BitInfo, DIB_RGB_COLORS, ByVal 0&, ByVal 0&, ByVal 0&)
  87.  
  88.    SelectObject lHdc, hBitmap
  89.  
  90.    BitBlt lHdc, 0, 0, bi24BitInfo.bmiHeader.biWidth, bi24BitInfo.bmiHeader.biHeight, GetDC(0), 0, 0, vbSrcCopy
  91.    GetDIBits lHdc, hBitmap, 0, bi24BitInfo.bmiHeader.biHeight, bBytes(1), bi24BitInfo, DIB_RGB_COLORS
  92.    BitBlt Me.hdc, 0, 0, bi24BitInfo.bmiHeader.biWidth, bi24BitInfo.bmiHeader.biHeight, TempDC, 0, 0, vbSrcCopy
  93.  
  94.  
  95.  
  96.    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, bi24BitInfo.bmiHeader.biWidth, bi24BitInfo.bmiHeader.biHeight, SWP_NOACTIVATE Or SWP_SHOWWINDOW
  97.  
  98.    Picture1.Move (Me.ScaleWidth / 2) - (Picture1.ScaleWidth / 2), (Me.ScaleHeight / 2) - (Picture1.ScaleHeight / 2)
  99.  
  100.    lCunter = 0
  101.    Timer1.Interval = 150
  102.  
  103.    DeleteDC TempDC
  104. End Sub
  105.  
  106. Private Sub Form_Unload(Cancel As Integer)
  107.    DeleteDC lHdc
  108.    DeleteObject hBitmap
  109. End Sub
  110.  
  111. Private Sub Timer1_Timer()
  112.    Dim Cnt As Long, lGray As Long
  113.    Dim lR As Long, lG As Long, lB As Long
  114.  
  115.    lCunter = lCunter + 1
  116.  
  117.    If lCunter > 60 < 65 Then
  118.        For Cnt = LBound(bBytes) To UBound(bBytes) - 3 Step 3
  119.            lB = bBytes(Cnt)
  120.            lG = bBytes(Cnt + 1)
  121.            lR = bBytes(Cnt + 2)
  122.            lGray = (222 * lR + 707 * lG + 71 * lB) / 1000
  123.            bBytes(Cnt) = (lB * 4 + lGray) / 5
  124.            bBytes(Cnt + 1) = (lG * 4 + lGray) / 5
  125.            bBytes(Cnt + 2) = (lR * 4 + lGray) / 5
  126.        Next Cnt
  127.  
  128.        SetDIBitsToDevice Me.hdc, 0, 0, bi24BitInfo.bmiHeader.biWidth, bi24BitInfo.bmiHeader.biHeight, 0, 0, 0, _
  129.            bi24BitInfo.bmiHeader.biHeight, bBytes(1), bi24BitInfo, DIB_RGB_COLORS
  130.  
  131.        Me.Refresh
  132.    End If
  133.  
  134.    If lCunter = 71 Then Timer1.Interval = 0
  135. End Sub
  136.  

Saludos.


Título: Re: Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: LeandroA en 14 Enero 2010, 04:05 am
a una cosa muy importate Compilalo!! sino es muy lento.

Saludos.


Título: Re: Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: agus0 en 14 Enero 2010, 09:52 am
Gracias Lea. Ya pude hacer el de vista pero el de xp me faltaba eso de hacer que se vea Blanco y negro o En escala de Grises Mejor Dicho Me Sirvio Perfecto
 ;-) ;-)


Título: Re: [Solucionado] Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: belent en 21 Julio 2010, 21:49 pm
que tal yo queria hacer ese efecto del apagado del sistema, en blanco y negro xq vi en muchas pc con xp que tienen ese efecto. Yo tengo windows vista, quisiera saber si se puede hacer y cómo. Gracias!


Título: Re: [Solucionado] Alguien sabe Como Crear ese Efecto Blanco Y negro ....
Publicado por: BlackZeroX en 22 Julio 2010, 11:42 am
O.o¡?