自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

輕松完成VB.NET變更顯示器分辨率

開發(fā) 后端
VB.NET變更顯示器分辨率的實現(xiàn),可以使用幾個相關(guān)函數(shù)來進行操作。而且利用VB.NET語言機進行這一功能的實現(xiàn),其操作步驟非常簡單。

VB.NET中的各種特點極大的吸引了開發(fā)人員的眼球。當我們想要利用這款語言進行移動設(shè)備的操作時,將會發(fā)現(xiàn)其應用方式是非常簡單的。那么我們就一起來看看VB.NET變更顯示器分辨率的相關(guān)操作。#t#

在VB.NET中,我們很容易獲得顯示器的分辯率,但是,要改變顯示器的分辯率就比較麻煩了。由于.NET的類庫沒有將EnumDisplaySettings 和ChangeDisplaySettings這兩個API函數(shù)進行封裝,但是我們得調(diào)用它們函數(shù),相對于VB6來說,VB.NET調(diào)用API函數(shù)是有一些小的改動!

下面,我們就嘗試一下在VB.NET變更顯示器分辨率中,使用這兩個API函數(shù)。

新建一個項目,在Form1上添加兩個按鈕,一個名為btnGetDisp,將其Text屬性設(shè)置為“得到分辯率”;另一個按鈕名為btnSetDisp,Text屬性為“設(shè)置分辯率”。然后在代碼窗口里添加以下代碼:

  1. Private Const CCDEVICENAME 
    As 
    Short = 32   
  2. Private Const CCFORMNAME 
    As 
    Short = 32   
  3. Private Const DM_PELSWIDTH 
    As 
    Integer = &H80000   
  4. Private Const DM_PELSHEIGHT 
    As 
    Integer = &H100000  

刷新頻率常量

  1. Private Const DM_
    DISPLAYFREQUENCY As 
    Integer = &H400000  

調(diào)用API函數(shù)實現(xiàn)VB.NET變更顯示器分辨率

  1. Private Declare Function 
    EnumDisplaySettings Lib 
    "user32" Alias "EnumDis
    playSettingsA"   
  2. (ByVal lpszDeviceName As 
    Integer, ByVal iModeNum As 
    Integer, ByRef lpDevMode 
    As DEVMODE) As Boolean  

調(diào)用API函數(shù)

  1. Private Declare Function 
    ChangeDisplaySettings Lib 
    "user32" Alias "Change
    DisplaySettingsA"   
  2. (ByRef lpDevMode As 
    DEVMODE, ByVal dwflags 
    As Integer) As Integer  

定義結(jié)構(gòu)進行VB.NET變更顯示器分辨率的操作

  1. Private Structure DEVMODE   
  2. < VBFixedString(CCDEVICENAME), 
    System.Runtime.InteropServices.
    MarshalAs   
  3. (System.Runtime.InteropServices.
    UnmanagedType.ByValTStr, 
    SizeConst:=CCDEVICENAME)> 
    Public dmDeviceName As String   
  4. Dim dmSpecVersion As Short   
  5. Dim dmDriverVersion As Short   
  6. Dim dmSize As Short   
  7. Dim dmDriverExtra As Short   
  8. Dim dmFields As Integer   
  9. Dim dmOrientation As Short   
  10. Dim dmPaperSize As Short   
  11. Dim dmPaperLength As Short   
  12. Dim dmPaperWidth As Short   
  13. Dim dmScale As Short   
  14. Dim dmCopies As Short   
  15. Dim dmDefaultSource As Short   
  16. Dim dmPrintQuality As Short   
  17. Dim dmColor As Short   
  18. Dim dmDuplex As Short   
  19. Dim dmYResolution As Short   
  20. Dim dmTTOption As Short   
  21. Dim dmCollate As Short   
  22. < VBFixedString(CCFORMNAME), 
    System.Runtime.InteropServices
    .MarshalAs   
  23. (System.Runtime.InteropServices
    .UnmanagedType.ByValTStr, 
    SizeConst:=CCFORMNAME)> 
    Public dmFormName As String   
  24. Dim dmUnusedPadding As Short   
  25. Dim dmBitsPerPel As Short   
  26. Dim dmPelsWidth As Integer   
  27. Dim dmPelsHeight As Integer   
  28. Dim dmDisplayFlags As Integer   
  29. Dim dmDisplayFrequency As Integer   
  30. End Structure  

改變分辯率過程,參數(shù)一寬度,參數(shù)二高度

  1. Private Sub ChangeDisp(ByRef 
    iWidth As Single, ByRef 
    iHeight As Single)   
  2. Dim blnWorked As Boolean   
  3. Dim i As Integer   
  4. Dim DevM As Form1.DEVMODE   
  5. i = 0   
  6. Do   
  7. blnWorked = EnumDisplaySettings
    (0, i, DevM)   
  8. ii = i + 1   
  9. Loop Until (blnWorked = False)   
  10. With DevM   
  11. .dmFields = DM_PELSWIDTH Or 
    DM_PELSHEIGHT Or DM_DISPLAYFREQUENCY   
  12. .dmPelsWidth = iWidth   
  13. .dmPelsHeight = iHeight  

刷新頻率為85

  1. .dmDisplayFrequency = 85   
  2. End With   
  3. Call ChangeDisplaySettings
    (DevM, 0)   
  4. End Sub   
  5. Private Sub btnGetDisp_Click
    (ByVal sender As System.Object, 
    ByVal e As System.EventArgs) 
    Handles btnGetDisp.Click   
  6. Dim X As Short = System.Windows
    .Forms.Screen.PrimaryScreen.
    Bounds.Width   
  7. Dim Y As Short = System.Windows.
    Forms.Screen.PrimaryScreen.
    Bounds.Height   
  8. MsgBox("您的顯示器分辨率是" & 
    X & " X " & Y)   
  9. End Sub   
  10. Private Sub btnSetDisp_Click(ByVal 
    sender As System.Object, 
    ByVal e As System.EventArgs) 
    Handles btnSetDisp.Click   
  11. If MsgBox("您確認要將顯示器分辨率改
    為1024x768嗎?", MsgBoxStyle.OKCancel, 
    "系統(tǒng)消息") = MsgBoxResult.OK Then   
  12. '調(diào)用改變分辯率過程   
  13. ChangeDisp(1024, 768)   
  14. End If   
  15. End Sub  

VB.NET變更顯示器分辨率的程序運行后,點擊設(shè)置分辯率,將會把顯示器分辨率改為1024x768。

責任編輯:曹凱 來源: IT168
相關(guān)推薦

2009-10-27 15:49:11

VB.NET分辯率

2010-01-18 10:13:08

VB.NET獲取CPU

2017-07-24 10:42:34

顯示器分辨率落幕

2009-10-15 17:50:48

VB.NET調(diào)用API

2021-09-24 10:25:44

蘋果MacBook PromacOS

2018-03-02 15:39:18

顯示器分辨率主流

2022-02-21 21:37:42

辦公顯示器分辨率

2018-09-28 16:06:50

顯示器參數(shù)分辨率

2010-01-13 18:28:21

VB.NET歷史菜單

2010-01-11 15:12:30

VB.NET特殊窗體

2009-11-03 09:37:33

VB.NET重載

2009-10-29 15:02:04

VB.NET文件排序

2009-10-30 14:45:42

Flash控制VB.N

2010-01-14 11:00:48

VB.NET文件合并

2010-01-13 17:47:59

VB.NET拖放

2010-01-14 13:59:01

2010-01-14 10:07:08

VB.NET文件名排序

2010-01-18 19:36:52

VB.NET調(diào)整控件

2010-01-11 18:40:03

VB.NET操作注冊表

2009-11-02 15:49:23

VB.NET顯示系統(tǒng)信
點贊
收藏

51CTO技術(shù)棧公眾號