|
| Shell(pathname) starter ikke dos program k~ Fra : wamingo |
Dato : 28-10-02 15:23 |
|
hej, håber I alle havde en god weekend :)
Jeg står over for et lille problem med det her Shell(pathname)...
Når jeg forsøger at starte et bestemt dos program så starter det ikke som
det skal...
Når dos programmet startes op normalt første gang skal man taste nogle info
ind som så gemmes i en fil. Undtagen hvis man sletter denne fil så vil
programmet Aldrig spørge disse spørgsmål igen og vil blot gå igang med den
routine operation som den skal klare...
Mit VB program skal så kunne starte dette dos program op automatisk, og det
gør den med shell(pathname) men den standser ved spørgsmålene. Hvorfor i al
verden gør den det når konfig-filen allerede eksistere?
Man skulle tro at dos programmet bliver kørt fra et andet direktorie for
derfor ikke at kunne finde konfig filen...
Hvad kan jeg gøre for at starte dette program 100% normalt?
| |
Tomas Christiansen (28-10-2002)
| Kommentar Fra : Tomas Christiansen |
Dato : 28-10-02 22:15 |
|
wamingo skrev:
> Jeg står over for et lille problem med det her Shell(pathname)...
> Når jeg forsøger at starte et bestemt dos program så starter det
ikke som
> det skal...
Jeg har kigget lidt på det, og der findes flere forskellige løsninger.
Den rigtige måde er nok at bruge det rigtige API-kald, men vil man
ikke det, findes der nok alligevel en vej.
Denne lille procedure burde kunne klare problemet:
Sub Start( _
ByVal sCmdLine As String, _
ByVal sWorkDir As String, _
Optional ByVal sTitle As String = "")
Shell Environ("COMSPEC") & " /C START " & _
IIf(sTitle = "", "", """" & sTitle & """") & _
" /D""" & sWorkDir & """ " & sCmdLine, vbHide
End Sub
Lad mig lige forklare virkemåden: Først startes en ny
kommando-fortolker op (den hedder typisk command.com eller cmd.exe,
men det afhænger af Windows-versionen - derfor brugen af COMSPEC).
Dernæst sættes kommando-fortolkeren til at udføre kommandoen START,
som skal starte det program, som du vil have startet op. Fordelen ved
START-kommandoen er, at du kan angive hvilket bibliotek programmet
skal køre i (med /D) og du kan angive en anden titel til programmet
(parametren sTitle).
Eksempler:
Start "MitProg.exe", "C:\Work"
Start "C:\Progs\DitProg.exe", "C:\Work", "Dit program"
-------
Tomas
| |
wamingo (28-10-2002)
| Kommentar Fra : wamingo |
Dato : 28-10-02 23:59 |
|
> Sub Start( _
> ByVal sCmdLine As String, _
> ByVal sWorkDir As String, _
> Optional ByVal sTitle As String = "")
> Shell Environ("COMSPEC") & " /C START " & _
> IIf(sTitle = "", "", """" & sTitle & """") & _
> " /D""" & sWorkDir & """ " & sCmdLine, vbHide
> End Sub
> Eksempler:
> Start "MitProg.exe", "C:\Work"
> Start "C:\Progs\DitProg.exe", "C:\Work", "Dit program"
det funker perfekt!
jeg takker mange gange :)
tak
tak
tak....
;)
| |
Thomas Jørgensen (28-10-2002)
| Kommentar Fra : Thomas Jørgensen |
Dato : 28-10-02 22:48 |
|
Bare et gæt:
Kan det være - når du starter prg. anden gang at der "smides" en parameter
på ?
ala. c:\x\start.bat /konfig.ini ? og som så mangler i path'en ??
vh thomas j.
"wamingo" <foxtrot2@worldonline.dk> skrev i en meddelelse
news:apjgmp$udp$1@news.cybercity.dk...
> hej, håber I alle havde en god weekend :)
>
> Jeg står over for et lille problem med det her Shell(pathname)...
> Når jeg forsøger at starte et bestemt dos program så starter det ikke som
> det skal...
> Når dos programmet startes op normalt første gang skal man taste nogle
info
> ind som så gemmes i en fil. Undtagen hvis man sletter denne fil så vil
> programmet Aldrig spørge disse spørgsmål igen og vil blot gå igang med den
> routine operation som den skal klare...
> Mit VB program skal så kunne starte dette dos program op automatisk, og
det
> gør den med shell(pathname) men den standser ved spørgsmålene. Hvorfor i
al
> verden gør den det når konfig-filen allerede eksistere?
> Man skulle tro at dos programmet bliver kørt fra et andet direktorie for
> derfor ikke at kunne finde konfig filen...
>
> Hvad kan jeg gøre for at starte dette program 100% normalt?
>
>
| |
|
|