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

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

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.

Redigerad av gant

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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.

Dela detta inlägg


Länk till inlägg
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

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
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.

Redigerad av gant

Dela detta inlägg


Länk till inlägg
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.

 

 

 

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.

Dela detta inlägg


Länk till inlägg
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

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...