. Cum să definiți o activitate care nu va fi afișată în meniurile Start Task și Edit?
Apelați la această sarcină: CLASIC-SAMPLE - # - xxx.
În schimb xxx poate specifica orice caracter, altul decât un spațiu (de exemplu, CLASSIC-SARCINĂ - # - ABC D, CLASSIC-SARCINĂ - # - 123456 sau CLASSIC-SARCINĂ - # - my_task). Și dacă trebuie să executați sarcina "manuală", atunci o puteți face din linia de comandă:
Rețineți că informațiile despre executarea sarcinilor CLASSIC-Task - # - xxx nu sunt afișate în jurnalul nnCron. Dacă doriți ca aceste informații să fie prezente în jurnal - utilizați cuvintele LOG: sau CRON-LOG în corpul sarcinii.
. Cum pot să transmit argumente la sarcină din linia de comandă?
Acest lucru este posibil dacă executați sarcina cu comutatorul -runfile:
Tot ceea ce se află pe linia de comandă după numele fișierului executabil este considerat argument arbitrar și poate fi "citit" de constructul Fort W BLORD (un spațiu ca un "delimiter" în parsare). Iată un exemplu care afișează secvențial căsuțele cu toate argumentele găsite pe linia de comandă:
În plus, există un cuvânt în nnCrone get-string care face toate treburile murdare în timp ce „analiza“ argument: dacă șirul este înconjurat de ghilimele, argumentul este tot ceea ce este în interiorul ghilimele, iar dacă nu, la prima apariție a unui spațiu.
Puteți face același lucru pentru prima (1-7) și pentru a patra săptămână (22-28), dar pentru ultima săptămână nu funcționează în acest fel. Aici trebuie să fii mai înțelept. Dar ziua din luna este disponibilă (Ziua @), și ziua săptămânii (WDay @). Deci, puteți
Gândiți-vă cu complexitate arbitrară și nu uitați de OnceAWeek.
. Cum se afișează numele sarcinii care se efectuează și numele fișierului crontab, unde se află această sarcină?
Pentru a obține numele sarcinii din interiorul sarcinii în sine, utilizați cuvântul CUR-TASK-NAME (- a u).
. cum să afișați un mesaj cu textul și titlul dat?
Puteți controla nu numai textul și titlul mesajului, ci și pictograma mesajului și chiar numărul de butoane din mesaj. Pentru a face acest lucru, în loc de primul zero, "substitute" în exemplul de mai sus una dintre următoarele valori:
Funcția MessageBoxA returnează o valoare numerică prin care puteți determina care dintre butoanele apăsate de utilizator. Iată lista valorilor returnate:
. Cum se pornește sarcina numai după ce computerul pornește / repornește?
Soluția la această problemă este împărțită în două părți (necomplicate):
1) În primul rând, trebuie să creați un semn de fișier special după fiecare pornire a sistemului. Pentru aceasta, puteți, de exemplu, să introduceți o comandă rapidă în directorul Startup din următorul fișier bat:
2) Acum rămâne să scriem sarcina însăși:
Voila. Sarcina începe numai după ce sistemul pornește. Și, spre deosebire de sarcinile care rulează la START-TIME. Versiunea noastră începe să se execute imediat după ce computerul este pornit, fără a aștepta începutul minutei "noi".
Iată un alt mod: cuvântul GetTickCount pune în stivă timpul (în milisecunde) care a trecut de la pornirea sistemului. Deci, putem verifica acest timp și dacă este mai puțin de un minut sau două, atunci sistemul tocmai a început.
Pentru calculatoarele încetinite, timpul cu care comparăm GetTickCount. poate fi necesar să se mărească (90000 - 150000).
. Cum pot bloca temporar utilizatorul de la un mouse / tastatură?
De asemenea, rețineți că intrarea utilizatorului este blocată numai pentru durata sarcinii, de la care a fost apelat BlockTheInput. Imediat ce sarcina nu mai funcționează, intrarea utilizatorului este deblocată automat.
. cum să "comandați" nnCron să mențină un singur fișier jurnal și să nu creeze în fiecare zi unul nou?
Pentru a face acest lucru, trebuie să modificați valorile variabilelor Cronlog și (opțional) LogTimeFormat în nncron.ini:
Iată cum vor arăta informațiile din jurnal:
Apropo, un singur jurnal poate fi "tăiat" din când în când, folosind FILE-CROP :.
. cum se oprește programabil sarcina (de exemplu, în cazul unei erori)?
Utilizați cuvântul din miezul Fort EXIT. care este destinat să iasă din cuvântul actual. Poate fi folosit, deoarece Acțiunea: - Acesta este, de asemenea, un cuvânt Fort.
. cum să oprești o altă sarcină dintr-o singură sarcină?
. cum să aplicați programabil opțiunea NoActive la sarcină sau, dimpotrivă, să anulați acțiunea?
Din interiorul sarcinii:
De la o altă sarcină:
Rețineți că nu efectuați modificări fizice ale fișierului crontab utilizând opțiunea NoActive. Aceasta înseamnă că schimbați starea activității sarcinii numai până la următoarea reeditare crontab.
Cu ajutorul următoarelor cuvinte, puteți verifica dacă sarcina este setată la NoActive:
. cum să interceptezi și să rezolvi excepțiile care apar?
nnCron oferă în fiecare caz posibilitatea de a intercepta singure excepțiile și apoi să decidă "ce să facă cu ei".
Excepțiile sunt interceptate după cum urmează:
Prin urmare, într-o situație "aproape de luptă", această construcție va arăta astfel:
Puteți utiliza CATCH direct numai cu "postfix" cuvinte. Dacă trebuie să rezolvați excepția unui cuvânt prefix, atunci pe baza acestuia trebuie să creați un cuvânt nou.
Uneori, atunci când sarcina este mare și eroarea poate reveni la mai mulți operatori simultan, următorul truc vă ajută: am pus tot ce a fost în secțiunea Acțiune: într-un cuvânt nou și "păzit"-o cu CATCH.
. cum să decodați numerele de eroare de pe consola Fort, în fișierul jurnal și nncron.out?
24k). Descrierea erorilor din fișierul jurnal și nncron.out poate fi găsită în același fișier (număr de eroare).
. Cum de a re-codifica un șir de la codarea WIN la codarea OEM și invers?
Cuvintele "recoding" OemToCharBuffA și CharToOemBuffA sunt definite în kernelul nnCron. Iată cum să le convertiți:
Nicholas recomandă cu tărie să copiați șirul în tampon și să-l re-codați acolo (așa cum se arată în exemplu), în loc să transformați codificarea direct în locația unde este stocată linia.
. Cum pot schimba atributele fișierelor cu nnCron?
Suntem de părere că, în acest sens, se spune în WinAPI:
Deci, puteți face, de exemplu, astfel:
Aici este o decodare a constantelor pe care le puteți utiliza în loc de dwFileAttributes:
. cum să verificați starea pe o singură mașină și să efectuați sarcina pe alta? Desigur, pe ambele mașini din rețea care rulează pe nnCron'u.
Cel mai simplu este printr-un fișier intermediar creat pe o unitate de rețea publică.
În primul rând, puteți utiliza acest fișier ca steag - creați un fișier de la o singură mașină și urmați-l cu altul.
În al doilea rând, cu ajutorul unui astfel de fișier, este posibil să transferăm a doua copie a nnCron chiar și textul sarcinii care trebuie executată. Iată un exemplu. Într-o copie a nnCron vom crea un fișier numit remote_task.spf cu următorul conținut:
Iar la următoarea mașină se efectuează următoarea activitate:
Nu uitați, de asemenea, despre capacitatea de a rula o sarcină dintr-un fișier text utilizând comutatorul -runfile de comandă
Există cuvântul WIN-RECT. care returnează patru valori: coordonatele colțurilor din stânga sus și din dreapta jos ale ferestrei specificate. Ca argument, este nevoie de mâner fereastră a acestei ferestre. Deci, pentru a afla rezoluția ecranului, este suficient să aflați coordonatele ferestrei Managerului de programe: ultimele două valori vor corespunde rezoluției curente a ecranului.
. Cum pot goli programul Coș de reciclare programabil?
1. Creați un fișier clearbin.spf cu următorul conținut:
2. Definiți sarcina:
De ce asemenea dificultăți? Întrebare rezonabilă. Pentru a curăța corespunzător Coșul de reciclare, trebuie să încărcați profilul utilizatorului și fără a începe un proces separat, profilul nu se încarcă corect. Cu toate acestea, dacă utilizați Win9x, atunci această problemă nu vă privește - puteți apela direct în corpul sarcinii:
Aici, apropo, constantele, pe care le puteți folosi la curățarea coșului:
Pentru a face acest lucru, puteți defini un cuvânt special (de exemplu, FOUND-SHORTFILENAME) și îl puteți utiliza în buclă FOR-FILES:.
. cum să vă executați propria sarcină făcând dublu clic pe pictograma nnCron din tava de sistem?
Creați un cuvânt postfix (puteți accesa direct în nncron.ini):
și editați variabila în nncron.ini TrayIconDoubleClick.
. cum să vă creați propriul meniu, care ar apărea atunci când faceți clic dreapta pe pictograma nnCron din bara de sistem?
Pentru a face acest lucru, creați fișierul text menu.f din directorul nnCron și puneți următoarea definiție în el:
După aceea, editați nncron.ini după cum urmează:
Ca rezultat, veți obține un exemplu de meniu pop-up complet care va apărea când faceți clic dreapta pe pictograma nnCron din tava de sistem. Rețineți că elementul de meniu "implicit" este evidențiat cu caractere aldine și executat făcând dublu clic pe pictograma nnCron din tavă.
. Cum se pornește o sarcină utilizând comanda rapidă / scurtătură (* .lnk)?
Pentru a face acest lucru, utilizați opțiunea pentru linia de comandă -run
1) Creați o sarcină. Dezactivați-l dacă nu doriți ca sarcina să fie executată automat (NoActive):
2) Să începem crearea unei comenzi rapide / a unei comenzi rapide: faceți clic pe butonul din dreapta al mouse-ului din directorul dorit și selectați New - Shortcut. apoi specificați locația "nncron.exe" și editați puțin conținutul locației câmpului Articol.
Faceți clic pe Următorul și găsiți un nume potrivit pentru scurtătura noastră. Spuneți, test_task_shortcut. Faceți clic pe Finalizare.
3) Terminat! Rămâne să faceți dublu clic pe comanda rapidă creată doar pentru a începe sarcina test_task_shortcut.
. Cum se lansează programe utilizând comenzi rapide / comenzi rapide (* .lnk)?
. Cum pot să scanez directorul specificat cu toate fișierele și subdirectoarele?
Cea mai ușoară modalitate de a utiliza utilitarul nnBackup. care a fost scris special pentru sarcini similare:
Puteți, de exemplu, să faceți acest lucru (reporniți nnCron zilnic, la ora 11:59):
. care element al ferestrei active este indicatorul mouse-ului acum?
Pentru a face acest lucru, puteți trimite mesajul Windows window WM_NCHITTEST și examinați valoarea numerică rezultată. Iată o listă cu valori posibile:
Pentru a urmări clicul pe un element dat al ferestrei active, puteți utiliza pluginul keystate.spf. care vă permite să aflați dacă butonul mouse-ului este apăsat în prezent.
. Cum pot ascunde orice fereastră din tavă făcând clic pe butonul Minimizare cu butonul drept al mouse-ului?
În ecoul RU.NNCRON a sugerat această opțiune (nu uitați să conectați pluginurile keystate.spf și win2tray.spf):