/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Miljøvariabler og stier med mellemrum?
Fra : Thomas Møller Nexø


Dato : 10-05-08 08:33

Hej.

Jeg oplever et lidt mærkeligt problem med et lille script (en del
af et lidt større script), som skal tjekke om en process kører
lokalt på en maskine.
Jeg tjekker forskellige ting med hensyn til om processen kører og
hvis den ikke gør dette skal den jo startes via .exe filen.

..exe filen er placeret i C:\Program
Files\Mappe\Mappe\filnavn.exe, eller i
C:\Programmer\Mappe\Mappe\filnavn.exe hvis der er tale om et
dansk OS.
Den del af scriptet, der fejler ser således ud:

MsgBox StartAvgCC()

'
*****************************************************************
*******
' StartAvgCC() - Starter AvgCC.exe
'
*****************************************************************
*******
Function StartAvgCC()
On Error Resume Next
Dim objFSO, filePath, objShell, bolSuccess
Set objFSO = CreateObject("Scripting.FileSystemObject")

filePath = "%PROGRAMFILES%\Grisoft\AVG7\avgcc.exe"

MsgBox filePath

If objFSO.FileExists(filePath) Then
Set objShell = CreateObject("Wscript.Shell")
objShell.Run(filePath), 0, True
Set objShell = Nothing

If Err <> 0 Then
bolSuccess = False
Else
bolSuccess = True
End If
End If

StartAvgCC = bolSuccess
End Function

Scriptet fejler i en større sammenhæng og melder at stien til
filen ikke eksisterer.
Hvis jeg benytter filePath = "C:\Windows\Notepad.exe" åbnes
Notepad uden problemer.

Jeg har også forsøgt at placere andre filer i den givne mappe
under \Program Files\, men lige lidt hjælper det.
Har også prøvet med den absolutte sti filePath = "C:\Program
Files\Mappew\Mappe\filnavn.exe", men det giver samme fejl.

Er det fordi der er mellemrum i \Program Files\?
Benytter jeg miljøvariabler forkert i mit script?

Det virker som sagt fint med absolutte stier, hvis jeg ikke
forsøger med \Program Files\ mappen, eller undermapper i denne
mappe.

Enhver ledetråd vil blive modtaget med kyshånd!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Thomas Møller Nexø (14-05-2008)
Kommentar
Fra : Thomas Møller Nexø


Dato : 14-05-08 10:19


> Function StartAvgCC()
> On Error Resume Next
> Dim objFSO, filePath, objShell, bolSuccess
> Set objFSO = CreateObject("Scripting.FileSystemObject")
>
> filePath = "%PROGRAMFILES%\Grisoft\AVG7\avgcc.exe"
>
> MsgBox filePath
>
> If objFSO.FileExists(filePath) Then
> Set objShell = CreateObject("Wscript.Shell")
> objShell.Run(filePath), 0, True
> Set objShell = Nothing
>
> If Err <> 0 Then
> bolSuccess = False
> Else
> bolSuccess = True
> End If
> End If
>
> StartAvgCC = bolSuccess
> End Function

Det sjove er, at hvis jeg flytter selve verificeringen på om filen
eksisterer - altså hvis jeg fx. siger If Not
objFSO.FileExists(filePath) Then, eller helt fjerner denne
validering, så virker det fint.

Hvorfor scriptet så vælger at køre en fil efter at det har valideret
at den ikke eksisterer vides ikke.

Men jeg lukker i hvert fald tråden.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste