如何用 DELPHI 编程代替 do S 下的 SUBST 命令?(100分)

  • 主题发起人 主题发起人 LianZanQiang
  • 开始时间 开始时间
L

LianZanQiang

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; 在下的电脑上有 A、C、D 三个磁盘,现需要用 DELPHI 编程代替 DOS <br>的 SUBST 命令。曾用过 API 函数 DefineDosDevice ,但只能对 B,E,<br>F,G,H ...等盘符重定义,对已有的盘符 A,C,D 却不起作用,不知如何<br>是好?<br>&nbsp; &nbsp;若有高人肯拔刀相助,在下愿献上一半的家产!<br>
 
在nt下用subst也不能重新已经存在的a c d 等<br>win95下可以<br><br>如果subst可以用的话那就<br>WinExec("subst A: 目录",SW_HIDE)<br>好了
 
或者用CreateProcess运行subst<br>用WaitForSingleObject等subst运行完毕<br>用GetExitCodeProcess得到subst的进程退出值<br>为0表示成功,不为0就是失败
 
建立虚拟驱动器(以下代码摘自何方已忘,我还来不及检验,仅供参考)<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; &nbsp; NRW: TNetResource;<br>begin<br>&nbsp; &nbsp; with NRW do<br>&nbsp; &nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dwType := RESOURCETYPE_ANY;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lpLocalName := 'X:'; //驱动器号<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lpRemoteName := '//MyServer/MyDirectory';<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lpProvider := '';<br>&nbsp; &nbsp; &nbsp; &nbsp; end;<br>&nbsp; &nbsp; WNetAddConnection2(NRW, 'MyPassword', 'MyUserName', CONNECT_UPDATE_PROFILE);<br>end; <br>
 
WNetAddConnetion是用来映身网络驱动器的吧?和Subst的功能不一样.可以用<br><br>shellexecute(0,'open','subst','x: c:/somedir',nil,SW_SHOWNORMAL); <br>
 
subst是调用dos中断的,可以试试看在32位环境下调用底层中断<br>的办法实现,估计有一定难度。<br><br>good luck
 
时间太久,强制结束。 &nbsp; wjiachun<br>
 
后退
顶部