|
| W2k - lukke program ned via shell script? Fra : Rado |
Dato : 23-05-05 12:41 |
|
Nogen der ved hvordan man lukker et program ned via et shell script i
W2k?
--
Rado
Always listen to experts. They will explain what can't be done
and why. Then do it. - Robert Heinlein
| |
Benny Andersen (23-05-2005)
| Kommentar Fra : Benny Andersen |
Dato : 23-05-05 14:41 |
|
On Mon, 23 May 2005 13:41:28 +0200, Rado <rado@fjernpost1.tele.dk>
wrote:
>
>
>Nogen der ved hvordan man lukker et program ned via et shell script i
>W2k?
Der findes 2 metoder.
1. flyt fokus til det program som skal lukkes og udfør lukningen ved
at sende den tastesekvens som lukker programmet, vha sendkeys
2. Dræb processen vha. et procesdræbnings program.
Vha. 2 metoden
Med w2k (på cd-rom'en) følger 'support tools' som skal installeres
separat hvis man ønsker det. Installerer man det får man utilitien:
Kill. Det skal blot have navnet, på den exe fil som har starten
processen, som argument. Følgende kan gemmes i en .vbs fil og det vil
lukke outlook express ved kørsel.
set WshShell = CreateObject("WScript.Shell")
WshShell.Run "kill msimn.exe"
MVH Benny Andersen
| |
Rado (23-05-2005)
| Kommentar Fra : Rado |
Dato : 23-05-05 18:02 |
|
On Mon, 23 May 2005 15:41:10 +0200, Benny Andersen
<be9@worldoffline.dk> wrote:
>
>Der findes 2 metoder.
>1. flyt fokus til det program som skal lukkes og udfør lukningen ved
>at sende den tastesekvens som lukker programmet, vha sendkeys
>2. Dræb processen vha. et procesdræbnings program.
>
>Vha. 2 metoden
>Med w2k (på cd-rom'en) følger 'support tools' som skal installeres
>separat hvis man ønsker det. Installerer man det får man utilitien:
>Kill. Det skal blot have navnet, på den exe fil som har starten
>processen, som argument. Følgende kan gemmes i en .vbs fil og det vil
>lukke outlook express ved kørsel.
OK, tak. Jeg har så via 2. fået det til at virke: Det virker dog ikke
hvis programmet er sat til "Close to system tray", dvs. så det ikke
lukker ned når man klikker på Close knappen i øverste højre hjørne,
men blot "gemmer sig" til man klikker på tray ikonen igen. Men det må
man jo så blot lade være med, og bruge Minimize knappen i stedet.
Nu er problemet så at jeg skal have programmet startet op igen med det
samme Jeg ved godt hvordan jeg gør i DOS shell, men det kan jeg jo
ikke bruge i et VB script. Så har du evt. en stump VB kode der kan
starte et program også - evt. med et par sekunders forsinkelse om
nødvendigt?
Hvis nogen skulle undre sig så er formålet med det hele at få ikonerne
i trayet gendannet når Explorer crasher, og det kan jeg for en del
programmers vedkommende kun få ved at lukke dem ned og starte dem op
igen, hvilket er ret besværligt manuelt.
--
Rado
Always listen to experts. They will explain what can't be done
and why. Then do it. - Robert Heinlein
| |
Rado (23-05-2005)
| Kommentar Fra : Rado |
Dato : 23-05-05 18:28 |
|
On Mon, 23 May 2005 19:02:10 +0200, Rado <rado@fjernpost1.tele.dk>
wrote:
Nåja, lige et tillægsspørgsmål:
Jeg skulle gerne have flere programmer lukket ned og genstartet på een
gang, og har prøvet at eksperimentere lidt med koden men uden held -
jeg kan kun få eet program lukket ned hver gang jeg kører scriptet. Så
hvordan bærer man sig ad her?
--
Rado
Always listen to experts. They will explain what can't be done
and why. Then do it. - Robert Heinlein
| |
Benny Andersen (23-05-2005)
| Kommentar Fra : Benny Andersen |
Dato : 23-05-05 21:43 |
|
On Mon, 23 May 2005 19:28:15 +0200, Rado <rado@fjernpost1.tele.dk>
wrote:
>On Mon, 23 May 2005 19:02:10 +0200, Rado <rado@fjernpost1.tele.dk>
>wrote:
>
>Nåja, lige et tillægsspørgsmål:
>
>Jeg skulle gerne have flere programmer lukket ned og genstartet på een
>gang, og har prøvet at eksperimentere lidt med koden men uden held -
>jeg kan kun få eet program lukket ned hver gang jeg kører scriptet. Så
>hvordan bærer man sig ad her?
Jeg har ingen problemmer på mit system med at have flere
WshShell.Run "kill <process>"
linier, som så lukker dem alle.
Du kan prøve med pauser imellem, som f.eks 1/2 sekund:
WScript.Sleep 500
--
Benny
| |
Benny Andersen (23-05-2005)
| Kommentar Fra : Benny Andersen |
Dato : 23-05-05 21:41 |
|
[KLIP]
>OK, tak. Jeg har så via 2. fået det til at virke: Det virker dog ikke
>hvis programmet er sat til "Close to system tray", dvs. så det ikke
>lukker ned når man klikker på Close knappen i øverste højre hjørne,
>men blot "gemmer sig" til man klikker på tray ikonen igen. Men det må
>man jo så blot lade være med, og bruge Minimize knappen i stedet.
Hvad med kill -f
Måske virker den stærkere overfor programmer som skal lukkes på try
ikonet.
>Nu er problemet så at jeg skal have programmet startet op igen med det
>samme Jeg ved godt hvordan jeg gør i DOS shell, men det kan jeg jo
>ikke bruge i et VB script. Så har du evt. en stump VB kode der kan
>starte et program også - evt. med et par sekunders forsinkelse om
>nødvendigt?
Følgende gør det modsatte:
set WshShell = CreateObject("WScript.Shell")
WshShell.Run """E:\Program Files\Adobe\Acrobat
5.0\Reader\AcroRd32.exe"""
WScript.Sleep 10000
WshShell.Run "kill AcroRd32.exe"
>Hvis nogen skulle undre sig så er formålet med det hele at få ikonerne
>i trayet gendannet når Explorer crasher, og det kan jeg for en del
>programmers vedkommende kun få ved at lukke dem ned og starte dem op
>igen, hvilket er ret besværligt manuelt.
--
Benny
| |
Rado (24-05-2005)
| Kommentar Fra : Rado |
Dato : 24-05-05 15:03 |
|
On Mon, 23 May 2005 22:40:31 +0200, Benny Andersen
<be9@worldoffline.dk> wrote:
>[KLIP]
>>OK, tak. Jeg har så via 2. fået det til at virke: Det virker dog ikke
>>hvis programmet er sat til "Close to system tray", dvs. så det ikke
>>lukker ned når man klikker på Close knappen i øverste højre hjørne,
>>men blot "gemmer sig" til man klikker på tray ikonen igen. Men det må
>>man jo så blot lade være med, og bruge Minimize knappen i stedet.
>
>Hvad med kill -f
>Måske virker den stærkere overfor programmer som skal lukkes på try
>ikonet.
Det var kill -f der skulle til, og så lige de ekstra to "" før og
efter programstierne (havde kun brugt en enkelt). Ser nu ud til at det
fungerer med følgende kode:
set WshShell = CreateObject("WScript.Shell")
WshShell.Run "kill -f pwagent.exe"
WScript.Sleep 1000
WshShell.Run "kill -f notepro.exe"
WScript.Sleep 10000
WshShell.Run """C:\Program Files\Password Agent\PwAgent.exe"""
WScript.Sleep 1000
WshShell.Run """C:\Program Files\NoteTab Pro\NotePro.exe"""
Måske sleep værdierne kan gøres mindre det ved jeg ikke, men det er
hurtigt nok for mig det her.
Der var iøvrigt noget der snød mig under testforsøgene, og det er at
tray ikonerne nogle gange kan blive hængende et stykke tid selvom
programmerne er blevet lukket ned. Først når man fører musen hen over
dem forsvinder de. Så det skal man lige være opmærksom på når man
tester det her.
Men ellers mange tak for hjælpen!
--
Rado
Always listen to experts. They will explain what can't be done
and why. Then do it. - Robert Heinlein
| |
|
|