设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1705|回复: 12
打印 上一主题 下一主题

[其它] [求助]用什么代码可以打开E盘?

[复制链接]
跳转到指定楼层
1#
发表于 2007-3-18 04:36:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
假设光驱是E盘,用什么代码可以打开E盘?看到E盘的内容?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
13#
 楼主| 发表于 2007-3-19 04:51:00 | 只看该作者
可以了!谢谢两位版主![em17][em17][em17]
12#
发表于 2007-3-19 04:45:00 | 只看该作者
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
    (ByVal nDrive As String) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _
    (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
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 DRIVE_CDROM = 5


Public Function GetCDRom() As String

Dim rtn As String
Dim AllDrives As String
Dim JustOneDrive As String

AllDrives = Space$(64) '设置缓冲

rtn = GetLogicalDriveStrings(Len(AllDrives), AllDrives) '调用函数得到包含所有驱动器的字符串

AllDrives = Left(AllDrives, rtn)

Do
  rtn = InStr(AllDrives, Chr(0))
  If rtn Then                                        '若有的话
     JustOneDrive = Left(AllDrives, rtn)
     AllDrives = Mid(AllDrives, rtn + 1, Len(AllDrives))
     rtn = GetDriveType(JustOneDrive)                '检查驱动器类型
     If rtn = DRIVE_CDROM Then                        '是CD-ROM
        GetCDRom = Left(UCase(JustOneDrive), 2)
        Exit Do
     End If
  End If
Loop Until AllDrives = "" Or rtn = DRIVE_CDROM


If GetCDRom = "" Then
   MsgBox "没有光驱"
   Else
   Call ShellExecute(hwnd, "Open", "", "", GetCDRom, 1)
End If

End Function





[此贴子已经被作者于2007-3-18 20:48:50编辑过]

11#
 楼主| 发表于 2007-3-19 04:15:00 | 只看该作者
fan0217大哥是这样打开吗?但为什么不行呢?

Private Sub 浏览_Click()
    Call GetCDROMDrive
End Sub


10#
发表于 2007-3-19 03:13:00 | 只看该作者
获取光盘盘符:

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
      
'获取光驱盘符
Public Function GetCDROMDrive() As String
    Dim r     As Long
    Dim allDrives     As String
    Dim currDrive     As String
    Dim drvType     As Integer

    allDrives = GetDriveString()
        Do Until allDrives = Chr$(0)
            currDrive = StripNulls(allDrives)
            drvType = GetDriveType(currDrive)
            If drvType = DRIVE_CDROM Then
                GetCDROMDrive = currDrive
                Exit Do
            End If
        Loop
End Function
   
   
Private Function GetDriveString() As String
    Dim sBuffer As String
        sBuffer = Space$(26 * 4)
        If GetLogicalDriveStrings(Len(sBuffer), sBuffer) Then
            GetDriveString = Trim$(sBuffer)
        End If
End Function
   
   
Private Function StripNulls(startstr As String) As String
    Dim pos     As Long
    pos = InStr(startstr$, Chr$(0))
    If pos Then
          StripNulls = Mid$(startstr, 1, pos - 1)
          startstr = Mid$(startstr, pos + 1, Len(startstr))
    End If
End Function


[此贴子已经被作者于2007-3-18 19:14:17编辑过]

9#
 楼主| 发表于 2007-3-19 02:02:00 | 只看该作者
一点通导可以帮帮我吗?谢谢了!
8#
 楼主| 发表于 2007-3-18 18:36:00 | 只看该作者
我是在VB写这个代码的,是这样吗?但不行[em06][em06][em06]

   Command0.HyperlinkAddress = App.Path & ":\"
7#
发表于 2007-3-18 08:35:00 | 只看该作者
建一个列表框(Combo1),在值列表中写入全部的盘符(C;D;E;F;G;H),在按钮(Command0)的单击事件中写入如下代码

Me.Command0.HyperlinkAddress = Me.Combo1 & ":\"


在列表框中选中盘符,再按按钮就可打开对应的盘
6#
 楼主| 发表于 2007-3-18 08:21:00 | 只看该作者
确切应该这样说吧,用什么代码可以打开我的电脑,并且到了文件的当前目录。
5#
 楼主| 发表于 2007-3-18 07:27:00 | 只看该作者
大哥,你可能理解错我的意思了,不是打开对话框选择文件,我是要做成软件安装时浏览光盘内容的按钮。是要打开当前光驱的内容。光驱每台机都可以是不同的名(如:E、H、F.....都有可能).
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-25 18:17 , Processed in 0.147495 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表