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

全面剖析VB.NET調(diào)用API函數(shù)

開發(fā) 后端
這里介紹VB.NET調(diào)用API函數(shù),在VB.NET中,我們很容易獲得顯示器的分辯率,但是,要改變顯示器的分辯率就比較麻煩了。

學(xué)習(xí)VB.NET時,你可能會遇到VB.NET調(diào)用API函數(shù)問題,這里將介紹VB.NET調(diào)用API函數(shù)問題的解決方法,在這里拿出來和大家分享一下。

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

下面,我們就嘗試一下VB.NET調(diào)用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  
  5. '刷新頻率常量  
  6. private Const DM_DISPLAYFREQUENCY As Integer = &H400000  
  7. '調(diào)用API函數(shù)  
  8. private Declare Function EnumDisplaySettings Lib "user32" Alias  
  9. "EnumDisplaySettingsA" (ByVal lpszDeviceName As Integer,  
  10. ByVal iModeNum As Integer, ByRef lpDevMode As DEVMODE) As Boolean  
  11. '調(diào)用api函數(shù)  
  12. private Declare Function ChangeDisplaySettings Lib "user32" Alias  
  13. "ChangeDisplaySettingsA" (ByRef lpDevMode As DEVMODE,  
  14. ByVal dwflags As Integer) As Integer  
  15. '定義結(jié)構(gòu)  
  16. private Structure DEVMODE  
  17. Public dmDeviceName As String  
  18. dim dmSpecVersion As Short  
  19. dim dmDriverVersion As Short  
  20. dim dmSize As Short  
  21. dim dmDriverExtra As Short  
  22. dim dmFields As Integer  
  23. dim dmOrientation As Short  
  24. dim dmPaperSize As Short  
  25. dim dmPaperLength As Short  
  26. dim dmPaperWidth As Short  
  27. dim dmScale As Short  
  28. dim dmCopies As Short  
  29. dim dmDefaultSource As Short  
  30. dim dmPrintQuality As Short  
  31. dim dmColor As Short  
  32. dim dmDuplex As Short  
  33. dim dmYResolution As Short  
  34. dim dmTTOption As Short  
  35. dim dmCollate As Short  
  36. Public dmFormName As String  
  37. dim dmUnusedPadding As Short  
  38. dim dmBitsPerPel As Short  
  39. dim dmPelsWidth As Integer  
  40. dim dmPelsHeight As Integer  
  41. dim dmDisplayFlags As Integer  
  42. dim dmDisplayFrequency As Integer  
  43. end Structure  
  44. '改變分辯率過程,參數(shù)一寬度,參數(shù)二高度  
  45. private Sub ChangeDisp(ByRef iWidth As Single, ByRef iHeight As Single)  
  46. dim blnWorked As Boolean  
  47. dim i As Integer  
  48. dim DevM As Form1.DEVMODE  
  49. i = 0 
  50. do  
  51. blnworked = EnumDisplaySettings(0, i, DevM)  
  52. ii = i + 1  
  53. loop Until (blnWorked = False)  
  54. with DevM  
  55. .dmfields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFREQUENCY  
  56. .dmpelswidth = iWidth 
  57. .dmpelsheight = iHeight 
  58. '刷新頻率為85  
  59. .dmdisplayfrequency = 85 
  60. end With  
  61. call ChangeDisplaySettings(DevM, 0)  
  62. end Sub  
  63. private Sub btnGetDisp_Click(ByVal sender As System.Object,  
  64. ByVal e As System.EventArgs) Handles btnGetDisp.Click  
  65. dim X As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width  
  66. dim Y As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height  
  67. msgbox("您的顯示器分辨率是" & X & " X " & Y)  
  68. end Sub  
  69. private Sub btnSetDisp_Click(ByVal sender As System.Object,  
  70. ByVal e As System.EventArgs) Handles btnSetDisp.Click  
  71. if MsgBox("您確認(rèn)要將顯示器分辨率改為1024x768嗎?", MsgBoxStyle.OKCancel,  
  72. "系統(tǒng)消息") = MsgBoxResult.OK Then  
  73. '調(diào)用改變分辯率過程  
  74. changedisp(1024, 768)  
  75. end If  
  76. end Sub 

【編輯推薦】

  1. 簡單分析VB.NET臨時文件
  2. 詳細(xì)描述VB.NET PadLeft方法
  3. VB.NET Shared變量經(jīng)驗總結(jié)
  4. 全面講解VB.Net賦值語句
  5. 淺析VB.NET創(chuàng)建PPC客戶端程序
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-10-23 10:01:28

VB.NET申明Win

2009-11-03 12:52:38

VB.NET Wind

2009-10-29 11:26:28

VB.NET調(diào)用Web

2009-10-26 10:44:27

VB.NET API函

2009-11-10 16:55:05

VB.NET調(diào)用API

2009-10-23 13:14:38

2009-10-28 17:44:31

VB.NET語言

2009-10-21 16:00:26

VB.NET CASE

2010-01-18 17:29:35

VB.NET函數(shù)調(diào)用

2009-10-20 08:39:57

VB.NET輸出函數(shù)

2009-10-23 09:38:59

VB.NET平臺調(diào)用

2009-10-28 10:04:53

VB.NET XmlW

2009-10-16 18:01:06

VB.NET調(diào)用Win

2009-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2009-10-19 17:42:31

VB.NET API函

2009-10-28 14:00:02

VB.NET文件處理

2009-11-02 14:48:45

VB.NET HOOK

2009-11-02 15:57:36

VB.NET WEB

2009-11-10 16:46:52

VB.NET指針應(yīng)用

2009-10-15 11:42:05

VB.Net賦值語句
點贊
收藏

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