• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Prozess mit AppleScript beenden

MaxCT

Braeburn
Registriert
19.01.10
Beiträge
45
Code:
tell application "System Events"
	if exists (process "Tastaturübersicht") then
		---BEENDE DEN PROZESS MIT DEM NAMEN "Tastaturübersicht"---
	else
		do shell script "/Users/Ich/Applications/keyboardViewer"
	end if
end tell

Ich möchte per Applescript einen Prozess namens Tastaturübersicht starten und falls dieser schon läuft, ihn beenden. Das Problem ist, dass es keine app ist, sondern nur ein Prozess. Ich kann also nicht einfach die App schließen.
Wäre nett wenn ihr mir weiter helft ;)
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo!
Das nächste mal poste bitte im richtigen Forum (Hier)
... dann ist die Wahrscheinlichkeit höher, dass jemand antwortet

EDIT 2: Thread ist verschoben! Das ging ja schnell :)


EDIT:

Mit 10.6 hat sich da ja einiges verändert. Leider ist es im Gegensatz zu 10.5 nicht mehr möglich, ein wirklich funktionierendes AppleScript dafür zu schreiben.
Es gibt aber eine Lösung hier, die sehr gut funktioniert
 
Zuletzt bearbeitet:

MaxCT

Braeburn
Registriert
19.01.10
Beiträge
45
alles klar nächstes mal in dieses Forum.

Wie man vielleicht sieht habe ich den Code von deiner Quelle schon benutzt. Nur mit dem beenden habe ich so meine Probleme. Gibt es dafür keine Alternative?
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Auf der Seite ist doch ein Beispielscript gepostet o_O

Code:
tell application "System Events"
	if exists (process "Tastaturübersicht") then
		click process "Tastaturübersicht"'s window 1's buttons whose subrole is "AXCloseButton"
	else
		do shell script "/usr/local/bin/keyboardViewer"
-- oder in deinem Fall dein Pfad zu keyboardViewer
	end if
end tell
 

MaxCT

Braeburn
Registriert
19.01.10
Beiträge
45
Auf der Seite ist doch ein Beispielscript gepostet o_O

Code:
tell application "System Events"
	if exists (process "Tastaturübersicht") then
		click process "Tastaturübersicht"'s window 1's buttons whose subrole is "AXCloseButton"
	else
		do shell script "/usr/local/bin/keyboardViewer"
-- oder in deinem Fall dein Pfad zu keyboardViewer
	end if
end tell

diesen benutze ich jetzt auch. Funktioniert nur leider auch nicht mit ControllerMate IV :(
Das liegt dann aber warscheinlich nicht am Applescript, sondern in irgendeiner Weise an ControllerMate IV -.-
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Laedt der ControllerMate sich als LaunchAgent?
 

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
ich würde hier mit top, grep und kill (oder killall) ein Skript schreiben, leider weiß ich nicht, wie man die pid bei Prozessen oder pid-Files rauslesen kann, müsste aber über grep gehen
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
ich würde hier mit top, grep und kill (oder killall) ein Skript schreiben, leider weiß ich nicht, wie man die pid bei Prozessen oder pid-Files rauslesen kann, müsste aber über grep gehen

Code:
tell application "System Events"
	activate
	set processlist to name of every process
	set killprocess to (choose from list processlist without multiple selections allowed)
	if killprocess is not false then
		do shell script "kill " & (unix id of application process (item 1 of killprocess) as text) -- password "sogeheim" with administrator privileges
	end if
end tell
 

_linx_

Kleiner Weinapfel
Registriert
04.01.09
Beiträge
1.125
Ich würde einfach davon abraten, das Admininistratorpasswort im Klartext in eine Textdatei zu schreiben...
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
Klappt sowas nicht mehr?

Code:
set myProcess to "tastaturübersicht" --hier muss der echte name des prozesses rein. ich vermute mal "keyboardViewer?"
tell app "system events"
if exists process myProcess then
try
do shell script "killall " & myProcess
on error e
display alert "Konnte " & myProcess & " nicht killen, weil:" message e as warning buttons {"OK"} cancel button "OK"
end
else
do shell script "/Users/Ich/Applications/keyboardViewer"
end
end