|
如何使程序不出现在任务列表中
在Windows下只要按Ctrl+Alt+Del键就可以在弹出的任务列表中显示所有正在运行的程序,如何使自己
的程序不在任务列表中出现呢?很简单,只要将App对象的TaskVisible属性设置为False就可以了,象
下面的语句:
App.TaskVisible = False
就可以使程序不在TaskList中出现了。
返回
如何导出收藏夹到文件或者导入文件到收藏夹
在VB中选择菜单的Project | References 选项,在References对话框中选择Microsoft Internet
Controls项,然后在程序中加入以下语句:
Dim dc As New SHDocVw.ShellUIHelper
dc.ImportExportFavorites False, "c:\a.html"
Set dc = Nothing
就可以将收藏夹导出到 c:\a.htm 中了,如果要从文件导入到收藏夹,只要将上面的False改为True,将"c:\a.html"改为要导入的文件名就可以了。
返回
kb_event函数的使用
下面的函数可以利用kb_event实行一些系统操作
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_APPS = &H5D
Private Const VK_PLAY = &HFA
Private Sub DoAction(Index As Integer)
Dim VK_ACTION As Long
Select Case Index
Case 0: '打开资源管理器
VK_ACTION = &H45
Case 1: '查找文件
VK_ACTION = &H46
Case 2: '最小化所有窗口
VK_ACTION = &H4D
Case 3: '运行程序
VK_ACTION = &H52
Case 4: '弹出Win菜单
VK_ACTION = &H5B
Case 5: '将计算机转如睡眠状态
VK_ACTION = &H5E
Case 6: '执行Windows帮助
VK_ACTION = &H70
End Select
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(VK_ACTION, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
返回
打开一个超连接
在VB中使用默认的浏览器、FTP工具、电子邮件软件打开一个超连接十分简单。例如下面的语句就可以利用默认浏览器打开一个站点:
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String,
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory
As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Sub Command1_Click()
Call ShellExecute(Me.hwnd, "open", "http://member.netease.com/~blackcat",
vbNullString, vbNullString, SW_SHOWNORMAL)
End Sub
返回
获得IE的版本号
下面的程序可以获得IE的版本号:
Private Type DllVersionInfo
cbSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformID As Long
End Type
Private Declare Function DllGetVersion _
Lib "Shlwapi.dll" _
(dwVersion As DllVersionInfo) As Long
Private Function GetIEVersionString() As String
Dim DVI As DllVersionInfo
DVI.cbSize = Len(DVI)
Call DllGetVersion(DVI)
GetIEVersionString = "Internet Explorer " & _
DVI.dwMajorVersion & "." & _
DVI.dwMinorVersion & "." & _
DVI.dwBuildNumber
End Function
返回
调用“添加打印机”对话框
下面的语句可以显示添加打印机对话框:
Shell "rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter"
返回
打印测试页
在Windows中安装新打印机之后系统都会提示是否打印测试页,下面的语句可以打印测试页:
Shell "rundll32 msprint2.dll,RUNDLL_PrintTestPage"
返回
拷贝磁盘
在Windows中可以实现软盘之间的相互拷贝,下面的语句可以调用磁盘拷贝对话框:
Shell "rundll32 diskcopy,DiskCopyRunDll", vbNormalFocus
返回
显示打开方式对话框建立文件的关联
在Windows Explore中,如果双击一个没有与任何应用程序相关联的文件,系统就会弹出“打开方式”对话框
提示选择相应的程序打开文件并自动将该文件的文件类型同应用程序相关联,下面的程序显示“打开方式”对
话框:
Shell "rundll32 shell32,OpenAs_RunDLL .log"
运行上面的语句后,“打开方式”对话框就会弹出让你选择与.log文件向关联的程序,如果要关联其它类型的
文件,只要将.log改变为该中类型文件的后缀就可以了。
返回
Get the color of any forms titlebar.
Just call the GetSysColor Function and it will pass back the color of
the Active Forms Titlebar.
Const COLOR_ACTIVECAPTION = 2
Private Declare Function GetSysColor Lib "user32" _
(ByVal nIndex As Long) As Long
Dim llColor As Long
llColor = GetSysColor(COLOR_ACTIVECAPTION) 返回
如何使窗口能够接受文件拖放 将窗口的OLEDropMode设置为1,然后添加如下代码:
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
For i = 1 To Data.Files.Count
Debug.Print Data.Files(i)
Next i
End Sub
运行程序,拖文件到Form1上放开,看看Immediate窗口。可以看到文件名出现在Debug窗口中。
返回
如何使ListView能够接受文件拖放并拖放文件到浏览窗口
添加一个ListView控件到窗口中,将控件的OLEDragMode和OLEDropMode都设置为1。将ListView的View属性设置为3。然后添加
下面的代码到Form中:
Option Explicit
Dim iX As ListItem
Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim sFile As String, X1 As Long
Dim nItem As ListItem
Dim iFile As Long
Effect = 1 '将操作类型定义为拷贝
'确定用户拖放的数据是文件类型
If Data.GetFormat(vbCFFiles) Then
' 访问所有的文件
For iFile = 1 To Data.Files.Count
'添加文件名到ListView1
Set nItem = ListView1.ListItems.Add(, , Data.Files(iFile))
Next iFile
End If
End Sub
Private Sub ListView1_OLEStartDrag(Data As MSComctlLib.DataObject, AllowedEffects As Long)
Dim X1 As Long
'访问ListView中的所有项
For X1 = 1 To ListView1.ListItems.Count
'如果该项被选种则将该项的文本添加到Data中
If ListView1.ListItems.Item(X1).Selected = True Then
Data.Files.Add ListView1.ListItems.Item(X1).Text
End If
Next X1
Data.SetData , vbCFFiles
End Sub
运行程序,拖动浏览窗口中的一个文件到ListView上放开,可以看到文件名出现在ListView中,然后拖动ListView中的文件到浏览窗口中
放开,可以看到选择的文件被复制到浏览窗口中。
返回
解决Visual Basic非正常退出
你的机器上VB6和OFFICE并存吗?是否是先安装了VB6,再安装的OFFICE,如果是的话,请接着往下看:
笔者使用的Visual Basic是6.0(中文版),此前一直正常,也许是DIYer的共性吧,我的机器经常重复安装许许多多的程序(包括骂声不断
却不得不用的Pwin98),一日在使用VB打开工程时,汉字盘符全部变为乱码(汉字目录名显示正常),只要你拖动“打开”对话框右边的滚动条,
VB便会莫名奇妙地退出,而直接用“向上”按钮或直接选择目录却正常;另一症状是在表单中添加一Image或Picture控件,在“属性”中单击选
择文件的按钮,VB也会退出。开始判断是系统或VB程序文件受到破坏,重新安装Windows98和VB,故障依旧。于是Format c:/s,重装Windows98和
VB,故障排除了,但安装完OFFICE97后,故障又出现了(VB和OFFICE可同是微软的产品呀,总不至于有冲突吧!如果真有冲突,那可真是~:{ ...)。
突然想起电脑报(电子版)前几期有介绍解决Norton AntiVirus不能正确显示汉字的文章,会不会自己的故障也与汉字盘符及汉字目录名有关呢,
于是编写一文本文件,将扩展名改为.REG,添加如下内容:
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc\Associa
ted CharSet] "ANSI(00)"="yes"
"SYMBOL(02)"="no"
"OEM(FF)"="yes"
"GB2312(86)"="yes"
"BIG5(88)"="yes"
然后双击该文件,将内容添加到注册表中,重新启动Windows后,至此故障排除。如果你对注册表精通的话,只须在以上注册表路径中添加上字符
串键BIG5(88),取值为"yes"即可。
令笔者不解的是,为何安装OFFICE会出现以上故障,既然故障与汉字码有关,如果你的硬盘中没有汉字盘符、汉字目录名,甚至是汉字文件名,故
障也应该不复存在,有兴趣的朋友可以试一下。
返回
Back to top
|