Vraag


Acties:
  • 0 Henk 'm!

  • i-chat
  • Registratie: Maart 2005
  • Niet online
Hoi lieve mede-tweakers, ik heb al heel lang niet zoveel meer met windows gedaan en de taakplanner is dan ook niet mijn meest bezochtte stukje windows.

Allereerst: ik heb op android af en toe wel eens gebruik gemaakt van If this than that en soortgelijke oplossingen het handige van het opstellen van regels is me daarbij steeds goed bevallen.

<zodra> ik <connect met> "homeWIFI" <stuur dit commando>, <doe die actie> of <zet GPS uit> waren dingen die mijn android prima voor elkaar kreeg.

Maar nu: ik heb sinds een aantal dagen mijn dagelijkse pc (voornamelijk ubuntu) verruild voor een windows 10 based laptop. Deze ga ik voornamelijk voor scholings-doeleinden gebruiken maar de hardware blijkt ook krachtig genoeg om weer eens een spelletje te gaan spelen. daarbij komen apps als steam, en epicgames om de bocht.

deze 'game launchers bieden eigenlijk maar 2 opties: allways on, OF allways off

Het zou mijn een goed idee lijken om deze programma's niet standaard op te starten zodat de toch al magere batterij (4 a 5 uur maximaal) gespaard wordt, ik tijdens colleges niet gestoord wordt van de game update berichten etc etc.

Dit kan op 3 manieren worden opgelost:

1: 2 aparte profielen (accounts) waarbij steam bij het ene account mag starten en bij het andere niet.
Het voordeel hiervan is natuurlijk dat je tijdens het studeren niet aan games herinnerd wordt, het nadeel is dat je steeds moet wisselen van account vooral lastig als je tijdens het minecraften besluit toch even op dat mailtje van je docent te reageren en die bijlage nu in het verkeerde profiel is opgeslagen...

2 Game launchers gewoon nooit opstarten tenzij je wilt gaan gamen:
Dat klinkt opzich leuk, maar als je tussen het studeren in even wilt ontspannen (of afreageren), maar de game moet eerst nog 10 minuten downloads (updates) binnenhalen en installeren dan wordt het geen ontspannen meer en dat afreageren gebeurt dan wellicht door met je toetsenbord te gaan smijten??

3 Als derde (mogelijke) oplossing bedacht ik dat het misschien mogelijk zou zijn om een soort IF connected to HOMEWIFI and IF on ACPOWER than RUN gamelauchers.bat of beter gezegd: bij het inloggen / connecten met mijn thuis wifi, en allen wanneer er op ac-stroom wordt gewerkt wordt er een bat bestand gerund die alle nodige gamelauchers opstart ... op deze manier draaien die dus niet als ik niet thuis ben, of geen behoefte heb aan games maar tegelijk, updaten de games wel als ik wel thuis ben en heb ik daarmee de kleinere kans dat ik tegen ge-niet-updatedte games aanloop.

Ik ben daarom wat gaan googlen, en kwam het volgende tegen:

https://www.groovypost.co...-network-connection-drop/

er is op die website echter vrij weinig achtergrond informatie over wat dingen doen, en waar je meer en soortgelijke functies kunt aanspreken.

Ik wil jullie dus in eerste instantie vragen naar meer leesvoer of eventueel werkende voorbeelden van soortgelijke tasks. ik zit er namelijk niet helemaal op te wachten om op basis van slechts één voorbeeld te gaan ***** met iets dat ik niet goed (genoeg) begrijp.

Beste antwoord (via i-chat op 18-06-2020 20:41)


  • Djordjo
  • Registratie: Mei 2007
  • Niet online
i-chat schreef op donderdag 18 juni 2020 @ 16:25:
maar zodra ik de code verander in stukje 2.... (ongeacht de volgorde van de 2 netwerken *) dan werkt het niet meer en gaat er kennelijk iets verkeerd.
Als je onderaan je code "pause" tikt, dan kun je ook zien waaróm het niet werkt (vermoedelijk iets met haakjes).
pica schreef op donderdag 18 juni 2020 @ 16:36:
Ben geen programmeur, maar zo zou ik het doen :P
Ik ben ook geen programmeur, maar ik dacht meer aan FINDSTR /r "me.wifi she.wifi" ;)

Alle reacties


Acties:
  • 0 Henk 'm!

  • Djordjo
  • Registratie: Mei 2007
  • Niet online
Als je google't op "windows 10 task scheduler examples" vind je genoeg voorbeelden toch?

Acties:
  • 0 Henk 'm!

  • i-chat
  • Registratie: Maart 2005
  • Niet online
Ik ben inmiddels 'iets' verder want in de task-sceduler is er kennelijk gewoon een functie om dit gedaan te krijgen namelijk door een condition if connected to THIS / Any network ...

probleem is dat er kennelijk sinds enkele versies een bug is waarbij de task gewoon niet wil starten als je gebruik maakt van die functie (net enkele keren geprobeerd)

In deze thread op awnsers.microsoft.com wordt gesproken over een work-around maar dat werkt dan weer via een bat script.

Ik ga eens proberen of ik met dat script in de hand handmatig mijn netwerk connectie kan opvragen voor ik me aan zulke zaken waag.

Hopelijk is er toch ook nog ergens een fix te vinden zodat het binnen task-sceduler kan blijven....


edit:
update: script geprobeerd


in bovenstaande thread wordt een work-arround genoemd als een klein batchscript.
ik kan de logica ervan alleen niet helemaal volgen,


code:
1
2
3
4
5
6
7
8
9
10
11
REM Determine if connected to the network
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r MIJNWIFI
    SET "ConnectedToNetwork=True"
) ELSE (
    SET "ConnectedToNetwork=False"
)

REM Run tasks that require a connection to the server
IF %ConnectedToNetwork% == True (
    start notepad.exe 
)


Wat ik hier niet uit begrijp is de output van Netsh .... waar precies is dan de test
zou er niet zoiets als
if netsh ..... (set "contectedtonetwork =true" ) hebben moeten staan,

In other words: waarom lijkt dit niet te werken als ik de bat file run.

[ Voor 30% gewijzigd door i-chat op 16-06-2020 20:31 . Reden: updated na tests ]


Acties:
  • +1 Henk 'm!

  • Djordjo
  • Registratie: Mei 2007
  • Niet online
Je mist nog een if-statement tussen regel 2 en 3, waarschijnlijk iets als:
code:
1
IF %ERRORLEVEL% == 0 (

Acties:
  • 0 Henk 'm!

  • i-chat
  • Registratie: Maart 2005
  • Niet online
@Djordjo - Je had gelijk, met if %errorlevel% == true werkt de vergelijking. - waarvoor mijn dank..

Nu is er eigenlijk nog maar 1 ding over waarvan ik me afvraag of het haalbaar is

code:
1
2
3
4
5
6
7
8
9
10
11
12
REM Determine if connected to the network
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r  me.wifi
IF %ERRORLEVEL% == 0 (
    SET "imhome=True"
) ELSE (
    SET "imhome=False"
)

REM only run application if connected to home wifi
IF %imhome% == True (
    start notepad.exe
)


deze code gaat ervan uit dat er maar 1 valide netwerk is waarop notpad (mijn gamelauncher) moet starten
in werkelijkheid zijn het er 2.... namelijk bij mij thuis me.wifi en bij mijn vriendin; she.wifi

hoe pas ik de code aan zodat ik de check 2 kan runnen:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
REM Determine if connected to network me.wifi
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r  me.wifi
IF %ERRORLEVEL% == 0 (
    SET "imhome=True" ) 

ELSE (  REM Determine if connected to network she.wifi

            NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r she.wifi
             
                IF %ERRORLEVEL% == 0 (
                SET "imhome=True" ) 
                 
                ELSE (
                SET "imhome=False" )
)

REM only run application if at home
IF %imhome% == True (
    start notepad.exe
)


OF doe ik hier nu echt heel erg achterlijk?

[ Voor 2% gewijzigd door i-chat op 18-06-2020 12:04 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • Djordjo
  • Registratie: Mei 2007
  • Niet online
Misschien een goed idee om de volgende commando's uit te voeren op de command line, dan begrijp je een beetje wat er gebeurt:
code:
1
2
3
NETSH WLAN SHOW INTERFACE
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r  me.wifi

Met FINDSTR toon je dus alleen regels die een bepaald woord bevatten.
In jouw geval wil je dus zoeken op óf me.wifi of she.wifi. Dat kan met behulp van aanhalingstekens.

Acties:
  • 0 Henk 'm!

  • i-chat
  • Registratie: Maart 2005
  • Niet online
Ik heb die commando's inderdaad gebruikt, maar wat ik niet 'snap' is waarom het eerste stukje code (met 1 wifi naam ) wel werkt zowel op mijn wifi als de hare...

maar zodra ik de code verander in stukje 2.... (ongeacht de volgorde van de 2 netwerken *) dan werkt het niet meer en gaat er kennelijk iets verkeerd.


* ik heb dat getest aan de hand van omdraaien van de wifi namen in het 2e script.

Acties:
  • 0 Henk 'm!

  • pica
  • Registratie: Juni 2000
  • Laatst online: 30-05 13:55
code:
1
2
3
4
5
6
7
8
9
10
11
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r "me.wifi"
SET "imhome=False"
IF %ERRORLEVEL% == 0 (
    SET "imhome=True"
)
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r "she.wifi"
IF %ERRORLEVEL% == 0 (
    SET "imhome=True"
)
IF %imhome% == True (
    start notepad.exe


Ben geen programmeur, maar zo zou ik het doen :P

Steam


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Djordjo
  • Registratie: Mei 2007
  • Niet online
i-chat schreef op donderdag 18 juni 2020 @ 16:25:
maar zodra ik de code verander in stukje 2.... (ongeacht de volgorde van de 2 netwerken *) dan werkt het niet meer en gaat er kennelijk iets verkeerd.
Als je onderaan je code "pause" tikt, dan kun je ook zien waaróm het niet werkt (vermoedelijk iets met haakjes).
pica schreef op donderdag 18 juni 2020 @ 16:36:
Ben geen programmeur, maar zo zou ik het doen :P
Ik ben ook geen programmeur, maar ik dacht meer aan FINDSTR /r "me.wifi she.wifi" ;)

Acties:
  • +1 Henk 'm!

  • pica
  • Registratie: Juni 2000
  • Laatst online: 30-05 13:55
Ah, findstr pakt beide woorden als losse zoekopdrachten en niet als een enkele string, TIL

Steam


Acties:
  • 0 Henk 'm!

  • i-chat
  • Registratie: Maart 2005
  • Niet online
code:
1
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r "me.wifi she.wifi"


geeft (naar mijn idee best raar), het correcte antwoord namelijk (me.wifi)

tijd om te testen of notepad wil starten! update volgt

en de winnaar is:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
REM Determine if connected to the correct network
NETSH WLAN SHOW INTERFACE | FINDSTR /r SSID | FINDSTR /r "me.wifi she.wifi"
IF %ERRORLEVEL% == 0 (
    SET "imhome=True"
) ELSE (
    SET "imhome=False"
)

REM Run tasks that should on run on home network
IF %imhome% == True (
    start notepad.exe
)

pause

[ Voor 44% gewijzigd door i-chat op 18-06-2020 20:36 ]

Pagina: 1