十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
既然能夠取得整個(gè)屏幕,可以取到整個(gè)屏幕以后創(chuàng)建一個(gè)全屏窗體顯示靜態(tài)的屏幕圖像,然后在窗體上實(shí)現(xiàn)部分截取。
在豐縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,豐縣網(wǎng)站建設(shè)費(fèi)用合理。
估計(jì)別的截圖也是這個(gè)原理,因?yàn)橐稽c(diǎn)開始截圖屏幕就變?yōu)殪o態(tài)不動(dòng)了,肯定是在截圖初期復(fù)制了當(dāng)時(shí)的屏幕場(chǎng)景
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐標(biāo)聲明
Private Declare Function ScreenToClient Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐標(biāo)聲明
Private Structure POINTAPI '聲明坐標(biāo)變量
Public x As Int32 '聲明坐標(biāo)變量為32位
Public y As Int32 '聲明坐標(biāo)變量為32位
End Structure
'以上是聲明部分
'以下是窗口部分
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '用時(shí)鐘控件來取坐標(biāo),窗口上放個(gè)Timer組件,Enabled為允許,周期為10到100毫秒均可
Dim P As POINTAPI '聲明坐標(biāo)變量
Dim xx, yy '聲明轉(zhuǎn)換要用到的變量
GetCursorPos(P) '獲取鼠標(biāo)在屏幕中的位置
ScreenToClient(Me.Handle.ToInt32, P) '轉(zhuǎn)換為本窗體的坐標(biāo)
xx = P.x.ToString '把X轉(zhuǎn)換成能顯示到文本框的字符串格式
yy = P.y.ToString '把Y轉(zhuǎn)換成能顯示到文本框的字符串格式
TextBox1.Text = xx + "和" + yy '文本框的內(nèi)容為X坐標(biāo)和Y坐標(biāo)
End Sub
屏幕的長(zhǎng)寬就是屏幕的分辨率,用下面的代碼實(shí)現(xiàn),每句后面已添加注釋
Dim x As Integer, y As Integer '定義2個(gè)整數(shù)型變量
x = Screen.Width / Screen.TwipsPerPixelX '獲取屏幕寬度
y = Screen.Height / Screen.TwipsPerPixelY '獲取屏幕高度
上面是vb的語法
下面是Vb.Net的語法:
Dim x, y As Long '定義2個(gè)整數(shù)型變量
x = Screen.PrimaryScreen.Bounds.Width.ToString '獲取屏幕寬度
y = Screen.PrimaryScreen.Bounds.Height.ToString '獲取屏幕高度
默認(rèn)單位是像素
96是系統(tǒng)的一種設(shè)定,每英寸的點(diǎn)數(shù),是系統(tǒng)界面用小字體時(shí)的設(shè)置
用像素?cái)?shù)除以dpi沒有意義
你好 那因?yàn)槟惴旁诹薒abel1控件的移動(dòng)事件了 。
說明:
當(dāng)前你的代碼是在當(dāng)鼠標(biāo)經(jīng)過Label1的MouseMove事件才被激活,其他事件不備激活的。
建議應(yīng)用函數(shù)調(diào)用具體方法網(wǎng)上應(yīng)該有
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
TextBox1.Text = System.Windows.Forms.Cursor.Position.X.ToString "," System.Windows.Forms.Cursor.Position.Y.ToString
End Sub
上面代碼我是做過測(cè)試才發(fā)的,完全能實(shí)現(xiàn)你的要求?。。。。?!
您可以用下面給出這一小段代碼檢測(cè)當(dāng)前屏幕分辨率,然后根據(jù)結(jié)果作出反應(yīng)──例如,重新調(diào)整窗體大小以適應(yīng)用程序戶分辨率。
Public Function CheckRez(pixelWidth As Long, pixelHeight As Long) As Boolean
'
Dim lngTwipsX As Long
Dim lngTwipsY As Long
'
' convert pixels to twips
lngTwipsX = pixelWidth * 15
lngTwipsY = pixelHeight * 15
'
' check against current settings
If lngTwipsX Screen.Width Then
CheckRez = False
Else
If lngTwipsY Screen.Height Then
CheckRez = False
Else
CheckRez = True
End If
End If
'
End Function
Next, run the following code at the start of the program:
If CheckRez(640, 480) = False Then
MsgBox "Incorrect screen size!"
Else
MsgBox "Screen Resolution Matches!"
End If