用API完成類似"net use m: \\test-server\C$ /user:.....
的功能,因為一個蹦出來的Dos窗口實在影響外觀

解决方案 »

  1.   

    用shellexecute 把最后的参数设置为SW_HIDE就不会崩出来DOS窗口"net use ....."
      

  2.   

    有个 dll 中的函数忘了好像含有 net 自己找在vb 中很方便
    vc 也不会很麻烦
      

  3.   

    如何在应用程序中映射网络驱动器
    大连开发区捷通电脑技术有限公司
    王淼
    ---- 我们知道在WINDOWS的平台上可以实现网络驱动器的映射,但在应用程序中如何映
    射呢?以下的这个小程序就是演示如何在用户的应用程序中映射网络驱动器。在这里主
    要用到了WINDOWS的两个API函数WNetAddConnection2(建立网络驱动器的映射)和
    WNetCancelConnection2(取消网络驱动器的映射)以及一个NETRESOURCE结构(用来设
    置网络资源)。
    ---- 为了节省篇幅,我在这里只列出本演示程序的主要部分OnMountButton (为建立
    网络驱动器的映射)和OnUnmountButton(为取消网络驱动器的映射)。其中在下面的
    出现m_NetpathEdit 和m_DriveEdit 为用VC++定义的CEdit控键。分别接收输入的网络
    路径和要建立的本地的驱动器盘符。它们都放置在一个对话框中,如下图所示(略)
    ---- 建立网络驱动器的映射。
    void CMountDlg::OnMountButton()
    // TODO: Add your control notification
    handler code here
    char netpath[MAX_PATH]; //输入的网络路径
    m_NetpathEdit.GetWindowText(netpath, sizeof(netpath));
    char drv[MAX_PATH]; //本地的驱动器盘符
    m_DriveEdit.GetWindowText(drv, sizeof(drv));
    NETRESOURCE netres;
    netres.dwScope=RESOURCE_GLOBALNET;
    netres.dwType=RESOURCETYPE_ANY;
    netres.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
    netres.dwUsage=RESOURCEUSAGE_CONNECTABLE;
    netres.lpLocalName=drv;
    netres.lpRemoteName=netpath;
    netres.lpComment=NULL;
    netres.lpProvider=NULL;
    DWORD rslt=WNetAddConnection2(&netres, NULL, NULL, 0);
    CString str;
    str.Format("WNetAddConnection2()
    return code=%d", rslt);
    MessageBox(str);
    取消网络驱动器的映射
    void CMountDlg::OnUnmountButton()
    // TODO: Add your control notification handler
    code here
    char drv[MAX_PATH]; //本地的驱动器盘符
    m_DriveEdit.GetWindowText(drv, sizeof(drv));
    DWORD rslt=WNetCancelConnection2(drv, 0, FALSE);
    CString str;
    str.Format("WNetCancelConnection2() return code=%d",
    rslt);
    MessageBox(str);
    //显示信息成功与否 return code =0 成功 否则 建立失败
    ---- 本程序在VC++6.0及windows95/98/nt下编译通过。注意在程序的编译连接中加入
    mpr.lib,我们用两个API函数在这个库中。