PDA

View Full Version : حرفه ای: نمايش تصوير از كامپيوتر داخل شبكه



singel
چهارشنبه 13 آبان 1388, 23:24 عصر
سلام عزيزان
يك سوال ذهن من رو مشغول كرده ، برنامه هايي مثل remote admin, vnc, ... چطوري تصاوير از صفحه desktop كامپيوتر داخل شبكه به كامپيوتر ما ارسال ميكنه:متفکر:

bastakboys
پنج شنبه 14 آبان 1388, 00:32 صبح
دقیق نمی دونم
اما یکی از دوستان این برنامه را نوشته بود وکارش به این روال بود که:
در برنامه کلاینت توسط یک کلاس از دسکتاپ عکس میگرفت و حجم اون را پایین می آورد و به سرور ارسال می شد
بطوری که در ثانیه 5 تا عکس ارسال میشد.
و برای کنترل موس و کیبرد ازApi استفاده می کرد.

singel
پنج شنبه 14 آبان 1388, 08:51 صبح
لطف کردی
اما میتونی یک کم بیشتر راهنمایی کنی
از چه جور کلاسی استفاده کرده
یا حداقل سایتی رو بهم معرفی کنی

bastakboys
پنج شنبه 14 آبان 1388, 19:17 عصر
لطف کردی
اما میتونی یک کم بیشتر راهنمایی کنی
از چه جور کلاسی استفاده کرده
یا حداقل سایتی رو بهم معرفی کنی
دوست عزیز گفتم که کار یکی از دوستانم بود دقیقا نمی دونم اما اگه کلاس گرفتن عکس را می خواهی
بیا این یک ماژول:


Imports System.IO
Module ScreenCapture
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As String) As Integer

Private Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Integer) As Integer

Private Declare Function CreateCompatibleBitmap Lib "GDI32" (ByVal hDC As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer) As Integer

Private Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Integer, ByVal nIndex As Integer) As Integer

Private Declare Function SelectObject Lib "GDI32" (ByVal hDC As Integer, ByVal hObject As Integer) As Integer

Private Declare Function BitBlt Lib "GDI32" (ByVal srchDC As Integer, ByVal srcX As Integer, ByVal srcY As Integer, ByVal srcW As Integer, ByVal srcH As Integer, ByVal desthDC As Integer, ByVal destX As Integer, ByVal destY As Integer, ByVal op As Integer) As Integer

Private Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Integer) As Integer

Private Declare Function DeleteObject Lib "GDI32" (ByVal hObj As Integer) As Integer

Public oBitMap As Bitmap = Nothing
Public ImgArray As Byte()

Const SRCCOPY As Integer = &HCC0020

Private FW, FH As Integer

Public Sub CurrentScreen()
'Captures the Current Screen and Stores in a Bitmap


Dim hSDC, hMDC As Integer
Dim hBMP, hBMPOld As Integer
Dim r As Integer

hSDC = CreateDC("DISPLAY", "", "", "")
hMDC = CreateCompatibleDC(hSDC)

FW = GetDeviceCaps(hSDC, 8)
FH = GetDeviceCaps(hSDC, 10)
hBMP = CreateCompatibleBitmap(hSDC, FW, FH)

hBMPOld = SelectObject(hMDC, hBMP)
r = BitBlt(hMDC, 0, 0, FW, FH, hSDC, 0, 0, 13369376)
hBMP = SelectObject(hMDC, hBMPOld)

r = DeleteDC(hSDC)
r = DeleteDC(hMDC)

oBitMap = Image.FromHbitmap(New IntPtr(hBMP))
DeleteObject(hBMP)



End Sub
End Module

singel
پنج شنبه 14 آبان 1388, 20:11 عصر
خيلي ممنون دوست من
با اين كلاس هم امتحان ميكنم ببينم چي ميشه:تشویق::تشویق::لبخند:

singel
سه شنبه 19 آبان 1388, 23:22 عصر
يعني كسي جواب اين سوال رو نميدونه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟