Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] Jak działa poniższy skrypt

shark-wd 16 Sie 2018 12:39 255 7
  • #1 16 Sie 2018 12:39
    shark-wd
    Poziom 9  

    Jak w temacie. Nie programuję więc proszę o szczegółowy opis każdej komendy i czy można ją edytować/zmieniać odwołania do klawisza(?) (chodzi mi o NUMLOCK) lub zmienić klawisz...
    Wiem że jest tu pętla ale jak ona działa - nie mam pojęcia

    Dim objResult
    Set objShell = WScript.CreateObject("WScript.Shell")
    i = 0
    Do While i = 0
    objResult = objShell.sendkeys("{NUMLOCK}{NUMLOCK}")
    Wscript.Sleep (6000)
    Loop

    0 7
  • Pomocny post
    #2 16 Sie 2018 13:24
    peesek
    Poziom 13  

    1) Dim objResult
    2) Set objShell = WScript.CreateObject("WScript.Shell")
    3) i = 0
    4) Do While i = 0
    5) objResult = objShell.sendkeys("{NUMLOCK}{NUMLOCK}")
    6) Wscript.Sleep (6000)
    7) Loop


    1) Deklaracja zmiennej, przechowującej wynik polecenia sendkeys.
    2) Inicjalizacja obiektu.
    3) Przypisanie zmiennej i wartości 0
    4) Warunek - "Rób dopóki i=0" - ta pętla nigdy się nie kończy, gdyż zmienna i zawsze będzie miała wartość 0.
    5) Wysłanie komendy PowerShell - dwukrotnie naciśnij przycisk Numlock. Klawisz oczywiście można zmienić - proszę: https://social.technet.microsoft.com/wiki/con...s/articles/5169.vbscript-sendkeys-method.aspx
    6) Śpij czyli nie rób nic przez 6000 milisekund czyli 6 sekund.
    7) Zamknięcie pętli (instrukcje między "Do" a "Loop" będą powtarzane w nieskończoność co 6 sekund.

    Jeśli coś pomyliłem proszę o poprawkę.

    0
  • Pomocny post
    #3 16 Sie 2018 14:29
    clubs
    Poziom 31  

    peesek napisał:
    4) Warunek - "Rób dopóki i=0" - ta pętla nigdy się nie kończy, gdyż zmienna i zawsze będzie miała wartość 0.
    5) Wysłanie komendy PowerShell - dwukrotnie naciśnij przycisk Numlock. Klawisz oczywiście można zmienić
    .
    4. Tak jak kolega wyżej pisał
    5. Tu też nic nie wyśle tylko przypisze to do zmiennej objResult

    0
  • Pomocny post
    #4 16 Sie 2018 14:42
    peesek
    Poziom 13  

    clubs napisał:
    peesek napisał:
    4) Warunek - "Rób dopóki i=0" - ta pętla nigdy się nie kończy, gdyż zmienna i zawsze będzie miała wartość 0.
    5) Wysłanie komendy PowerShell - dwukrotnie naciśnij przycisk Numlock. Klawisz oczywiście można zmienić
    .
    4. Ta pętla nigdy nie ruszy bo od razu jest 0 (czyli warunek spełniony)
    5. Tu też nic nie wyśle tylko przypisze to do zmiennej objResult


    Fakt źle spojrzałem. To jest "do while", a nie "while do" :)

    W takim razie
    4) Pętla wykona się tylko raz, gdyż warunek sprawdzany jest po pierwszym wykonaniu instrukcji.

    0
  • Pomocny post
    #5 16 Sie 2018 15:18
    PRL
    Poziom 33  

    @clubs, trochę inaczej, aniżeli napisałeś.
    Pętla będzie się wykonywać dopóki zmienna 'i' jest równa zero, a więc w powyższym kodzie - do zatrzymania przez użytkownika.

    Do Autora: to taki prymitywny wirus, który mruga diodą 'num lock'.

    0
  • Pomocny post
    #6 16 Sie 2018 16:08
    clubs
    Poziom 31  

    PRL napisał:
    @clubs, trochę inaczej, aniżeli napisałeś.
    Pętla będzie się wykonywać dopóki zmienna 'i' jest równa zero, a więc w powyższym kodzie - do zatrzymania przez użytkownika.

    Tak racja zapętlona pętla (pomyłka z untilem)

    ps dawno kolegi @PRL nie było

    0
  • Pomocny post
    #7 17 Sie 2018 07:47
    peesek
    Poziom 13  

    Żeby rozwiać wszelkie wątpliwości.

    Uruchomiłem ten kod na komputerze

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Wynik
    Jak działa poniższy skrypt

    Co 6 sekund wykonanie pętli bez końca.

    0
  • #8 20 Sie 2018 12:50
    shark-wd
    Poziom 9  

    Dziękuje wszystkim za odpowiedź.
    Ta pętla jest wykorzystana w komputerze służbowym podpiętym do domeny. Problem polega na tym, że mam ustaloną zasadę grupy o blokowaniu ekranu po 8 min gdy nie używam klawiszy albo myszki (przy moim stanowisku jest to zbyteczne i wręcz irytujące tym bardziej, że czas jest krótki). Ktoś napisał ten skrypt po to żeby się komputer nie blokował. ale chciałem wiedzieć jak działa i czy można zmienić klawisze lub zmienić na pętlę skończoną.
    Pozdrawiam wszystkich
    Sharky

    0
  Szukaj w 5mln produktów