Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Zrzut ekranu - jak zrobic inaczej?
i-spy



Typ: neutral
Postów: 44
Zarejestrowany: Apr 2004
Zrzut ekranu - jak zrobic inaczej?

Potrzebuje zrobic zrzut ekranu. Uzywam do tego nastepujacego kodu:

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)


    Clipboard.Clear
   
    DoEvents
    keybd_event vbKeySnapshot, Capture, 0&, 0&
    DoEvents
 
    picI.Picture = Clipboard.GetData(0)

Niestety funkcja ta nie dziala na Windows98!
Czy jest jakis inny sposob na zrobienie zrzutu?


_____________________________________________
Oto moja pasja...
www.vbprograms.prv.pl
!Zapraszam

05-09-2004 10:26
Pokaż profil i-spy  Wyślij email do i-spy   Odwiedź stronę i-spy       2121177
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Sprawdziłem - działa bez problemów. Tlko że w win xp itp. musisz zmienić linijkę

keybd_event vbKeySnapshot, Capture, 0&, 0&

na

keybd_event vbKeySnapshot, Capture, 1&, 0&

w starszych systemach 0 oznacza ekran, 1 okno, a w nowych jest odwrotnie.


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-09-2004 12:22
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
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

Private Const SRCCOPY = &HCC0020

Private Sub Screenshot(hDC_Dest As Long)
    Dim hWnd_Desktop As Long
    Dim hDC_Desktop As Long
    Dim rDesktop As RECT
   
    hWnd_Desktop = GetDesktopWindow
    hDC_Desktop = GetWindowDC(hWnd_Desktop)
    GetWindowRect hWnd_Desktop, rDesktop
    BitBlt hDC_Dest, 0, 0, rDesktop.Right, rDesktop.Bottom, hDC_Desktop, 0, 0, SRCCOPY
End Sub


Parametr hDC_Dest to uchwyt do doclowego DC (tego, gdzie zostanie skopiowany obraz).


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

06-09-2004 00:57
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Ja odbiegnę troche od tematu: dlaczego zmieniane są w winach w tak drastyczny sposób standardy, których zmiana na nic nie wpłynie?!


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

11-09-2004 20:54
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Na przykład jaka zmiana?


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

11-09-2004 22:39
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1