⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vbtips5.htm

📁 所有我收藏的VB技巧
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>VBtips6</title>
</head>

<body>

<h1 align="center"><a name="home"></a>VB技巧<font size="5"><strong>(6)</strong></font></h1>

<blockquote>
    <p><strong><b>1、</b></strong><a href="#tips11"><strong>使用</strong><font
    face="宋体"><strong> IIF </strong></font><strong>和</strong><font
    face="宋体"><strong> SWITCH </strong></font><strong>以精减代码</strong></a><strong><br>
    2、</strong><a href="#tips1"><strong>取得 DOS 环境变量</strong></a><strong><br>
    3、</strong><a href="#tips2"><strong>修改屏幕保护的口令</strong></a><strong><br>
    4、</strong><a href="#tips3"><strong>使用 API
    开始屏幕保护</strong></a><strong><br>
    5、</strong><a href="#tips4"><strong>取得和设置系统颜色</strong></a><strong><br>
    6、</strong><a href="#tips5"><strong>改变墙纸</strong></a><strong><br>
    7、</strong><a href="#tips6"><strong>动态改变屏幕设置</strong></a><strong><br>
    8、</strong><a href="#tips7"><strong>桌面的大小</strong></a><strong><br>
    9、</strong><a href="#tips8"><strong>禁止使用 Alt+F4
    关闭窗口</strong></a></p>
</blockquote>
<div align="center"><center>

<table border="0" width="88%">
    <tr>
        <td width="80%"><p align="left"><a
        href="vbtips.htm#Return">[1]</a> <a href="vbtips1.htm">[2]</a>
        <a href="vbtips2.htm">[3]</a> <a href="vbtips3.htm">[4]</a>
        <a href="vbtips4.htm">[5]</a> [6] <a href="vbtips7.htm">[7]</a>
        <a href="#home">[8]</a> <a href="vbtips9.htm">[9]</a> <a
        href="vbtips10.htm">[10]</a></p>
        </td>
        <td><p align="right"><font size="2">第六页(共十页)</font></p>
        </td>
    </tr>
</table>
</center></div>

<hr>
<div align="center"><center>

<table border="0" cellspacing="1" width="88%">
    <tr>
        <td width="100%"><a name="tips0"></a><font size="3"><strong>使用</strong></font><font
        size="3" face="宋体"><strong> IIF </strong></font><font
        size="3"><strong>和</strong></font><font size="3"
        face="宋体"><strong> SWITCH </strong></font><font
        size="3"><strong>以精减代码</strong></font><font
        face="宋体"><br>
        </font>在很多地方你都可以使用一个更紧凑的
        IIf?函数来代替 If...Else...Endif 的结构: <br>
        例:返回两个值中较大的一个 <br>
        maxValue = IIf(first &gt;= second, first, second) <br>
        Switch
        则是一个很少使用的函数,可是在很多方面它都提供比
        If...ElesIf 结构更好的 <br>
        例:判断 &quot;x&quot; 是正、负还是 null? <br>
        Print Switch(x&lt;0,&quot;负&quot;,x&gt;0,&quot;正&quot;,
        True, &quot;Null&quot;)<br>
        <a href="#home">返回</a><p><a name="tips1"></a><strong>取得
        DOS 环境变量<br>
        </strong>使用 Environ 函数:<br>
        Dim x As Integer<br>
        Dim Env As String<br>
        x = 1<br>
        Env = Environ(x)<br>
        Do Until Env = &quot;&quot;<br>
        Env = Environ(x)<br>
        Debug.Print Env<br>
        x = x + 1<br>
        Loop<br>
        <a href="#home">返回</a></p>
        <p><a name="tips2"></a><strong>修改屏幕保护的口令</strong>
        <br>
        声明:<br>
        Private Declare Function PwdChangePassword Lib
        &quot;mpr&quot; Alias &quot;PwdChangePasswordA&quot; _<br>
        (ByVal lpcRegkeyname As String, ByVal hwnd As Long, ByVal
        uiReserved1 As _<br>
        Long, ByVal uiReserved2 As Long) As Long<br>
        使用:<br>
        ' 出现修改屏幕保护口令的窗口<br>
        Call PwdChangePassword(&quot;SCRSAVE&quot;, Me.hwnd, 0,
        0)<br>
        <a href="#home">返回</a></p>
        <p><a name="tips3"></a><strong>使用 API
        开始屏幕保护 </strong><br>
        声明:<br>
        Private Declare Function SendMessage Lib
        &quot;user32&quot; _<br>
        Alias &quot;SendMessageA&quot; (ByVal hWnd As Long, ByVal
        wMsg _<br>
        As Long, ByVal wParam As Long, ByVal lParam As Long) _<br>
        As Long <br>
        Const WM_SYSCOMMAND = &amp;H112&amp;<br>
        Const SC_SCREENSAVE = &amp;HF140&amp;<br>
        代码:<br>
        Dim result As Long<br>
        result = SendMessage(Form1.hWnd, WM_SYSCOMMAND,
        SC_SCREENSAVE, 0&amp;)<br>
        <a href="#home">返回</a></p>
        <p><a name="tips4"></a><strong>取得和设置系统颜色</strong><br>
        声明:<br>
        Public Const COLOR_SCROLLBAR = 0 '滚动条 <br>
        Public Const COLOR_BACKGROUND = 1 '桌面背景<br>
        Public Const COLOR_ACTIVECAPTION = 2 '活动窗口标题<br>
        Public Const COLOR_INACTIVECAPTION = 3 '非活动窗口标题<br>
        Public Const COLOR_MENU = 4 '菜单 <br>
        Public Const COLOR_WINDOW = 5 '窗口背景 <br>
        Public Const COLOR_WINDOWFRAME = 6 '窗口框<br>
        Public Const COLOR_MENUTEXT = 7 '窗口文字 <br>
        Public Const COLOR_WINDOWTEXT = 8 '3D 阴影 (Win95) <br>
        Public Const COLOR_CAPTIONTEXT = 9 '标题文字 <br>
        Public Const COLOR_ACTIVEBORDER = 10 '活动窗口边框<br>
        Public Const COLOR_INACTIVEBORDER = 11 '非活动窗口边框<br>
        Public Const COLOR_APPWORKSPACE = 12 'MDI 窗口背景<br>
        Public Const COLOR_HIGHLIGHT = 13 '选择条背景<br>
        Public Const COLOR_HIGHLIGHTTEXT = 14 '选择条文字<br>
        Public Const COLOR_BTNFACE = 15 '按钮 <br>
        Public Const COLOR_BTNSHADOW = 16 '3D 按钮阴影<br>
        Public Const COLOR_GRAYTEXT = 17 '灰度文字 <br>
        Public Const COLOR_BTNTEXT = 18 '按钮文字 <br>
        Public Const COLOR_INACTIVECAPTIONTEXT = 19 '非活动窗口文字<br>
        Public Const COLOR_BTNHIGHLIGHT = 20 '3D 选择按钮<br>
        <br>
        Declare Function SetSysColors Lib &quot;user32&quot;
        Alias &quot;SetSysColors&quot; (ByVal nChanges As Long,
        lpSysColor As Long, lpColorValues As Long) As Long <br>
        Declare Function GetSysColor Lib &quot;user32&quot; Alias
        &quot;GetSysColor&quot; (ByVal nIndex As Long) As Long <br>
        使用:<br>
        i =GetSysColors(COLOR_ACTIVECAPTION)<br>
        'i 是 RGB 值<br>
        i = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255,0,0)) <br>
        '把标题设置为红色<br>
        <a href="#home">返回</a></p>
        <p><a name="tips5"></a><strong>改变墙纸</strong><br>
        声明:<br>
        Const SPI_SETDESKWALLPAPER = 20<br>
        Const SPIF_UPDATEINIFILE = &amp;H1<br>
        Declare Function SystemParametersInfo Lib
        &quot;user32&quot; Alias
        &quot;SystemParametersInfoA&quot; (ByVal uAction As Long,
        ByVal uParam As Long, ByVal lpvParam As Any, ByVal
        fuWinIni As Long) As Long<br>
        用法:<br>
        Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP名称,
        SPIF_UPDATEINIFILE)<br>
        例子:<br>
        ' 1. 把桌面图片设为 c:\windows\setup.bmp<br>
        Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
        &quot;c:\windows\setup.bmp&quot;, SPIF_UPDATEINIFILE)<br>
        ' 2. 将桌面图片清除<br>
        Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
        &quot;&quot;, SPIF_UPDATEINIFILE)<br>
        <a href="#home">返回</a></p>
        <p><a name="tips6"></a><strong>动态改变屏幕设置 </strong><br>
        Private Declare Function lstrcpy Lib &quot;kernel32&quot;
        Alias &quot;lstrcpyA&quot; (lpString1 As Any, lpString2
        As Any) As Long<br>
        Const CCHDEVICENAME = 32<br>
        Const CCHFORMNAME = 32<br>
        Private Type DEVMODE<br>
        dmDeviceName As String * CCHDEVICENAME<br>
        dmSpecVersion As Integer<br>
        dmDriverVersion As Integer<br>
        dmSize As Integer<br>
        dmDriverExtra As Integer<br>
        dmFields As Long<br>
        dmOrientation As Integer<br>
        dmPaperSize As Integer<br>
        dmPaperLength As Integer<br>
        dmPaperWidth As Integer<br>
        dmScale As Integer<br>
        dmCopies As Integer<br>
        dmDefaultSource As Integer<br>
        dmPrintQuality As Integer<br>
        dmColor As Integer<br>
        dmDuplex As Integer<br>
        dmYResolution As Integer<br>
        dmTTOption As Integer<br>
        dmCollate As Integer<br>
        dmFormName As String * CCHFORMNAME<br>
        dmUnusedPadding As Integer<br>
        dmBitsPerPel As Integer<br>
        dmPelsWidth As Long<br>
        dmPelsHeight As Long<br>
        dmDisplayFlags As Long<br>
        dmDisplayFrequency As Long<br>
        End Type<br>
        Private Declare Function _<br>
        ChangeDisplaySettings Lib _<br>
        &quot;User32&quot; Alias
        &quot;ChangeDisplaySettingsA&quot; (_<br>
        ByVal lpDevMode As Long, _<br>
        ByVal dwflags As Long) As Long<br>
        '函数<br>
        Public Function SetDisplayMode(Width As _<br>
        Integer,Height As Integer, Color As _<br>
        Integer) As Long<br>
        Const DM_PELSWIDTH = &amp;H80000<br>
        Const DM_PELSHEIGHT = &amp;H100000<br>
        Const DM_BITSPERPEL = &amp;H40000<br>
        Dim NewDevMode As DEVMODE<br>
        Dim pDevmode As Long<br>
        With NewDevMode<br>
        .dmSize = 122<br>
        If Color = -1 Then<br>
        .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT<br>
        Else<br>
        .dmFields = DM_PELSWIDTH Or _<br>
        DM_PELSHEIGHT Or DM_BITSPERPEL<br>
        End If<br>
        .dmPelsWidth = Width<br>
        .dmPelsHeight = Height<br>
        <br>
        If Color &lt;&gt; -1 Then<br>
        .dmBitsPerPel = Color<br>
        End If<br>
        End With<br>
        pDevmode = lstrcpy(NewDevMode, NewDevMode)<br>
        SetDisplayMode = ChangeDisplaySettings(pDevmode, 0)<br>
        End Function<br>
        例子调用:改变为 640x480x24位: <br>
        i = SetDisplayMode(640, 480, 24) <br>
        如果成功返回 0 。参见:X059 改变屏幕到16位彩色的演示<br>
        <a href="#home">返回</a></p>
        <p><a name="tips7"></a><strong>桌面的大小</strong><br>
        Type RECT<br>
        Left As Long<br>
        Top As Long<br>
        Right As Long<br>
        Bottom As Long<br>
        End Type<br>
        <br>
        Public Const SPI_GETWORKAREA = 48<br>
        <br>
        Declare Function SystemParametersInfo Lib
        &quot;user32&quot; Alias
        &quot;SystemParametersInfoA&quot; (ByVal uAction As Long,
        ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As
        Long) As Long<br>
        <br>
        Private Sub Command1_Click()<br>
        <br>
        Dim lRet As Long<br>
        Dim apiRECT As RECT<br>
        <br>
        lRet = SystemParametersInfo(SPI_GETWORKAREA, vbNull,
        apiRECT, 0)<br>
        <br>
        If lRet Then<br>
        Print &quot;Left: &quot; &amp; apiRECT.Left<br>
        Print &quot;Top: &quot; &amp; apiRECT.Top<br>
        Print &quot;Width: &quot; &amp; apiRECT.Right -
        apiRECT.Left<br>
        Print &quot;Height: &quot; &amp; apiRECT.Bottom -
        apiRECT.Top<br>
        Else<br>
        Print &quot;调用 SystemParametersInfo 失败&quot;<br>
        End If<br>
        <br>
        End Sub<br>
        <br>
        其他方法:<br>
        Sub Command1_Click ()<br>
        CR$ = Chr$(13) + Chr$(10)<br>
        TWidth% = screen.Width \ screen.TwipsPerPixelX<br>
        THeight% = screen.Height \ screen.TwipsPerPixelY<br>
        <br>
        MsgBox &quot;屏幕大小为&quot; + CR$ + CR$ +
        Str$(TWidth%) + &quot; x&quot; + Str$(THeight%), 64,
        &quot;Info&quot;<br>
        End Sub<br>
        <a href="#home">返回</a></p>
        <p align="left"><a name="tips8"></a><strong>禁止使用
        Alt+F4 关闭窗口</strong><br>
        Private Declare Function DeleteMenu Lib
        &quot;user32&quot; (ByVal hMenu As Long, ByVal nPosition
        As Long, ByVal wFlags As Long) As Long<br>
        Private Declare Function GetMenuItemCount Lib
        &quot;user32&quot; (ByVal hMenu As Long) As Long<br>
        Private Const MF_BYPOSITION = &amp;H400&amp; <br>
        <br>
        Private Sub Form_Load()<br>
        Dim hwndMenu As Long<br>
        Dim c As Long<br>
        hwndMenu = GetSystemMenu(Me.hwnd, 0)<br>
        <br>
        c = GetMenuItemCount(hwndMenu)<br>
        <br>
        DeleteMenu hwndMenu, c - 1, MF_BYPOSITION<br>
        <br>
        c = GetMenuItemCount(hwndMenu)<br>
        DeleteMenu hwndMenu, c - 1, MF_BYPOSITION<br>
        <br>
        End Sub<br>
        <a href="#home">返回</a></p>
        </td>
    </tr>
</table>
</center></div>

<hr>
<div align="center"><center>

<table border="0" width="88%">
    <tr>
        <td width="80%"><p align="left"><a
        href="vbtips.htm#Return">[1]</a> <a href="vbtips1.htm">[2]</a>
        <a href="vbtips2.htm">[3]</a> <a href="vbtips3.htm">[4]</a>
        <a href="vbtips4.htm">[5]</a> [6] <a href="vbtips7.htm">[7]</a>
        <a href="#home">[8]</a> <a href="vbtips9.htm">[9]</a> <a
        href="vbtips10.htm">[10]</a></p>
        </td>
        <td><p align="right"><font size="2">第六页(共十页)</font></p>
        </td>
    </tr>
</table>
</center></div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -