Vraag


  • 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


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

  • 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:
  • +1Henk '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 (

  • 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]


  • 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.

  • 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.

  • pica
  • Registratie: Juni 2000
  • Laatst online: 29-09 17:11
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
  • +1Henk '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" ;)

  • pica
  • Registratie: Juni 2000
  • Laatst online: 29-09 17:11
Ah, findstr pakt beide woorden als losse zoekopdrachten en niet als een enkele string, TIL

Steam


  • 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



Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee