Module: Win32::NetResources

Defined in:
lib/Win32/NetResources.rb

Defined Under Namespace

Classes: Error

Class Method Summary collapse

Class Method Details

.mount(p_strLocal, p_strRemote, p_strUser = nil, p_strPwd = nil, p_bUpdate = false) ⇒ Object



methodsFor: “mounting/unmounting”



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/Win32/NetResources.rb', line 57

def NetResources.mount(
    p_strLocal,
    p_strRemote,
    p_strUser = nil,
    p_strPwd  = nil,
    p_bUpdate = false)    # true if we want to update the local user's profile

  begin
    wsh = WIN32OLE.new('WScript.Network')
    wsh.MapNetworkDrive(p_strLocal.gsub(/\w$/, '\0:'), p_strRemote.gsub(/\//, "\\"),
              p_bUpdate, p_strUser, p_strPwd)
    rescue WIN32OLERuntimeError => p_e
      raise Error, p_e
  end
end

.mountPrinter(p_strLocal, p_strRemote, p_strUser = nil, p_strPwd = nil, p_bUpdate = false) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/Win32/NetResources.rb', line 81

def NetResources.mountPrinter(
    p_strLocal,
    p_strRemote,
    p_strUser = nil,
    p_strPwd  = nil,
    p_bUpdate = false)    # true if we want to update the local user's profile

  begin
    wsh = WIN32OLE.new('WScript.Network')
    wsh.AddPrinterConnection(p_strLocal, p_strRemote.gsub(/\//, "\\"),
              p_bUpdate, p_strUser, p_strPwd)
    rescue WIN32OLERuntimeError => p_e
      raise Error, p_e
  end
end

.mountsObject



methodsFor: “enumerating”



120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/Win32/NetResources.rb', line 120

def NetResources.mounts
  begin
    wsh     = WIN32OLE.new('WScript.Network')
    vValues = wsh.EnumNetworkDrives()
    mRet    = {}
    key     = nil
    vValues.each do |item|
      if key.nil? then key = item
      else
        mRet[key] = item
        key = nil
      end
    end
    rescue WIN32OLERuntimeError
      raise Error, p_e
    ensure
      return mRet
  end
end

.printersObject



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/Win32/NetResources.rb', line 140

def NetResources.printers
  begin
    wsh     = WIN32OLE.new('WScript.Network')
    vValues = wsh.EnumPrinterConnections()
    mRet    = {}
    key     = nil
    vValues.each do |item|
      if key.nil? then key = item
      else
        mRet[key] = item
        key = nil
      end
    end
    rescue WIN32OLERuntimeError
      raise Error, p_e
    ensure
      return mRet
  end
end

.setDefaultPrinter(p_strName) ⇒ Object



methodsFor: “defaulting”



108
109
110
111
112
113
114
115
# File 'lib/Win32/NetResources.rb', line 108

def NetResources.setDefaultPrinter(p_strName)
  begin
    wsh = WIN32OLE.new('WScript.Network')
    wsh.SetDefaultPrinter(p_strName)
    rescue WIN32OLERuntimeError => p_e
      raise Error, p_e
  end
end

.umount(p_strName, p_bForce = true, p_bUpdate = false) ⇒ Object



72
73
74
75
76
77
78
79
# File 'lib/Win32/NetResources.rb', line 72

def NetResources.umount(p_strName, p_bForce = true, p_bUpdate = false)
  begin
    wsh = WIN32OLE.new('WScript.Network')
    wsh.RemoveNetworkDrive(p_strName, p_bForce, p_bUpdate)
    rescue WIN32OLERuntimeError => p_e
      raise Error, p_e
  end
end

.umountPrinter(p_strName, p_bForce = true, p_bUpdate = false) ⇒ Object



96
97
98
99
100
101
102
103
# File 'lib/Win32/NetResources.rb', line 96

def NetResources.umountPrinter(p_strName, p_bForce = true, p_bUpdate = false)
  begin
    wsh = WIN32OLE.new('WScript.Network')
    wsh.RemovePrinterConnection(p_strName, p_bForce, p_bUpdate)
    rescue WIN32OLERuntimeError => p_e
      raise Error, p_e
  end
end