2013-01-15 11 views
5

Używam InstallJammer do konfiguracji konfiguracji mojej aplikacji. Chcę sprawdzić, czy aplikacja jest uruchomiona przed przystąpieniem do procedury deinstalacji.Sprawdź, czy aplikacja działa - InstallJammer

set program <%Company%><%AppName%>.exe 
set pids [twapi::get_process_ids -name $program] 
foreach pid $pids { 
    catch {twapi::end_process $pid -force} 
} 

Powyżej podano skrypt TCL, który próbowałem. Ale skrypt nie zwraca żadnych wartości. Jak rozwiązać ten problem?

+0

Ten skrypt próbuje zabić działającą aplikację, która ma pasującą nazwę; mówiąc ściśle, nie * sprawdza * niczego, więc nie ma nic do zwrócenia. Powiedziałbym, że powinno to wynikać z inwokacji czegoś, co nazywa się "end_process" ... – kostix

+0

Z drugiej strony, nie jest jasne, co masz na myśli mówiąc "zwracanie wartości" - w jaki sposób Twój kod wywołujący ma uzyskać dostęp do tego wartość? Odniesienie do odpowiedniego fragmentu dokumentacji "InstallJammer" może pomóc w zrozumieniu wymagań. – kostix

+1

@kostix Czy istnieje sposób sprawdzenia, czy aplikacja jest uruchomiona? Po przeszukaniu tego pytania otrzymałem powyższy skrypt jako rozwiązanie. http://installjammer.com/forums/viewtopic.php?f=5&t=2261 – Gapchoos

Odpowiedz

2

Zakładam, że jesteś przy użyciu execute script condition, a to może być łatwiej po prostu użyć script condition

Jeśli używasz warunku skryptu, wystarczy użyć expr podane przez kostix:

[llength [twapi::get_process_ids -name <%Company%><%AppName%>.exe]] > 0 

If naprawdę musisz użyć warunku skryptu wykonywania, a następnie po prostu zawijać wszystkie w expr { i } i uzyskać taki sam wynik, jak warunek skryptu (lub: warunek skryptu jest po prostu warunkiem wykonania skryptu z expr { na początku i w koniec).

expr {[llength [twapi::get_process_ids -name <%Company%><%AppName%>.exe]] > 0} 
Powiązane problemy