Skip to main content
 
developerWorks
AIX and UNIX
Information Mgmt
Lotus
New to Lotus
Products
How to buy
Downloads
Live demos
Technical library
Training
Support
Forums & community
Events
Rational
Tivoli
WebSphere
Java™ technology
Linux
Open source
SOA and Web services
Web development
XML
My developerWorks
About dW
Submit content
Feedback



developerWorks  >  Lotus  >  Forums & community  >  Notes/Domino 6 and 7 Forum

Notes/Domino 6 and 7 Forum

developerWorks

  

Sign in to participate

RE: Open Network file using lotusscript
M IQ 29.Jan.10 02:28 AM a Web browser
Domino Designer 6.5.4 Windows 2000


hi
Use the following code to open the network




''''''''''''''''''''''''''''''
Call ConnectToNetwork(drivNam)
PathName=drivNam &"\" &Today &"file.xml"

If Dir(PathName , 2)<>"" Then
Kill PathName
End If



''''''''''''''''''''''''''''''''''''''''''''



Function ConnectToNetwork(drivNam As String) As Integer
Dim pathNam As String
Dim Filepath As String
Dim IsNotConnected As String
Dim BodyText As String
Dim Isok As Boolean
Isok=False
'Forbind til drevet
IsNotConnected= Win32ConnectDrive$(SYS_pathNam,drivNam)
If IsNotConnected="" Then
ConnectToNetwork=Isok
BodyText= "network not connected"

Exit Function
End If
Isok=True
ConnectToNetwork=Isok
End Function



Public Function Win32ConnectDrive$(Byval pathNam$,drivNam As String)
Win32ConnectDrive = ""
On Error Goto Errors
Const FUNC_NAME = "Win32ConnectDrive"
Dim netRes As WIN32_NETRESOURCE
Dim retCode&, ascLett&
' drivNam$
Dim fst&, sec&, mach$, shar$, pth$, tmp$
drivNam = ""

If Instr(pathNam, "\\") = 0 Then Goto TheEnd

'----- Try to find a drive that isn't being used
For ascLett = 90 To 68 Step -1
tmp = Chr$(ascLett) & ":"
If Not(IsDriveAvailable(tmp)) Then
drivNam = tmp
Exit For
End If
Next ascLett
If drivNam = "" Then Goto TheEnd

'----- Explode the pieces of the UNC name
pathNam = Mid$(pathNam, 3) 'remove first 2 slashes
fst = Instr(pathNam, "\") 'first slash "\"
mach = Left$(pathNam, fst-1) 'machine name
sec = Instr(fst+1, pathNam, "\") 'second slash "\"
If (sec <> 0) Then
shar = Mid$(pathNam, fst+1, Instr(fst+1, pathNam,"\")-(fst+1)) 'share name
Else
shar = Mid$(pathNam, fst+1)
End If

tmp = "\\" & mach & "\" & shar
pth = Mid$(pathNam, Len(tmp))
pathNam = tmp

'----- Fill out the relevant info in the resource structure
netRes.dwType = RESOURCETYPE_DISK
netRes.lpLocalName = drivNam
netRes.lpRemoteName = pathNam

'----- Make the necessary call to map the drive
retCode = WNetAddConnection2(netRes, SYS_PASSWORD, SYS_USERNAME, 0)
If (retCode <> NO_ERROR) Then
tmp = Win32GetErrorString(retCode)
Print FUNC_NAME & ": " & tmp & "(" & Trim$(Str(retCode)) & ")"
Exit Function
End If

'----- Return the new full path
Win32ConnectDrive = drivNam & "\" & pth

TheEnd:
Exit Function

Errors:
Win32ConnectDrive = ""
Print FUNC_NAME & ": " & Error$
Resume TheEnd

End Function


Function IsDriveAvailable(drivNam$) As Variant
On Error Goto Errors
IsDriveAvailable = False
If Dir$(drivNam, 8) <> "" Then
IsDriveAvailable = True
End If
TheEnd:
Exit Function
Errors:
Resume TheEnd
End Function


Function Win32GetErrorString$(retCode&)
Dim tmp$
Select Case(retCode)

Case NO_ERROR:
tmp = "No error"
Case ERROR_ACCESS_DENIED:
tmp = "Access to resource was denied"
Case ERROR_ALREADY_ASSIGNED:
tmp = "Resource already assigned"
Case ERROR_INVALID_PASSWORD:
tmp = "Specified password is invalid"
Case ERROR_BAD_DEV_TYPE:
tmp = "Type of local device and the type of network resourcedo not match"
Case ERROR_BAD_NET_NAME:tmp = "The resource name is invalid, or the named resourcecannot be located"
Case ERROR_BUSY:
tmp = "The router or provider is busy, possibly initializing"
Case ERROR_BAD_DEVICE:
tmp = "The local name is invalid"
Case ERROR_DEVICE_ALREADY_REMEMBERED:tmp = "An entry for the specified device is already in the user profile"
Case ERROR_NO_NET_OR_BAD_PATH:tmp = "A network component has not started, or the specified name could not be handled"
Case ERROR_BAD_PROVIDER:
tmp = "The provider value is invalid"
Case ERROR_CANNOT_OPEN_PROFILE: tmp = "Unable to open the user profile to process persistent connections"
Case ERROR_BAD_PROFILE:
tmp = "The user profile is in an incorrect format"
Case ERROR_EXTENDED_ERROR:
tmp = "A network specific error occurred"
Case ERROR_NO_NETWORK:
tmp = "No network is present"
Case ERROR_CANCELLED:
tmp = "The action was cancelled"
Case Else:
tmp = "Error"
End Select
Win32GetErrorString = tmp
End Function


Sub DisconnectDrive(drivNam As String)
Call Win32DisconnectDrive(drivNam)
End Sub



----------------------------------------------------------------------------
FILE: EKLIB.LSS - Function Library
----------------------------------------------------------------------------
This library provides functions for mapping NT network drives using
Win 32 API (only tested on NT 4.0, Service Pack 3). These functions
are particularly useful for background agents that run on an NT
server where the Domino server is set up as a NT service using the Local
System account. In this case, the NT machine is not logged into any
domain
and no drives are mapped. UNC names do not work in this situation
either.

To use these Functions, add the following line to the Declarations
section
of your script module:

%INCLUDE "FILEPATH\EKWIN32.LSS"

where FILEPATH refers to a fully qualified file path. The contents of
this
file will be inserted at compile time (when the script is saved), so if
you make changes to it, you're going to have to re-compile the modules
that use this file for the changes to be reflected. Alternatively,
this
file can be imported into a Script Library (in Notes R4.5 or higher),
in
which case changes will be felt as soon as they are made...
----------------------------------------------------------------------------
%ENDREM

'----- File that contains SYS_USERNAME and SYS_PASSWORD constants for
'login
'%INCLUDE "C:\LOGIN.LSS"
'%INCLUDE "C:\EKWIN32.LSS"
'Const SYS_pathNam="\\127.17.76.50\folderbane"

Const SYS_USERNAME = "username"
Const SYS_PASSWORD = "password"
'----- DLL containing the needed Win32 functions
Public Const WIN32_DLL = "mpr.dll"

'----- Flags
Public Const RESOURCETYPE_ANY = &H00000000
Public Const RESOURCETYPE_DISK = &H00000001
Public Const RESOURCETYPE_PRINT = &H00000002
Public Const CONNECT_UPDATE_PROFILE = &H00000001

'----- Network resource structure
Public Type WIN32_NETRESOURCE
dwScope As Long
dwType As Long '<< Any/disk/print
dwDisplayType As Long
dwUsage As Long
lpLocalName As String '<< Local drive name to use
lpRemoteName As String '<< Remote path
lpComment As String
lpProvider As String
End Type

'----- Win 32 API function(s)
Declare Function WNetCancelConnection& Lib WIN32_DLL Alias"WNetCancelConnectionA" (Byval lpName As String, Byval fForce As Long) 'Force the disconnect
Declare Function WNetAddConnection2& Lib WIN32_DLL Alias"WNetAddConnection2A" (lpNetResource As WIN32_NETRESOURCE,Byval lpPassword As String,Byval lpUserName As String, Byval dwFlags As Long) 'Flags

'----- Error codes from error.h
Public Const NO_ERROR = 0
Public Const ERROR_ACCESS_DENIED = 5
Public Const ERROR_ALREADY_ASSIGNED = 85
Public Const ERROR_INVALID_PASSWORD = 86

'----- Error codes from winerror.h
Public Const ERROR_BAD_DEV_TYPE = 66
Public Const ERROR_BAD_NET_NAME = 67
Public Const ERROR_BUSY = 170
Public Const ERROR_BAD_DEVICE = 1200
Public Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202
Public Const ERROR_NO_NET_OR_BAD_PATH = 1203
Public Const ERROR_BAD_PROVIDER = 1204
Public Const ERROR_CANNOT_OPEN_PROFILE = 1205
Public Const ERROR_BAD_PROFILE = 1206
Public Const ERROR_EXTENDED_ERROR = 1208
Public Const ERROR_NO_NETWORK = 1222
Public Const ERROR_CANCELLED = 1223
Public Const ERROR_NOT_CONNECTED = 2250
Public Const ERROR_DEVICE_IN_USE = 2404
Dim retCode&, ascLett&, drivNam$, tmp$
Const FUNC_NAME = "Win32DisconnectDrive"




Open Network file using lotusscript... (Mickey G 28.Jan.10)
. . RE: Open Network file using lotussc... (M IQ 29.Jan.10)
. . . . RE: Open Network file using lotussc... (Mickey G 29.Jan.10)


Document Options






  Document options
Print this pagePrint this page

Search this forum

Forum views and search


  Forum views and search
Date (threaded)
Date (flat)
With excerpt
Author
Category
Platform
Release
Advanced search

Sign In or Register

 Sign In or Register
Sign in
Forgot your password?
Forgot your user name?
Create new registration

Member Tools


RSS Feeds

 RSS feedsRSS
All forum posts RSS
All main topics RSS
More Lotus RSS feeds

Resources

 Resources
Forum use and etiquette
Native Notes Access
Web site Feedback

Lotus Support

 Lotus Support
IBM Support Portal - Lotus software
Lotus Support documents
Lotus support by product
Lotus support downloads
Lotus support RSS feeds

Wikis

 Wikis
IBM Composite Applications
IBM Mashup Center
IBM Connections
IBM Docs
IBM Forms
IBM Mobile Connect
IBM Sametime
IBM SmartCloud for Social Business
IBM Web Experience Factory
Lotus Domino
Lotus Domino Designer
Lotus Expeditor
Lotus Foundations
Lotus iNotes
Lotus Instructor Community Courseware
Lotus Notes
Lotus Notes & Domino Application Development
Lotus Notes Traveler
Lotus Protector
Lotus Quickr
Lotus Symphony
IBM Web Content Manager
WebSphere Portal

Lotus Forums


 Lotus Forums
Notes/Domino 9.0
Notes/Domino 8.5 + Traveler
Notes/Domino XPages development forum
Notes/Domino 8
Notes/Domino 6 and 7
IBM Connections
IBM Forms
IBM Mobile Connect
IBM Sametime
IBM SmartCloud Notes
IBM Web Content Manager
Lotus Enterprise Integration
Lotus Protector
Lotus Quickr
Lotus SmartSuite