Cum se configurează smartphone-uri și PC-uri. Portal de informare
  • Acasă
  • Sfat
  • Crearea propriilor gadgeturi. Comentarii (7) la „Gadgete pentru desktop”

Crearea propriilor gadgeturi. Comentarii (7) la „Gadgete pentru desktop”

Gadgeturile desktop nu sunt nimic nou în lumea Windows. Ele au fost observate pentru prima dată în Vista, unde erau amplasate pe panoul lateral. Chiar dacă ideea în sine a fost bună, nu a fost un mare succes. Odată cu apariția lui 7, Microsoft a reproiectat ușor acest element. Cu această instrucțiune veți învăța, precum și cum să le configurați pentru o operare convenabilă.

Descărcați arhiva cu fișierul gadget. Dezarhivați-l în orice folder. ÎN formă terminată(gadget). Faceți dublu clic pe fișier cu butonul din stânga, se va deschide o fereastră în care faceți clic pe butonul „instalare”. După instalare, gadgetul va apărea imediat pe desktop.

Există o opțiune mai puțin utilizată cu care nu are sens să pierdeți timpul. Trebuie să descărcați arhiva fișierelor gadgetului în sine și apoi să aruncați elementele extrase într-un folder specific, care durează mult timp pentru a ajunge. Prin urmare, nu o vom lua în considerare.

Notă: descărcați numai din surse de încredere pentru a nu vă deteriora Windows 7.

Unde găsiți gadgeturi

În primul rând, trebuie să accesați panoul de control al gadgeturilor. Există două moduri de a face acest lucru:

2. Faceți clic clic dreapta mouse-ul pe spatiu gol desktop și selectați „gadgets” din meniul drop-down. În opinia mea, aceasta este o modalitate ușoară și convenabilă.

Fereastra de colecție va afișa o listă de gadgeturi instalate. De Windows implicit 7 are următoarele:

  • Windows Media Centru
  • Valută
  • Puzzle
  • Titluri de știri ale canalului web
  • Indicator CPU
  • Calendaristic
  • Vreme
  • Prezentare de diapozitive
  • Cum să activați și să dezactivați gadgeturile

    Pentru a instala un gadget, faceți dublu clic pe el cu butonul din stânga și acesta va fi activat într-o fracțiune de secundă. De asemenea, îl puteți selecta și trage pe desktop în locația dorită.

    Dacă doriți să eliminați un obiect gadget, indicați spre el. După care mai multe butoane vor apărea în dreapta acestuia. Faceți clic pe crucea albă cu fundal roșu, iar gadgetul va dispărea de pe desktop.

    Cum să configurați și să mutați gadgeturi

    Ele pot fi personalizate și personalizate în diferite moduri. Mai jos, voi încerca să rezum toate elementele care pot fi instalate și configurate:

    1. Măriți dimensiunea gadgeturilor - vă permite să măriți dimensiunea acestora pentru o mai bună percepție a informațiilor. Dacă acest lucru este posibil, atunci când treceți cu mouse-ul peste meniu, ar trebui să existe un pătrat cu o săgeată în dreapta, așa cum se arată în captura de ecran de mai jos. Faceți clic pe el și veți vedea cât de mult a avut loc creșterea. Dacă vrei ca gadgetul să fie dimensiuni standard, trebuie să faceți clic pe același buton (acum săgeata va fi direcționată către pătrat).

    2. Ascundeți sau afișați toate gadgeturile - există o modalitate de a le scăpa de toate odată. Faceți clic dreapta pe o zonă goală a desktopului, indicați spre „vizualizare”, apoi faceți clic pe „afișați gadgeturi desktop”. Pentru ca toate să fie afișate ca înainte, faceți clic din nou, acest lucru va fi indicat printr-o casetă bifată în dreptul numelui opțiunii.

    Dacă credeți că gadgeturile vor funcționa fundal Windows 7, te înșeli. Procesul din managerul de activități care este responsabil pentru acest lucru se numește „sidebar.exe”. Odată ce le ascundeți pe toate, procesul va dispărea și invers.

    3. Afișare deasupra tuturor ferestrelor - un număr de gadget-uri trebuie să fie întotdeauna la vedere. Selectați-l pe cel de care aveți nevoie și faceți clic dreapta pe el. În meniul care se deschide, trebuie să bifați caseta de pe linia „pe deasupra altor ferestre”.

    4. Nivel de transparență – faceți clic dreapta pe gadget, apoi indicați spre „opacitate” și selectați un număr procentual. Dacă setați procentul mai mic, transparența va fi mai vizibilă.

    5. Comutați între gadgeturile active - pentru a face acest lucru, țineți apăsată tasta cu pictograma Windows, și apăsați G de pe tastatură, cu fiecare clic pe care veți trece de la unul la altul.

    Dacă treceți mouse-ul peste butonul „Restrângeți toate ferestrele”, care se află pe bara de activități, atunci vor fi afișate toate gadgeturile active.

    Cum să eliminați un gadget

    Pentru această procedură există mai multe foarte pași simpli. Deschideți colecția de gadgeturi și selectați un articol. Apoi faceți clic dreapta și faceți clic pe „Ștergeți”. După care veți vedea un avertisment cu care trebuie să fiți de acord.

    Acum devine din ce în ce mai clar Cum se instalează gadgeturi pentru Windows 7. În comparație cu Vista, dezvoltatorii au avut grijă de flexibilitatea utilizării. Acum nu mai trebuie să plasați elemente în panoul din dreapta sau din stânga. Aveți posibilitatea de a plasa gadgeturi oriunde pe desktop, astfel încât să fie mai confortabil la lucru.

    Recent am avut nevoie să creez un gadget pentru Windows Sidebar. Nu aveam abilități în acest sens, așa că după ce am căutat puțin pe Google și am citit documentația, să începem.

    Îți voi arăta imediat cu ce am ajuns.


    Gadgetul va primi informații de pe site în formular xml, analizați și, de fapt, afișați. Gadgetul va verifica, de asemenea, dacă există versiuni noi și, dacă sunt prezente, refuză să funcționeze :)
    Inițial, de dragul de a câștiga experiență, am vrut să scriu un gadget în întregime în VBScript (din moment ce nu mă ocupasem încă de el), dar până la urmă a trebuit să fac inserții în JavaScript.
    Să trecem direct la cod. Nu voi trece în revistă întregul cod aici, voi arăta doar punctele principale. Linkul către gadgetul finit este la sfârșitul articolului.
    Fișierul principal al unui gadget este manifestul acestuia – fișierul Gadget.xml. Ar trebui să fie numit exact așa și situat în rădăcina arhivei noastre (gadget-ul nu este altceva decât Arhiva ZIP cu extensia .gadget).

    Vremea de la Info.Denms.Ru 1.0.1232 Full Widget pentru vreme(Info.Denms.Ru)

    Să ne uităm la asta mai detaliat.
    Elementul trebuie să conțină o apiVersion egală cu 1.0.0 (at în acest moment), precum și atributul src, care specifică fisierul principal gadgetul nostru;
    Permisiuni pentru gadget. Set egal cu full;
    Versiunea minimă a barei laterale Windows. În prezent – ​​1.0;
    Parametri - numele gadgetului, - versiunea, - informații despre autor, - link către pagina cu gadgetul, - pictograma gadgetului și vor fi afișate pe panoul gadgeturilor instalate.

    Fișierul main.html este normal fișier html, nu o voi da în întregime, mă voi opri doar asupra unor puncte.
    Elementul g:background este folosit pentru a seta fundalul gadgetului. Să-l facem transparent.

    Gadgetul poate fi în două stări – andocat (în partea stângă a ecranului de mai sus) și dezactivat (în dreapta). Vom stoca starea actuală gadget în variabilă JavaScript andocat.

    Vom avea nevoie de funcția de wrapper isDocked în viitor pentru a afla starea actuală a gadgetului din VBScript (indiferent cât de mult am încercat, nu am putut implementa acest lucru în VBScript pur). Încă o notă - scripturile funcționează corect în această ordine, adică. Mai întâi descriem scripturile VBScript, apoi JavaScript.

    Elementele rămase în main.html sunt prezentate elemente DIV cu poziţionare absolută. Ulterior, din scripturi le vom accesa prin id-ul lor.

    CU folosind JavaScript haideți să setăm stările de andocare și dezaodata pentru gadget și, de asemenea, să specificăm fișierul de setări (main.js)

    System.Gadget.onDock = redimensionare; System.Gadget.onUndock = redimensionare; System.Gadget.settingsUI = "settings.html"; System.Gadget.onSettingsClosed = SettingsClosed; andocat=0; //starea inițială a gadgetului resize(); //inițializare

    După cum puteți vedea din lista de mai sus, atunci când stările gadgetului se schimbă, funcția resize() va fi apelată.

    Funcția resize() ( bd = document.body.style; System.Gadget.beginTransition(); if (System.Gadget.docked) ( // stare mică bd.width=148; // setați dimensiunea gadgetului bd.height= 201 ; docked = 1 bd.background="url(images/gadget.png) no-repeat" //setează fundalul //apoi urmărește transferul de valori de la starea de andocare și repunerea la zero a elementelor; starea dezactivată document.getElementById("small_needupdate ").innerHTML = document.getElementById("big_needupdate").innerHTML document.getElementById("big_needupdate").innerHTML = "" //... ) else ( // big state bd.width=230; bd.background="url(images/gadgeth.png) no-repeat"; state document.getElementById("big_needupdate") innerHTML = document.getElementById("small_needupdate").innerHTML document.getElementById("small_needupdate").innerHTML = "" //... ) System.Gadget.ystemTransition; .Gadget.TransitionType.morph,1); )

    De asemenea, puteți descrie funcția de salvare a setărilor. Gadgetul meu nu le are, dar, ca exemplu, vă voi arăta cum se face.

    Funcție SettingsClosed(eveniment) ( dacă (event.closeAction == event.Action.commit) ( //alertă System.Gadget.Settings.readString("test"); ) )

    ReadString – citește un șir salvat anterior, writeString, respectiv scrie.
    Metode System.Gadget.beginTransition(); și System.Gadget.endTransition(); necesare pentru redimensionarea „netedă” a gadgetului. Sunt ignorate în Windows Seven, dar le-am lăsat totuși pentru compatibilitate cu versiunea anterioară.

    După cum am menționat mai sus, serverul ne oferă informații despre vreme în format xml.

    1,7 41 ninsoare noros 87 Sud-Vest 5 -3 -1 -1 26 1 -9 41 0 …

    Vom descărca și analiza xml folosind VBScript.

    Sub DownloadXML2 Set objXML = CreateObject("Microsoft.XmlHttp") objXML.Open "GET", "http://info.kovonet.ru/weather.xml", True objXML.OnReadyStateChange = GetRef("objXML_onreadystatechange") objXML_onreadystatechange) objXML.setRequest „If-Modified-Since”, „Sam, 1 Jan 2000 00:00:00 GMT” objXML.Send iTimeoutID = window.SetTimeout(„mySleep”, 1000) End Sub

    Funcția mySleep va verifica conexiunea noastră pentru un timeout.

    Sub mySleep dacă bRespReceived = „fals”, apoi „răspunsul nu a fost încă primit iTimeout = iTimeout + 1 dacă (iTimeout > 30) apoi „timeout timerFirstRun = window.SetTimeout(”Update”, 60000) „încercați să reactualizați în alt minut "timeout încă nu a fost atins, continuați să numărați secundele iTimeoutID = window.SetTimeout("mySleep", 1000) end if end if End Sub

    Dacă descărcarea are succes, objXML.readyState va fi egal cu patru, iar status (objXML.status) va returna valoarea 200.

    Funcția objXML_onreadystatechange() If (objXML.readyState = 4) Then "msgbox objXML.statusText If (objXML.status = 200) Then bRespReceived=true SaveFile(objXML.responseText) else =(timerFirSet00", "Timer" timer) încercați să actualizați din nou într-un minut Funcția End If End If End

    În acest caz, salvați fișierul într-un folder temporar Windows

    Funcție SaveFile(what) Set fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.GetSpecialFolder(2) filepath = tempFolder+"\weather.xml" Dim fso1, tf Set fso1 = CreateObject("Scripting.FileSystemfObject") = fso1.CreateTextFile(filepath, True, True) "rewrite, unicode tf.Write(what) tf.Close ParseXML End Function

    Și începem să analizăm fișierul.

    Sub ParseXML Set fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.GetSpecialFolder(2) filepath = tempFolder+"\weather.xml" Set xmlDoc = CreateObject("Msxml2.DOMDocument") xmlDoc.async="Docfalse" xml. load(filepath) "principal node - în cazul nostru Set currNode = xmlDoc.documentElement "zile ale săptămânii - Set dayNode = currNode.firstChild When Not dayNode Is Nothing Set currNode = dayNode.firstChild While Not currNode Este Nimic dacă currNode.parentNode. getAttribute( "id") = "azi" apoi "azi dacă currNode.nodeName = "temp", apoi document.getElementById(prefix+"maintemp").innerHTML = currNode.childNodes(0).text+Chr(176) "afișează elementele rămase Altfel „nu astăzi, afișați mai fin”... end If Set currNode = currNode.nextSibling Wend Set dayNode = dayNode.nextSibling Wend End Sub

    Verificarea versiunilor noi se face exact în același mod.
    Nu uitați să creați un fișier de setări - settings.html, a cărui existență am anunțat-o mai sus.

    Setări

    Asta e tot, de fapt. M-as bucura daca articolul meu (primul :)) ar fi de folos cuiva.

    Surse folosite.

    Poate fi ajustat. Dacă opacitatea unui obiect gadget este mai mică de 100%, acesta devine complet opac la trecerea cu mouse-ul. S-ar părea că astfel poți face gadgetul complet invizibil, astfel încât să apară doar atunci când treci cursorul. Problema este că nu există o valoare a opacității 0% pentru gadgeturi. Cu toate acestea, este foarte posibil să vă faceți gadgetul complet transparent, iar în acest articol vă voi spune exact cum.

    Adăugarea de gadgeturi pe desktop

    În cazul în care nu ați folosit încă gadgeturi, vă voi explica cum să le adăugați pe desktop. Pentru a face vizibile toate gadgeturile, faceți clic dreapta pe tabel și selectați Vizualizare | Afișați gadgeturi desktop” (Vizualizare | Afișare gadgeturi desktop, Fig. A).

    Figura A. Aceasta singura cale activați/dezactivați gadgeturile. În loc să faceți gadgeturile complet transparente, le puteți ascunde pe toate folosind această opțiune.

    Pentru a adăuga gadgeturi pe desktop, faceți clic dreapta pe el și selectați opțiunea „Gadgeturi”. Va apărea o nouă fereastră (Figura B) din care gadgeturile pot fi trase pe desktop.


    Figura B. Nu aveți gadgetul de care aveți nevoie? Faceți clic pe linkul „Obțineți mai multe gadgeturi online”.

    În Galerie Windows Live sunt prezentate sute de gadgeturi. Înainte de a instala gadget-uri descărcate de pe Internet pe desktop, asigurați-vă că le scanați cu un antivirus - deși sunt postate pe resursa oficială, acest lucru nu garantează siguranța lor.

    Pentru a schimba transparența unui gadget, faceți clic dreapta pe el și selectați „Opacitate | X%" (Opacitate | X%), unde X - valoare numerică(Figura C).


    Figura C. De ce Dezvoltatorii Microsoft Nu au oferit posibilitatea de a face gadgeturi complet transparente, ceea ce rămâne un mister pentru mine. Din fericire, această problemă poate fi rezolvată.

    Setări

    Acum să vedem cum să facem gadgeturile complet transparente. Faceți clic pe gadgetul necesar Faceți clic dreapta și acordați-i o valoare Opacitate de 20%. După aceasta, faceți următoarele:

    Pasul unu. Finalizați lucrarea secundară Panouri de ferestre

    Pasul doi.

    Găsiți fișierul de setări pentru gadgeturi desktop „Settings.ini”. De obicei, este stocat în folderul „C:\Users\(username)\AppData\Local\Microsoft\WindowsSidebar\” (“C:\Users\(username)\AppData\Local\Microsoft\WindowsSidebar\” pentru interfața engleză ). Deschideți acest fișier în Notepad, găsiți linia „PrivateSetting_GadgetOpacity="(20)” și înlocuiți „20” cu „1”. Ar trebui să arate astfel: „PrivateSetting_GadgetOpacity="(1)””. După aceea, salvați modificările și închideți Notepad.

    Pasul trei.

    Acum rulați din nou procesul responsabil pentru afișarea gadgeturilor. Pentru a face acest lucru, tastați „sidebar.exe” (fără ghilimele) în bara de căutare a meniului Start și faceți clic pe . Toate gadgeturile vor apărea pe desktop, cu excepția celui pentru care valoarea opacității a fost setată la 20%. Dar, de fapt, nu a dispărut: mutați cursorul acolo unde ar trebui plasat acest gadget și va deveni imediat vizibil. Sarcina a fost rezolvată!

    Puteți ascunde toate celelalte gadgeturi în același mod. Nu uitați să setați fiecare dintre ele la 20% opacitate și asigurați-vă că ieșiți din procesul „sidebar.exe” pentru a edita fișierul de setări, apoi rulați-l din nou.

    În concluzie Îmi plac foarte mult mini-aplicațiile și Aspectul ferestrei principale nu este diferit de aspectul oricărei alte pagini web. În plus, ni se oferă câteva etichete exclusiv gadget. Pentru a seta fundalul gadgetului, utilizați eticheta g:background. Orice conținut postat pe
    < g:background id ="background" style opacity ="0" >

    acest element va fi fundal pentru întreaga fereastră principală. Nu am făcut-o

    fundal

    < div id ="status" >< a a >
    < div id ="content" >
    < ul id ="serverList" >



    gadget, folosind parametrul opacitate=“0” fundalul a devenit complet transparent. Corpul paginii este destul de simplu; div-ul de sus servește la afișarea stării gadgetului, vă permite să vedeți câte minute au mai rămas înainte ca datele să fie actualizate și, de asemenea, acceptă actualizarea manuală. Div-ul de jos va conține o listă de servere. Toate stilurile, JavaScript sunt mutate în
    < html >
    < head >
    < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
    < link rel ="stylesheet" type ="text/css" href ="./style/gadget.css" />
    < script type ="text/javascript" src ="./js/jquery-1.3.2.min.js" >


    < body onload ="startMonitoring()" >
    < g:background id ="background" style ="position:absolute;z-index:-1;top:0;left:0;" opacity ="0" >
    < div id ="status" >< a a >
    < div id ="content" >
    < ul id ="serverList" >





    fișiere externe
    . Pentru comoditate, a fost inclusă biblioteca jQuery. Întregul aspect al ferestrei principale este mic.
    {
    În CSS, am vrut să fiu atent doar la stilurile care descriu culoarea celulei serverului, în funcție de starea acesteia.
    }
    ul#serverList li.busyLight
    {
    fundal : #fefe8c ;
    }
    ul#serverList li.busy
    {
    fundal: #ffb154;
    }
    ul#serverList li.free
    {
    fundal : #d2e582 ;
    }
    The Dark Side, Luke Cel mai important fișier este JavaScript. Permiteți-mi să fac o rezervare imediat: alertează și confirmă că nu funcționează în gadgeturi. Pentru a depana gadgetul, puteți utiliza Visual Studio, dar pentru aceasta trebuie să efectuați doi pași dificili. În primul rând, activați depanatorul JavaScript în Internet Explorer

    Adaugă la la locul potrivit linie de cod gadget:


    și reporniți gadgetul.

    Declarăm două variabile globale care sunt responsabile pentru timpul în minute pentru actualizarea datelor din gadget, pentru mine optim 30 de minute, precum și un numărător invers pentru minutele rămase până la actualizare

    var updateInterval = 30;
    var updateMinutes = updateInterval;


    Funcția init conține acțiuni pentru a inițializa gadgetul, trebuie în acest caz, A fost necesar să setați transparența gadgetului la 40%, astfel încât să nu acopere complet o bucată de desktop.
    funcția init() (
    System.Gadget.Settings.write("PrivateSetting_GadgetOpacity" , 40);
    }

    Funcția de lansare a monitorizării în sine, care actualizează lista de servere cu starea lor, setează intervalul de actualizare a datelor, cronometrul în fereastra principală și, de asemenea, adaugă un handler de evenimente pentru actualizare manuală starea serverului.
    funcția startMonitoring() (
    init();

    UpdateList();
    setInterval(updateList, updateInterval * 1000 * 60);
    setInterval(updateTimer, 1000 * 60);

    StatusLink.onclick = function() (
    updateList();
    }
    }


    În acest caz, adăugarea unui handler de clic are loc în două moduri:
    element.onclick = funcție ()()
    $(element).get(0).onclick = function ()()

    Metodele avansate din gadgeturi nu funcționează:
    element.attachEvent("onclick", funcția ()())
    $(element).bind(„clic”, funcția ()())

    Pentru a actualiza cronometrul în sine, o mică funcție updateTimer, care calculează în fiecare minut cât timp a mai rămas înainte de actualizare.
    funcția updateTimer() (
    updateMinutes = updateMinutes == 0 ? updateInterval: updateMinutes - 1;
    $("#statusLink" ).html("Actualizare în " + updateMinutes + " m." );
    }

    Și, în sfârșit, actualizând lista de servere, pentru datele returnate pe care le folosesc JSON, răspunsul arată cam așa:
    [ ( "ip": "***.45.**.60" , "lastHitTime": "2009-09-06 00:07:24" , "runningTasks": "1" ) ]
    Pentru a obține datele în sine - getJSON. Puteți folosi și AJAX, funcționează grozav în gadgeturi. În primul rând, folosind getJSON putem depana codul în browser fără a-l adăuga la gadget AJAX nu ne va permite să facem acest lucru. În funcție de încărcarea serverului, pictez celula medii diferite. Pot fi doar două sarcini efectuate simultan, nu sunt suficiente, dar fiecare dintre ele durează 1,5-2 ore pentru a fi finalizate. Asemenea verificare suplimentară, cu cât timp în urmă a răspuns serverul.
    );
    lista = "" ;

    $.getJSON("https://mysite.com/getServerStatus.php" , funcție (json) (
    $.each(json, funcția (i, server) (
    stare = "" ;
    dacă (server.runningTasks == 0) (
    status = "liber" ;
    ) else if (server. runningTasks == 1) (
    status = "busyLight" ;
    ) else if (server. runningTasks == 2) (
    stare = "ocupat" ;
    }
    hit = data noua(server.lastHitTime);
    acum = data noua();

    dacă (now.getTime() - hit.getTime() >= 1000 * 60 * 60 * 3 + 1000 * 120) (
    stare = "jos" ;
    }
    lista += "

  • „+server.ip+”
  • " ;
    });
    $("#serverList" ).html(listă);
    });
    $("#statusLink" ).html("Actualizat" );
    }


    Codul este gata de utilizare, au mai rămas doar câteva valuri ale baghetei magice. Împachetăm toate fișierele de proiect într-o arhivă zip.

    Și adăugați gadgetul în sistem încercând să deschideți fișierul monitoringS.gadget

    Voila, avem un gadget îngrijit și modest cu o listă de servere. Exemplu cu 100% și 40% transparență.

    Sunt sigur că fiecare dintre noi are sarcini și probleme similare, așa că de ce să nu le facem mai frumoase și mai convenabile?

    Cele mai bune articole pe această temă