Avatar billede tax Nybegynder
29. august 2002 - 12:58 Der er 5 kommentarer og
1 løsning

Filroderri

Jeg søger at hente MAC adressen på min PC igennem "ipconfig -all > temp.txt".

Jeg opretter en batfil med denne kommando som jeg så kan eksekvere igennem shell.

Problemet er blot at det er yderst tilfældigt om jeg får data ind fra filen eller ej.

Det jeg har brug for er seriøs kontrol over de implicerede filers status.

HVAD GØR JEG!!!


P.S.
Grunden til at jeg ikke bruger en OCX til at hente MACadressen er at de fleste af disse ikke håndterer indhentning af MAC når netkortet ikke er tilsluttet. Det kan ipconfig.

her er min kode

Public Function getmacser() As String
    Dim fileno
    fileno = FreeFile
    Open "c:\test1872.bat" For Output As fileno
        Print #fileno, "ipconfig -all > c:\tst.txt"
    Close fileno
    Dim procid
    procid = Shell("c:\test1872.bat", vbNormalFocus)

   
   
    fileno = FreeFile
    Open "c:\tst.txt" For Input As fileno
    Dim data As String
    data = Input(LOF(fileno2), fileno)
    Close fileno
   
    Kill "c:\test1872.bat"
    Kill "c:\tst.txt"
   
    Debug.Print data
   
   
   
    'Dim Index As Integer
    'Index = 0
    'Dim found As Boolean
    'found = False
   
   
    '
    'Do
    '    Index = InStr(Index, "-", data, 1)
    '    If Mid(data, Index + 3, 1) = "-" Then
    '        Debug.Print Mid(data, Index - 2, 17)
    '        found = True
    '    End If
    '    DoEvents
    'Loop Until found = True
   
   
End Function
Avatar billede tax Nybegynder
29. august 2002 - 13:00 #1
jeg er klar over fejlen i lof. lof(fileno2)->lof(fileno)
Avatar billede michaelemanuel Nybegynder
30. august 2002 - 15:38 #2
Du skal sikre at du ikke læser fra tst.txt inden at test1872.bat er færdig med at skrive til den.

f.eks kan du skrive dette til test1872.bat :
    Print #fileno, "ipconfig -all > c:\tst.txt"
    Print #fileno, "Echo Completed > c:\finish.tag"

Og så inden du åbner tst.txt for at læse :
Do: DoEvents: Loop Until Dir("c:\finish.tag") <> ""
Avatar billede tax Nybegynder
31. august 2002 - 04:30 #3
ill try :)
Avatar billede tax Nybegynder
31. august 2002 - 22:22 #4
Jeg synes stadig det er meget tilfældigt om jeg får fejl eller ej. Jeg vil f.eks  gerne fjerne filerne efter brug, for at undgå gamle filer, detgiver nogle gange fejl.. Hvad gør jeg?
Avatar billede michaelemanuel Nybegynder
02. september 2002 - 08:28 #5
Hvis ellers du placerer
Do: DoEvents: Loop Until Dir("c:\finish.tag") <> ""

inden linien
Open "c:\tst.txt" For Input As fileno
så virker det uden fejl hver gang.

Hvilken fejl får du ?
Avatar billede tax Nybegynder
02. september 2002 - 09:53 #6
sådan ser koden ud:


Public Function getmac() As String
   
    Kill "c:\finish.tag"
   
    Dim fileno
    fileno = FreeFile
    Open "c:\test1872.bat" For Output As fileno
        Print #fileno, "ipconfig -all > c:\tst.txt"
        Print #fileno, "Echo Completed > c:\finish.tag"
    Close fileno
    Dim procid
    procid = Shell("c:\test1872.bat", vbHide)

    'waitasec
    Do: DoEvents: Loop Until Dir("c:\finish.tag") <> ""
   
   
    fileno = FreeFile
    Open "c:\tst.txt" For Input As fileno
    Dim data As String
    data = Input(LOF(fileno), fileno)
    Close fileno
   
    Kill "c:\tst.txt"
    Kill "c:\test1872.bat"
   
    Debug.Print data
           
End Function

Eneste problem er at der afterlades en finish.tag fil. Jeg har prøvet at køre kill på den, men det resulterer i at den melder fejl. Noget med permission.

Sådan som det er nu, hvor finish.tag først slettes næste gang proggy køres, virker det.
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