DefineDosDevice虚拟的磁盘如何卸载?

fmaliang 2007-01-13 09:07:13
DefineDosDevice(0, "g:", "e:")虚拟了一个G盘,要如何卸载它???
...全文
1824 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shifagengen 2011-07-26
  • 打赏
  • 举报
回复
试试:DefineDosDevice(DDD_REMOVE_DEFINITION,"G:",NULL);
MORHH 2010-09-06
  • 打赏
  • 举报
回复
不如就用SUBST
swift19221 2010-08-24
  • 打赏
  • 举报
回复
看MSDN,看不懂再问,参数不要用数字,尽量用宏
谁看得懂数字呢,又不是机器。。。
lobtao 2008-06-13
  • 打赏
  • 举报
回复
顶,没有找到满意答案.
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
这个简单啊,网上搜一下就得到答案了.
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
Tiger_Zhao 2007-08-01
  • 打赏
  • 举报
回复
同意 myjian(嗷嗷叫的老马--无业,正在到处游的人.......) ,这与弹出 Usb Disk 一样处理,正在使用就出警告。
嗷嗷叫的老马 2007-07-31
  • 打赏
  • 举报
回复
有文件在使用中,是删除不成功的
zctom23 2007-07-31
  • 打赏
  • 举报
回复
用这个去删删看DefineDosDevice(2, strDisk, vbNullString)

我用这个就可以了
清晨曦月 2007-01-18
  • 打赏
  • 举报
回复
哭ING,,DefineDosDevice是麻,么用过,孤陋寡闻了,

不过一般的东东都支持参数的,例如D-TOOLS,,,就可以用SHELL C:\XXX\D-TOOLS.EXE -XXXX来加载或卸载虚拟盘..
VirtualDesktop 2007-01-16
  • 打赏
  • 举报
回复
DDD_EXACT_MATCH_ON_REMOVE If this value is specified along with DDD_REMOVE_DEFINITION, the function will use an exact match to determine which mapping to remove. Use this value to insure that you do not delete something that you did not define.
VirtualDesktop 2007-01-16
  • 打赏
  • 举报
回复
看msdn:

DefineDosDevice

The DefineDosDevice function defines, redefines, or deletes MS-DOS device names.


BOOL DefineDosDevice(
DWORD dwFlags,
LPCTSTR lpDeviceName,
LPCTSTR lpTargetPath
);

Parameters
dwFlags
[in] Controllable aspects of the DefineDosDevice function. This parameter can be one or more of the following values. Value Meaning
DDD_EXACT_MATCH_ON_REMOVE If this value is specified along with DDD_REMOVE_DEFINITION, the function will use an exact match to determine which mapping to remove. Use this value to insure that you do not delete something that you did not define.
DDD_NO_BROADCAST_SYSTEM Do not broadcast the WM_SETTINGCHANGE message. By default, this message is broadcast to notify the shell and applications of the change.
DDD_RAW_TARGET_PATH Uses the lpTargetPath string as is. Otherwise, it is converted from an MS-DOS path to a path.
DDD_REMOVE_DEFINITION Removes the specified definition for the specified device. To determine which definition to remove, the function walks the list of mappings for the device, looking for a match of lpTargetPath against a prefix of each mapping associated with this device. The first mapping that matches is the one removed, and then the function returns.
If lpTargetPath is NULL or a pointer to a NULL string, the function will remove the first mapping associated with the device and pop the most recent one pushed. If there is nothing left to pop, the device name will be removed.

If this value is not specified, the string pointed to by the lpTargetPath parameter will become the new mapping for this device.


lpDeviceName
[in] Pointer to an MS-DOS device name string specifying the device the function is defining, redefining, or deleting. The device name string must not have a trailing colon, unless a drive letter (C or D, for example) is being defined, redefined, or deleted. In no case is a trailing backslash allowed.
lpTargetPath
[in] Pointer to a path string that will implement this device. The string is an MS-DOS path string unless the DDD_RAW_TARGET_PATH flag is specified, in which case this string is a path string.
Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks
MS-DOS device names are stored as junctions in the object name space. The code that converts an MS-DOS path into a corresponding path uses these junctions to map MS-DOS devices and drive letters. The DefineDosDevice function enables an application to modify the junctions used to implement the MS-DOS device name space.

To retrieve the current mapping for a particular MS-DOS device name or to obtain a list of all MS-DOS devices known to the system, use the QueryDosDevice function.

To define a drive letter assignment that is persistent across boots and not a network share, use the SetVolumeMountPoint function. If the volume to be mounted already has a drive letter assigned to it, use the DeleteVolumeMountPoint function to remove the assignment.

Drive letters and device names defined at system boot time are protected from redefinition and deletion unless the user is an administrator.


Windows Server 2003 and Windows XP: The function creates a device name for a caller that is not running in the LocalSystem context in its own Local MS-DOS device namespace. If the caller is running in the LocalSystem context, the function creates the device name in the Global MS-DOS device namespace. For more information, see Defining an MS DOS Device Name.

Example Code
For an example, see Editing Drive Letter Assignments.

fmaliang 2007-01-14
  • 打赏
  • 举报
回复
ret = DefineDosDevice(0, "F:","\\ml000\game")'建立虚拟盘
ret = DefineDosDevice(2, "F:", vbNull)'删除虚拟盘
用这两条语句有时候能成功,有时候又不行,不知道怎么回事。
dwFlags参数我用过0、1、2、3、4、8,3也可以删除虚拟盘,不知道怎么回事。
gguueesstt 2007-01-13
  • 打赏
  • 举报
回复
API我还未找到,不过你可 使用 SUBST 命令
zsj1101 2007-01-13
  • 打赏
  • 举报
回复
Public Declare Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long

Sub tt()
Call DefineDosDevice(2, "Z:", "C:\FlashGet")
End Sub


1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧