24.txt

来自「介绍VB里的各种控件的使用方法,窗口控制,图像编程以及OCX等内容,还提供了一个」· 文本 代码 · 共 189 行 · 第 1/2 页

TXT
189
字号
        Public Const SEE_MASK_NOCLOSEPROCESS = &H40 
        Public Const SEE_MASK_FLAG_NO_UI = &H400 
        Declare Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteE
x" _         (SEI As SHELLEXECUTEINFO) As Long 
        Public Function ShowProperties(FileName As String, OwnerhWnd As Long) 
As Long          Dim SEI As SHELLEXECUTEINFO          Dim r As Long 
         With SEI          .cbSize = Len(SEI) 
         .fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK
_FLAG_NO_UI          .hwnd = OwnerhWnd          .lpVerb = "properties" 
         .lpFile = FileName          .lpParameters = vbNullChar 
         .lpDirectory = vbNullChar          .nShow = 0          .hInstApp = 0 
         .lpIDList = 0          End With          r = ShellExecuteEX(SEI) 
         ShowProperties = SEI.hInstApp         End Function         (程序2) 
        设置墙纸         墙纸是显示在桌面上的图片或图像,是Win95的一个重要部分。你可以通过改变列
表中的文件来选择多种多姿多采的墙纸。我们可以利用SystemParametersInfo函数来揭开它的奥妙,并亲手为她营造异样的风采。 
        在程序窗体中增加List1控件,并加入如程序3所示代码:         Option Explicit 
        Private Declare Function SystemParametersInfo Lib "user32" Alias "Syst
emParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam A
s Any, ByVal fuWinIni As Long) As Long         Const SPI_SETDESKWALLPAPER = 20 
        Const SPIF_UPDATEINIFILE = &H1 'update Win.ini Constant 
        Const SPIF_SENDWININICHANGE = &H2 'update Win.ini and tell everyone 
        Private Sub Form_Load()          Dim Temp As String 
         Temp = InputBox("Please Input A Directory", "Changer", "C:\WINDOWS\") 
         If Temp = "" Then End 'Cancel clicked 
         If Right$(Temp, 1) <> "\" Then Temp = Temp + "\" 
         List1.Tag = Temp 
         Temp = Temp + "*.bmp" 'Set the file filter (path + *.BMP) 
         Temp = Dir$(Temp)          Do While Temp$ <> ""          Temp = Dir$ 
         If Temp = "" Then Exit Do          List1.AddItem Temp          Loop 
         List1.AddItem "(None)"          Show          List1.SetFocus 
         List1.ListIndex = 0         End Sub 
        Private Sub list1_dblclick()          Dim Temp As String 
         Dim BMPFile As String          Temp = Tag 
         If List1.Text = "(None)" Then          BMPFile = "(none)" 
         Else          BMPFile = Temp + (List1)          End If 
         SystemParametersInfo SPI_SETDESKWALLPAPER, 0, ByVal BMPFile, SPIF_UPD
ATEINIFILE         End Sub          
        Private Sub List1_KeyPress(KeyAscii As Integer) 
         If KeyAscii = 13 Then list1_dblclick         End Sub         (程序3) 
        建立快捷方式         Win95中快捷方式提供了对常用程序和文档的访问捷径,你可以为桌面或文件夹中
的任何程序、文档或打印机添加快捷方式。VB5中利用fCreateShellLink函数可以为常用程序和文档快速建立快捷方式。 
        fCreateShellLink的声明为: 
        Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal lp
strFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As St
ring, ByVal lpstrLinkArgs As String) As Long 
        LpstrFolderName设置快捷方式的文件夹名称,lpstrLinkName设置快捷方式的标
题名称,lpstrLinkPath设置快捷方式所指向的应用程序的目录及文件名,格式如下: 
        fCreateShellLink(Destinationpath, Shortcutname, SourcepathAppName, "") 
        程序4所示的代码在“桌面”上为d:\path\appname.exe应用程序建立名为"Shortcut Title"的快捷方式。 
        Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal lp
strFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As St
ring, ByVal lpstrLinkArgs As String) As Long         Private Sub Form_Click() 
        lResult = fCreateShellLink("....\WINDOWS\DESKTOP", "Shortcut Title", "
d:\path\appname.exe", "")         End Sub         (程序4) 
        如果想在“桌面”上建立快捷方式,则建立的目标目录应该为"....\WINDOWS\DE
SKTOP";如果想在“开始”菜单中建立快捷方式,则建立的目标目录应该为"....\WINDOWS\S
tart Menu"; 如果想在“程序”菜单中建立快捷方式,则建立的目标目录应该为相应的"...
.C:\WINDOWS\Start Menu\Programs"中,以此类推。         确定内存 
        我们经常要访问Windows管理的内存。对应用程序性能影响最大的因素是可用的内
存容量。访问系统内存在处理类似于位图文件之类的大文件时非常有用,因为程序通过交换文
件(Swap)的方法,可以获得比实际可用内存更大的内存。知道内存如何分配后,就可以读入内
存值并操作大型数字文件。可以用丰富的Win32 API函数确定Windows 的全局内存并操作数据文件,这些对于确定程序能否正常工作非常有用。 
        有关函数声明:         dwLength 数据结构的长度         dwMemoryLoad 内存使用百分比 
        dwTotalPhys 实际内存总字节数         dwAvailPhys 可用的实际内存字节数 
        dwTotalPageFile 分页文件总字节数         dwAvailPageFile 分页文件可用字节数 
        dwTotalVirtual 虚拟内存的总字节数         dwAvailVirtual 可用的虚拟内存字节数 
        加入代码如下的模块:         Type MEMORYSTATUS          dwLength As Long 
         dwMemoryLoad As Long          dwTotalPhys As Long 
         dwAvailPhys As Long          dwTotalPageFile As Long 
         dwAvailPageFile As Long          dwTotalVirtual As Long 
         dwAvailVirtual As Long         End Type 
        Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATU
S)         窗体中加入代码如下:         Private Sub Form_Click() 
        Dim m As MEMORYSTATUS         m.dwLength = Len(m) 
        GlobalMemoryStatus m         Print "数据结构的长度", m.dwLength 
        Print "内存使用百分比", m.dwMemoryLoad 
        Print "实际内存总字节数 ", m.dwTotalPhys 
        Print "可用的实际内存字节数", m.dwAvailPhys 
        Print "分页文件总字节数", m.dwTotalPageFile 
        Print "分页文件可用字节数", m.dwAvailPageFile 
        Print "虚拟内存的总字节数", m.dwTotalVirtual 
        Print "可用的虚拟内存字节数", m.dwAvailVirtual         End Sub         读写注册表 
        Win95及NT的注册表数据库(Registry)是系统中非常重要的组成部分,它设置了W
in95及NT的参数,包括用户信息、系统硬件配置和应用程序等信息。注册表系统代替了旧版W
indows中的多个INI文件(警告:如果你对注册表不熟悉,不要随意修改它。如果注册表项目出错,会使机器崩溃,甚至破坏操作系统本身)。 
        Win32 API中Reg函数处理对注册表数据库一般的读写过程如下: 
        1、使用RegOpenKey或RegCreateKey打开或创建一个键; 
        2、如果上一步成功,则使用RegQueryValue(或RegQueryValueEx)读取子键的值
,使用RegSetValue(或RegvSetValueEx)设置子键值,使用RegEnumKey获得所有子键,使用RegDeleteKey删除一个键; 
        3、完成操作后使用RegCloseKey关闭键。 
        下面的程序5演示了如何生成键、存放值并取得注册表数据。在HKEY_LOCAL_MACH
INE键下面生成三个子键Test\Mastering vb5、Windows Width、Windows Height,用于存放上次执行时的窗体尺寸。 
        Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCre
ateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phk                

⌨️ 快捷键说明

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