Avatar billede arvesen Nybegynder
13. september 2000 - 09:29 Der er 7 kommentarer og
1 løsning

net use

Når man bruger net use i en dos prompt, kan man få oplysningen.

Lpt1  \\\\sharecomputer\\sharenavn.

Hvordan kan jeg få samme oplysning med vb 6.0

Hilsen Gert
Avatar billede powell Nybegynder
13. september 2000 - 10:56 #1
Jeg ved ikke hvad kommandoen hedder i VB, men hvad med at øre en makro i dos fra VB?
Avatar billede privaten Nybegynder
13. september 2000 - 11:17 #2
Dim minPrinter As Printer

For Each minPrinter In Printers
    If minPrinter.Port = \"LPT1:\" Then
      MsgBox minPrinter.DeviceName
    End If
Next
Avatar billede privaten Nybegynder
13. september 2000 - 11:24 #3
Undskyld, jeg fik ikke læst spm. ordenligt
Avatar billede 127144146281 Nybegynder
13. september 2000 - 11:25 #4
net use >fil.txt

fil.exe skulle så indeholde det som den skjriver ved net use
Avatar billede 127144146281 Nybegynder
13. september 2000 - 11:27 #5
fil.txt ikke fil.exe som jeg skrev til sidst, når der er en > så overskriver den filen man skriver efter > tegnet, hvis der er to >>fil.txt tilføjer den teksten til slutningen af filen
Avatar billede arvesen Nybegynder
13. september 2000 - 12:59 #6
den med net use har jeg også tænkt på,
med shell \"net use > fil.txt\" får jeg ikke oprettet nogen fil på disken . Hvorfor ikke ????
Avatar billede tomasc Nybegynder
13. september 2000 - 22:48 #7
> shell \"net use > fil.txt\"

Duer ikke fordi Net.exe ikke kender noget til redirigering af standard-output (større-end tegnet). Det gør din kommandofortolker (også kaldet shell) derimod. Den hedder blot noget forskelligt afhængig af operativsystemet, men heldigvis er der sættes standardmæssigt en environment-variabel til at pege på den aktuelle kommandofortolker.

Brug derfor i stedet:

    Shell Environ(\"COMSPEC\") & \" /C Net Use >fil.txt\"

Bortset fra det, så skal du bruge API-kaldene WNetOpenEnum og WNetEnumResource, hvis du ikke ønsker at bruge Net Use.

Her er et lille eksempel, som jeg har lånt fra Microsoft, men som virker??? Men som har en lille krølle: Er der INGEN netværksforbindelser, meldes fejl 259 - men det må du selv pille ved:

Opret et standard EXE projekt, og kopier følgende kode ind i Form1:

--- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut ---
Option Explicit

Private Const GMEM_FIXED = &H0
Private Const GMEM_ZEROINIT = &H40
Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)

Private Declare Function GlobalAlloc Lib \"KERNEL32\" ( _
  ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib \"KERNEL32\" ( _
  ByVal hMem As Long) As Long

Private Declare Sub CopyMemory Lib \"KERNEL32\" Alias \"RtlMoveMemory\" _
  (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

Private Declare Function CopyPointer2String Lib \"KERNEL32\" _
  Alias \"lstrcpyA\" ( _
  ByVal NewString As String, ByVal OldString As Long) As Long

Private Sub Form_click()
  Dim hEnum As Long, lpBuff As Long, nr As NETRESOURCE
  Dim cbBuff As Long, cCount As Long
  Dim p As Long, res As Long, i As Long

  \'Setup the NETRESOURCE input structure.
  nr.dwUsage = RESOURCEUSAGE_CONTAINER
  nr.lpRemoteName = 0
  cbBuff = 1000
  cCount = &HFFFFFFFF

  \'Open a Net enumeration operation handle: hEnum.
  res = WNetOpenEnum(RESOURCE_CONNECTED, RESOURCETYPE_ANY, _
                      0, nr, hEnum)
  If res = 0 Then
      \'Create a buffer large enough for the results.
      \'1000 bytes should be sufficient.
      lpBuff = GlobalAlloc(GPTR, cbBuff)
      \'Call the enumeration function.
      res = WNetEnumResource(hEnum, cCount, lpBuff, cbBuff)
      If res = 0 Then
        p = lpBuff
        Cls
        \'WNetEnumResource fills the buffer with an array of
        \'NETRESOURCE structures. Walk through the list and print
        \'each local and remote name.
        For i = 1 To cCount
            CopyMemory nr, ByVal p, LenB(nr)
            p = p + LenB(nr)
            Print PointerToString(nr.lpLocalName), _
                  PointerToString(nr.lpRemoteName)
        Next i
      Else
        MsgBox \"Error: \" & Err.LastDllError, vbOKOnly, \"WNetEnumResources\"
      End If
      If lpBuff <> 0 Then GlobalFree (lpBuff)
      WNetCloseEnum (hEnum) \'Close the enumeration
  Else
      MsgBox \"Error: \" & Err.LastDllError, vbOKOnly, \"WNetOpenEnum\"
  End If
End Sub

Private Function PointerToString(p As Long) As String
  \'The values returned in the NETRESOURCE structures are pointers to
  \'ANSI strings so they need to be converted to Visual Basic Strings.
  Dim s As String
  s = String(255, Chr$(0))
  CopyPointer2String s, p
  PointerToString = Left(s, InStr(s, Chr$(0)) - 1)
End Function
--- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut ---


Tilføj et kode-modul og kopier følgende til dette:

--- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut ---
Option Explicit

Public Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        lpLocalName As Long
        lpRemoteName As Long
        lpComment As Long
        lpProvider As Long
End Type

Public Declare Function WNetOpenEnum Lib \"mpr.dll\" Alias _
    \"WNetOpenEnumA\" ( _
    ByVal dwScope As Long, _
    ByVal dwType As Long, _
    ByVal dwUsage As Long, _
    lpNetResource As Any, _
    lphEnum As Long) As Long

Public Declare Function WNetEnumResource Lib \"mpr.dll\" Alias _
    \"WNetEnumResourceA\" ( _
    ByVal hEnum As Long, _
    lpcCount As Long, _
    ByVal lpBuffer As Long, _
    lpBufferSize As Long) As Long

Public Declare Function WNetCloseEnum Lib \"mpr.dll\" ( _
    ByVal hEnum As Long) As Long

\'RESOURCE ENUMERATION.
Public Const RESOURCE_CONNECTED = &H1
Public Const RESOURCE_GLOBALNET = &H2
Public Const RESOURCE_REMEMBERED = &H3

Public Const RESOURCETYPE_ANY = &H0
Public Const RESOURCETYPE_DISK = &H1
Public Const RESOURCETYPE_PRINT = &H2
Public Const RESOURCETYPE_UNKNOWN = &HFFFF

Public Const RESOURCEUSAGE_CONNECTABLE = &H1
Public Const RESOURCEUSAGE_CONTAINER = &H2
Public Const RESOURCEUSAGE_RESERVED = &H80000000
--- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut --- cut ---

Start projektet og klik et vilkårligt sted på skærmen. Nu vises netværkforbindelserne på formen.
Avatar billede arvesen Nybegynder
14. september 2000 - 09:50 #8
Mange tak for jeres svar, et af dem var lige vad jeg skulle bruge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester