映射网络磁盘

来源:互联网 发布:怎样使用淘宝直通车 编辑:程序博客网 时间:2024/04/30 12:40

建立网络连接,类似net use命令建立的网络磁盘。

  MapNetworkDrive proc host:DWORD    LOCAL @ret: DWORD    LOCAL @user[64]: BYTE    LOCAL @pass[64]: BYTE    LOCAL @drive[16]: BYTE    LOCAL @folder[64]: BYTE    LOCAL @nr: NETRESOURCE             mov    @ret, 0h               ; load the connect parameters.      INVOKE    LoadString, NULL, IDS_USER, addr @user, 64      INVOKE    LoadString, NULL, IDS_PASSWORD, addr @pass, 64      INVOKE    LoadString, NULL, IDS_LOCAL_DRIVE, addr @drive, 16      INVOKE    LoadString, NULL, IDS_SHARED_FOLDER, addr @folder, 64        ; if the drive has been existed.      INVOKE    GetDriveType, addr @drive         ; drive not exist.         cmp    eax, DRIVE_UNKNOWN          jz    @F         cmp    eax, DRIVE_NO_ROOT_DIR          jz    @F         cmp    eax, DRIVE_REMOTE         ; drive is a local fixed disk, can't continue.         jnz    Return_Exit         ; drive is a network disk, call API to delete it.      INVOKE    WNetCancelConnection, addr @drive, 1h         @@:               INVOKE    RtlZeroMemory, addr @nr, sizeof NETRESOURCE         mov    @nr.dwType, RESOURCETYPE_DISK         lea    eax, @drive         mov    @nr.lpLocalName, eax      INVOKE    wsprintf, addr szResStringBuffer, SADD("\\%s\%s"), host, addr @folder         lea    eax, szResStringBuffer         mov    @nr.lpRemoteName, eax         mov    @nr.lpProvider, NULL               ; create new shared connect.      INVOKE    WNetAddConnection2, addr @nr, addr @pass, addr @user, 0h         cmp    eax, NO_ERROR         jnz    Return_Exit                  mov    @ret, 1h         Return_Exit:      return    @ret  MapNetworkDrive endp


 

原创粉丝点击