Avatar billede jambazz Nybegynder
08. oktober 2004 - 09:09 Der er 7 kommentarer og
1 løsning

Script som eksekveres ved afslutning af et program, fx. Word.

Davs!

Jeg vil gerne starte et program (fx. notepad.exe) via et script  og når jeg afslutter notepad skal et andet script eksekveres automatisk.

At starte et program via et script har jeg lavet, det er ingen problem.. men anden del fatter jeg slet ikke..
Avatar billede maximus25 Nybegynder
08. oktober 2004 - 10:34 #1
Hejsa jambazz
Her er et script der checker om en applikation er lukket....du skal bare indsætte en if stament hvor det andet script skal udføres når programmet ikke er aktivt længere.

Her er scriptet:

On Error Resume Next
If WScript.Arguments.Count <> 1 Then
    WScript.Echo "Waits for an application to shut down. Usage:" & vbCrLf & Ucase(WScript.ScriptName) & "

""notepad.exe""" & vbCrLf & "Where ""notepad.exe"" is the executable name of the application you are waiting for."
Else
    blnRunning = True
    Do While blnRunning = True
        Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        Set colItems = objWMIService.ExecQuery("Select Name from Win32_Process where Name='" & Wscript.Arguments(0)

& "'",,48)
        blnRunning = False
        For Each objItem in colItems
            blnRunning = True
        Next
        WScript.Sleep 500
    Loop
End If




håber du kan bruge det:):)
Avatar billede jambazz Nybegynder
08. oktober 2004 - 11:31 #2
Tak, men jeg forstår ikke helt. Hvor skal jeg indsætte denne if statement, og hvad skal jeg spørge på?
Avatar billede jambazz Nybegynder
08. oktober 2004 - 11:39 #3
Ok, det her bliver for kryptisk. Lad mig sætte opgaven op fuldstændigt som den kunne være:

Jeg trykker på en genvej på skrivebordet som peger på en cmd fil, eller på et vbs script alt efter hvad er smartest. Dette skal starte et program, fx c:\notepad.exe, og når dette program afslutttes, skal et andet script eksekveres automatisk, fx c:\script.vbs.

Der skal ikke poppe den der "WScript.Echo "Waits for an application to shut down. " frem :o)
Avatar billede jambazz Nybegynder
08. oktober 2004 - 14:08 #4
Ahh tusind tak maximus! :) Jeg var vist lidt ude af den før, men nu forstår jeg hvordan scriptet skal køre, og det virker som en DRØM! :D Jubiiiiiiiiiiiiii nu tager jeg snart fri :D
Avatar billede maximus25 Nybegynder
08. oktober 2004 - 14:34 #5
hehe....jeg forstod heller ikke hvorfor det ikke skulle virke:):)
Avatar billede maximus25 Nybegynder
08. oktober 2004 - 14:35 #6
hvordan ser det færdig så ud hvis man må spørge?
Avatar billede jambazz Nybegynder
08. oktober 2004 - 14:54 #7
Jeg ved ikke om jeg kan paste det herind på ordentlig facon, men jeg prøver :)

En genvej til vbs scriptet ser således ud: c:\lol.vbs "calc.exe"

lol.vbs:
ENG_Load()

set shell = wscript.createobject("wscript.shell")
shell.run "c:\calc.exe"

If WScript.Arguments.Count <> 1 Then
    WScript.Echo "Venter på at calc lukker ned før den eksekverer DAN_Load(). Metode:" & vbCrLf & Ucase(WScript.ScriptName) & " ""indsætfilnavnher.exe""" & vbCrLf & "Hvor ""indsætfilnavnher.exe"" er navnet på den eksekverbare fil du venter på lukker ned."
Else
    blnRunning = True
    Do While blnRunning = True
        Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        Set colItems = objWMIService.ExecQuery("Select Name from Win32_Process where Name='" & Wscript.Arguments(0) & "'",,48)
        blnRunning = False
        For Each objItem in colItems
            blnRunning = True
        Next
        WScript.Sleep 500
    Loop
End If

If WScript.Arguments.Count = 1 Then
DAN_Load()
WScript.Echo "Danske regional indstillinger"
End If


// Men jeg fatter ikke hvad det der WMIService gør, det der root\cimv2 forstår jeg heller ikke en dyt af. ENG_Load og DAN_Load er to funktioner som ændrer nøgler i registreringsdatabasen. Så jeg har faktisk bare kopieret al din kode, og så kørte det! :)
Avatar billede jambazz Nybegynder
08. oktober 2004 - 14:58 #8
Nå ja, det er fordi jeg kører et program som kræver at man har engelske regional options, pga dato formatteringen i access databasen. Derfor skal jeg altid huske at ændre til engelsk indstillinger før jeg starter programmet, og tilbage til danske når jeg lukker det. Det behøves jeg ikke længere :D Dovenskaben længe leve haha! :D
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