Gå till innehåll
Just nu i M3-nätverket

Hjälp med apple-script för att kontrollera vpn-uppkoppling


gant

Rekommendera Poster

Jag kör en vpn-tjänst som använder sig av Tunnelblick.
Jag undrar om någon kan hjälpa mig med ett script som stänger av t.ex. Firefox, Safari, när Tunnelblick kopplar ner vpn-tjänsten.
Alltså ett script som körs hela tiden i bakgrunden och kontrollerar att Tunnelblick har vpn-tjänsten uppkopplad. Om vpn-tjänsten är nedkopplad ska Firefox och Safari stängas ned.

 

Jag hittade detta nedanstående scriptet på nätet.
Någon som kan hjälpa mig att modifiera så att scripten bara kontrollerar att vpn-uppkoppling är igång samt stänger ner Firefox och Safari när vpn-uppkopplingen bryts?
Jag behöver inte uppkopplingsfunktionen i scripten. Jag kopplar upp manuellt.
Tack på förhand.

 

 

 

tell application "Tunnelblick"
connect "config"
get state of first configuration where name = "config"
repeat until result = "CONNECTED"
delay 1
get state of first configuration where name = "config"
end repeat
if result = "connected" then run application "uTorrent"
end tell
repeat
tell application "Tunnelblick"
get state of configuration 1 whose name = "config"
if result = "connected" then repeat until result = "exiting"
delay 1
get state of configuration 1 whose name = "config"
end repeat
if result = "exiting" then quit application "uTorrent"
tell application "Tunnelblick"
connect "config"
get state of first configuration where name = "config"
repeat until result = "CONNECTED"
delay 1
get state of first configuration where name = "config"
end repeat
run application "uTorrent"
end tell
end tell
end repeat

"config" is replaced with my vpn of choice as it appears in the tunnelblick drop down menu. I was so excited that it worked, I had to share it.

Länk till kommentar
Dela på andra webbplatser

Jag gissar att det räcker med den här delen i mitten.

tell application "Tunnelblick"
        get state of configuration 1 whose name = "config"
        if result = "connected" then repeat until result = "exiting"
            delay 1
            get state of configuration 1 whose name = "config"
        end repeat
        if result = "exiting" then quit application "uTorrent"

Lägg till en end på slutet.

Länk till kommentar
Dela på andra webbplatser

tell application "Tunnelblick"
get state of configuration 1 whose name = "config"
if result = "connected" then repeat until result = "exiting"
delay 1
get state of configuration 1 whose name = "config"
end repeat
if result = "exiting" then
tell (quit application "Safari")
end tell
end if
end tell


Efter att ha sparat scriptet som .app så kompilerade jag scripten. Men när jag sedan tryckte på kör så klagade den på att sista result-variabeln inte är definierad, "number -2753 from result"

Någon som kan hjälpa?

Tack på förhand.

Länk till kommentar
Dela på andra webbplatser

Ollie Williams

Har ett sådant script för ett annat program, men det borde ju gå att skriva om för ett annan program med lätthet. Sitter inte vid datorn nu men ska försöka komma ihåg att lägga upp det imorgon förmiddag.

Länk till kommentar
Dela på andra webbplatser

Nu har jag fått det att fungera.

Men när "config" är nedkopplad stängs även själva scripten ned.

Någon som vet hur man kan få scripten att köra trots att vpn-kopplingen är nere?

 

Tack på förhand.

 

tell application "Tunnelblick"
get state of configuration 1 whose name = "config"
if result = "connected" then repeat until result = "exiting"
delay 1
get state of configuration 1 whose name = "config"
end repeat
if result = "exiting" then
tell application "Safari"
quit
tell application "Opera"
quit
end tell
end tell
end if
return 1
end tell

Länk till kommentar
Dela på andra webbplatser

Du har ändrat sista raden från

if result = "exiting" then quit application "uTorrent"

till

if result = "exiting" then
tell (quit application "Safari")

vilket, med mina i ämnet obildade ögon, ser ut som om inte felaktig, så i alla fall onödigt rörig kod. Byt bara ut uTorrent mot Safari och lägg till end i slutet, det kommer automatiskt ändras till end tell.

Länk till kommentar
Dela på andra webbplatser

Tack för ditt svar.

Scripten fungerar nu, se #5.

 

Däremot så stängs scripten ner när vpn-kopplingen kopplas ner. Jag vill att scripten körs i bakgrunden även om vpn är nere.

 

Lägger jag till "on idle" i början och "end idle" i slutet körs inte scripten alls. Någon som har svar?

 

Tack på förhand.

 

Du har ändrat sista raden från

if result = "exiting" then quit application "uTorrent"

till

if result = "exiting" then
tell (quit application "Safari")

vilket, med mina i ämnet obildade ögon, ser ut som om inte felaktig, så i alla fall onödigt rörig kod. Byt bara ut uTorrent mot Safari och lägg till end i slutet, det kommer automatiskt ändras till end tell.

Länk till kommentar
Dela på andra webbplatser

Kan du inte bara lägga en en while true runt allt?

Typ while true på rad två, alltså efter tell app "Tunnelblick" och sedan en avslutande end på näst sista raden? Vill påpeka jag är osäker på syntaxen, men något liknande borde få det att starta om om det skulle arbeta genom allt annat.

Länk till kommentar
Dela på andra webbplatser

Det verkar som att det räcker med att man kryssar i "Lämna öppet efter körhanteraren" när man sparar scripten så stängs inte scripten av.

 

 

Kan du inte bara lägga en en while true runt allt?

Typ while true på rad två, alltså efter tell app "Tunnelblick" och sedan en avslutande end på näst sista raden? Vill påpeka jag är osäker på syntaxen, men något liknande borde få det att starta om om det skulle arbeta genom allt annat.

Länk till kommentar
Dela på andra webbplatser

Ollie Williams

Det verkar som att det räcker med att man kryssar i "Lämna öppet efter körhanteraren" när man sparar scripten så stängs inte scripten av.

 

 

 

Kollade mitt nu och upptäckte att det inte funkar längre. Har inte hunnit felsöka men jag antar att uppdateringar någonstans har ändrat förutsättningarna så att något behöver skrivas om. Men du löste ditt script ser jag.

 

Jag använde mig att Geektool för att aktivera/avaktivera mitt script.

Länk till kommentar
Dela på andra webbplatser

Nu har jag fått det att fungera.

Men när "config" är nedkopplad stängs även själva scripten ned.

Någon som vet hur man kan få scripten att köra trots att vpn-kopplingen är nere?

 

Tack på förhand.

 

tell application "Tunnelblick"

get state of configuration 1 whose name = "config"

if result = "connected" then repeat until result = "exiting"

delay 1

get state of configuration 1 whose name = "config"

end repeat

if result = "exiting" then

tell application "Safari"

quit

tell application "Opera"

quit

end tell

end tell

end if

return 1

end tell

Använd gärna kodblock när ni postar kod. Blir så mkt mer lättläst och man få även med indrag osv på rätt sätt. :crossfingers::yeahbaby:

 

post-64246-0-98112200-1408708712.png

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...