Однако! не дают покоя народу чужие проги... Я так понял - имеется ввиду активное в данный момент приложение? если да, то по 1 вопросу: узнаешь хендл активного окна Private Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long dim hwd as Long hwd=GetActiveWindow () а потом получаешь кооринаты углов ограничивающего прямоугольника этого окна Private Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Dim r as RECT GetWindowRect hwd, r Х1 - r.Left, X2 - r.Right Y1 - r.Top, Y2 - r.Bottom потом вычитанием размеры окна и получишь (r.Right-r.Left и т.д) 2 вопрос: что значит "отсканировать"? если ты про снимок активного окна, то в библиотеке вроде был пример, (или нет - не помню, честно) на всякий случай лови: '--- Private Declare Function MapVirtualKey Lib "user32" _ Alias "MapVirtualKeyA" (ByVal wCode As Long, _ ByVal wMapType As Long) As Long Private Declare Sub keybd_event Lib "user32" _ (ByVal bVk As Byte, ByVal bScan As Byte, _ ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Const VK_MENU = &H12 Private Const KEYEVENTF_KEYUP = &H2 Private Const VK_SNAPSHOT = &H2C Private Sub WindowCapture() Dim AltKey as Integer AltKey = MapVirtualKey(VK_MENU, 0) Screen.MousePointer = vbHourglass keybd_event VK_MENU, AltKey, 0, 0 DoEvents keybd_event VK_SNAPSHOT, 0, 0, 0 DoEvents Picture1.Picture = Clipboard.GetData(vbCFBitmap) keybd_event VK_MENU,AltKey , KEYEVENTF_KEYUP, 0 Screen.MousePointer = vbDefault Private Sub Form_Load() WindowCapture SavePicture Picture1.Picture, App.Path & "\test.bmp" End Sub '--- вроде так... конечно, можно и через StretchBlt, но я не знаю, как потом в файл сохранить (кто знает - напишите, плиз) что же касается переменных - как узнать, не знаю , но тоже интересно. может, кто-нить подскажет.
Ответить
|