Zobrazují se příspěvky se štítkemIE. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemIE. Zobrazit všechny příspěvky

čtvrtek 28. ledna 2010

Uložení záložek z IE7

[EN: Autotranslation]

Poslední dobou se na konci každého pracovního dne probírám otevřenými záložkami v Internet Exploreru a říkám si, kdy to asi budu číst. Většinou přes den otvírám všechno, co mi přijde zajímavé (což jsou pro mne na Twitteru všechny zprávy o PowerShellu :) a pak nestíhám všechno přes den číst. Proto jsem začal používat Evernote a nepřečtené stránky si synchronizuji, abych si je přečetl večer doma. Jelikož jsem vždy ručně kopíroval všechny adresy, nebylo to zrovna pohodlné a rychlé. Rozhodl jsem se, že si tedy udělám skript, který mi všechny otevřené stránky do Evernote klienta nahraje.

Nejprve jsem si myslel, že budu každou instanci IE spouštět z PowerShellu a na konci dne prostě projdu všechny záložky. Což jsem samozřejmě zavrhl okamžitě (vzhledem k množství oken otevíraných externími aplikacemi). Začal jsem brouzdat a objevil příspěvek na Stack Overflow. Celé řešení využívalo COM Shell.Application, který jsem následně využil.

Nejprve jsem jako součást skriptu přidal i možnost exportu do Evernote. Pak jsem ale podlehl (správné :) myšlence na modularitu a pro export vytvořil novou funkci Export-Evernote. Tak můžu v rouře volat libovolný cmdlet a výsledky si číst doma.

Celá funkce tedy vypadá následovně:

function Export-IETabName {

$(
New-Object -Com 'Shell.Application').Windows() |
? {
$_.Name -eq 'Windows Internet Explorer' } |
? {
$_.LocationURL -notlike 'https://remedy*' } |
Select LocationName, LocationURL

}
# function Export-IETabName

Ze všech objektů, které vrátí metoda Windows(), vyberu instance Internet Exploreru, vyfiltruji záložky obsahující stránky, které doma číst nechci (zde Remedy) a dále posílám pouze jméno stránky a její adresu. Před odchodem, tedy mohu použít následující kód

PS C:\> Export-IETabName | Export-Evernote -Sync


a poté mohu s klidem vypnout počítač a odejít.