盤符名源碼
A. 易語言檢測U盤插入並獲取盤符,求方法,有源碼更好!
下面是獲取U盤的插入或拔除事件的代碼,有dll命令和自定義類型常量。如果不是很明白,把郵箱寫上,我發給你。
.
.版本 2
.程序集 窗口程序集1
.程序集變數 a, 子程序指針
.子程序 __啟動窗口_創建完畢
a = SetWindowLong (_啟動窗口.取窗口句柄 (), -4, &MsgProc)
.子程序 MsgProc, 整數型
.參數 hwnd, 整數型
.參數 msg, 整數型
.參數 wp, 整數型
.參數 lp, 整數型
.局部變數 val, PDEV_BROADCAST_VOLUME
.局部變數 i, 整數型
.局部變數 mask, 整數型
.判斷開始 (msg = 537)
.判斷開始 (wp = #DBT_DEVICERARRIVAL) ' 插入設備
復制結構體 (val, lp, 14)
.如果真 (val.dbcv_devicetype = #DBT_DEVTYP_VOLUME)
mask = val.dbcv_unitmask
.變數循環首 (0, 25, 1, i)
.如果真 (位與 (mask, 1) = 1)
跳出循環 ()
.如果真結束
mask = 右移 (mask, 1)
.變數循環尾 ()
編輯框1.加入文本 (「USB磁碟被插入,盤符:」 + 字元 (65 + i) + #換行符)
檢測 (字元 (65 + i))
.如果真結束
.判斷 (wp = #DBT_DEVICEREMOVECOMPLETE) ' 刪除設備
復制結構體 (val, lp, 14)
.如果真 (val.dbcv_devicetype = #DBT_DEVTYP_VOLUME)
mask = val.dbcv_unitmask
.變數循環首 (0, 25, 1, i)
.如果真 (位與 (mask, 1) = 1)
跳出循環 ()
.如果真結束
mask = 右移 (mask, 1)
.變數循環尾 ()
編輯框1.加入文本 (「USB磁碟被拔除,盤符:」 + 字元 (65 + i) + #換行符)
.如果真結束
.默認
.判斷結束
.默認
.判斷結束
返回 (CallWindowProc (a, hwnd, msg, wp, lp))
.子程序 __啟動窗口_將被銷毀
a = SetWindowLong (_啟動窗口.取窗口句柄 (), -4, a)
.子程序 檢測
.參數 盤符, 文本型
.局部變數 fn, 文本型
fn = 尋找文件 (盤符 + 「:\*.*」, )
編輯框2.內容 = 「」
.判斷循環首 (fn ≠ 「」)
編輯框2.加入文本 (fn + #換行符)
fn = 尋找文件 (, )
.判斷循環尾 ()
≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈自定義類型≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
.數據類型 PDEV_BROADCAST_VOLUME
.成員 dbcv_size, 整數型, , , 14
.成員 dbcv_devicetype, 整數型
.成員 dbcv_reserved, 整數型
.成員 dbcv_unitmask, 整數型
.成員 dbcv_flags, 短整數型
.數據類型 _DEV_BROADCAST_HDR
.成員 dbch_size, 整數型
.成員 dbch_devicetype, 整數型
.成員 dbch_reserved, 整數型
≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈常量≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
.常量 WM_DEVICECHANGE, "537", , 驅動盤符被改變
.常量 DBT_DEVICEREMOVECOMPLETE, "32772"
.常量 DBT_DEVICERARRIVAL, "32768"
.常量 DBT_DEVTYP_OEM, "0"
.常量 DBT_DEVTYP_DEVNODE, "1"
.常量 DBT_DEVTYP_VOLUME, "2"
.常量 DBT_DEVTYP_PORT, "3"
.常量 DBT_DEVTYP_N, "4"
B. 如何利用腳本自動修改的U盤盤符
可以利用Autorun.inf文件來自動修改盤符。。
新建記事本文件。。裡面寫上如下內容。。
[AUTORUN]Icon=x.ico
然後保存。。並將文件名改為Autorun.inf。。擴展名都要改了。。
然後把你想要當作盤符的圖片,轉換成ico格式。。並命名為x.ico
最後。。將以上兩個文件放到U盤根目錄下。。重新插入U盤即可生效。。
C. win7硬碟有四個分區,他們的盤符名稱是什麼我只知道C盤盤符名稱是(系統)請問那三個盤符名是什
默認是沒有盤符名稱,統一為「本地磁碟」
如果通過快速分區類軟體分區的,一般在GHOST安裝系統時有這個分區步驟
那麼一般就是「系統」,「數據」,「游戲」,「娛樂」,「影視」,「文檔」,「工作」,這幾種。
D. bat 提取 盤符及名稱
CMD默認代碼頁是美國的話,樓上就是對的了。
@echo off
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
fsutil fsinfo drivetype %%i: | find "固定">nul && (
for /f "tokens=1-4" %%a in ('vol %%i:^|find "驅動器"') do (echo %%d^(%%b:^))
)
fsutil fsinfo drivetype %%i: | find "移動">nul && (
for /f "tokens=1-4" %%a in ('vol %%i:^|find "驅動器"') do (echo %%d^(%%b:^))
)
)
pause>nul
E. VB獲取盤符的名字
不知道是不是你想要的...
用FSO(文件系統對象模型)實現
FSO對象模型包含在SCRIPTING類型庫(SCRRUN.DLL)中。調用方法如下:
在項目菜單中選擇引用,在COM中選擇Microsoft Scripting Runtime
在代碼最頂端添加Imports Scripting,在按鈕的單擊事件中加入以下代碼:
Imports Scripting
Private Sub btnFso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFso.Click
Dim Fso As New FileSystemObject
Dim drvDisk As Drive, strResult As String
drvDisk = Fso.GetDrive("C:\")
strResult = "Drive " & "C:\" & vbCrLf
strResult += "磁碟卷標:" & drvDisk.VolumeName & vbCrLf
strResult += "磁碟序列號:" & drvDisk.SerialNumber & vbCrLf
strResult += "磁碟類型:" & drvDisk.DriveType & vbCrLf
strResult += "文件系統:" & drvDisk.FileSystem & vbCrLf
strResult += "磁碟容量(G): " & FormatNumber(((drvDisk.TotalSize / 1024) / 1024) / 1024, 2, , , Microsoft.VisualBasic.TriState.True) & vbCrLf
strResult += "可用空間(G): " & FormatNumber(((drvDisk.FreeSpace / 1024) / 1024) / 1024, 2, , , Microsoft.VisualBasic.TriState.True) & vbCrLf
strResult += "已用空間(G):" & FormatNumber(((((drvDisk.TotalSize - drvDisk.FreeSpace) / 1024) / 1024) / 1024), 2, , , Microsoft.VisualBasic.TriState.True)
MsgBox(strResult)
End Sub
F. vb如何得到硬碟各盤符名稱
Const DRIVE_REMOVABLE = 2
Const DRIVE_FIXED = 3
Const DRIVE_REMOTE = 4
Const DRIVE_CDROM = 5
Const DRIVE_RAMDISK = 6
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 Sub Command1_Click()
Dim strMsg As String, i%, lng As Long, strDriver As String * 254, strD$
lng = GetLogicalDriveStrings(255, strDriver$) '得到所有盤符的字元串,並返回盤的數目lng
ReDim strDriveName(1 To lng) As String
Dim count As Integer
For i = 0 To lng / 4 - 1
strD$ = Mid$(strDriver$, i * 4 + 1, 3)
Select Case Val(GetDriveType(strD$))
Case DRIVE_REMOVABLE
strMsg = "可移動盤"
Case DRIVE_FIXED
strMsg = "硬碟"
count = count + 1
strDriveName(count) = strD$
Case DRIVE_REMOTE
strMsg = "映射盤"
Case DRIVE_CDROM
strMsg = "光碟機"
Case DRIVE_RAMDISK
strMsg = "內存虛擬盤"
Case Else
strMsg = "未知"
End Select
Debug.Print strD$; " 是 "; strMsg
Next i
ReDim Preserve strDriveName(1 To count)
End Sub
硬碟的
strDriveName(1) "c:\"
strDriveName(2) "d:\"
...
G. 怎麼修改系統盤 盤符(名字)
修改系統盤盤符的具體步驟如下:
我們需要准備的材料分別是:電腦。
1、首先我們打開控制面板中的「管理工具」。
H. 批處理提取盤符名
@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul &&vol !drive!|find "驅動器" >>結果.txt
)
pause