Thursday, May 26, 2011

Windows 7のフォント置き換え

ClearTypeとメイリオの組合せは大変見やすくて良いのだが、MSゴシックが未だに結構使われていて、コレを完全にメイリオに置き換えたい。XPでは簡単にできた偽装MSゴシックをWindows7でも行えるそうなので、そのコピペ。

管理者権限で立ち上げたコマンドプロンプトから順番に実行する。

takeown /F %WINDIR%\Fonts\msgothic.ttc /A

icacls %WINDIR%\Fonts\msgothic.ttc /grant Administrators:F

move %WINDIR%\Fonts\msgothic.ttc C:\

偽装フォントをインストールする。

Friday, March 25, 2011

Windows GadgetでGoogleカレンダを表示したい

Windows GadgetでGoogleカレンダを表示したいのだが、なかなかシックリくるものがない。色々試した結果、GadgetではないがRainlendar Liteというのが良い感じである。しかしフリーウエアだとGoogleカレンダと同期する機能がない。10ユーロ払おうか迷っていたが、どうやらiCalendar形式のicsファイルをローカルには見に行ってくれるようだ。Googleカレンダにはics形式で出力する機能があり、カレンダの設定の"Private Address"からicsファイルのパスをコピー出来る。そこで、icsファイルをGoogleカレンダから定期的にダウンロードするスクリプトを書こうと思い立った(時間の浪費の始まり)。


opensslを含めてwin32用にコンパイルしているwgetのバイナリを探しだし、コマンドプロンプトで

wget https://www.google.com/省略/basic.ics --no-check-certificate

としたところ確かにicsファイルがダウンロードされる。

よしよしと思いつつbatファイルを書いてみるが、何故かダウンロード出来ない。

icsファイルの長いダウンロードパスの中にusername%40gmail.comという部分があるが、batファイルから実行すると、どうしても%4が抜け落ちてusername0gmail.comになってしまう。エンコードの問題かと思い、ansiやらutf-8やら試してみるが解決せず。

何でか分からないがbatファイルの中でusername%%40gmail.comとしたらusername%40gmail.comとしてコマンドプロンプトに表示された。

これを踏まえて以下のbatファイルを作成。

cd C:\Users\username
wget https://省略1/basic.ics --no-check-certificate
ping localhost -n 5 > nul
del user1.ics
ren basic.ics user1.ics
wget https://省略2/basic.ics --no-check-certificate
ping localhost -n 5 > nul
del user2.ics
ren basic.ics user2.ics

2回ダウンロードしているのは、Googleカレンダが2つあるため。ただしファイル名がどちらもbasic.icsとなってしまうので、ファイル名を書き換えている。pingは、ダウンロードする間スクリプトにwaitをかけるためのもの。後はこれをTask Schedulerから5分ごとに実行させるだけだが…


5分ごとにコマンドプロンプトが出てきて非常に鬱陶しい。

Google様に聞いて見たところ、vbsから以下の様にbatファイルを実行すると良いそうな。

CreateObject("WScript.Shell").Run "C:\Users\username\getGoogleCalendar.bat",0

そして、icsファイルの場所をRainlendarから指定し、"monitor changes"をチェックするとうまくいきました。

ここまでの作業時間3時間。10ユーロの方が遙かにお得。しかし、1つ賢くなったので良しとしよう。

Windows 7でインストール用のbootableなSBメモリを作成する。

管理者権限でコマンドプロンプトを立ち上げ、以下のコマンドを実行する。select disk を間違えないこと!

DISKPART> list disk
DISKPART> select disk 1
DISKPART> clean
DISKPART> create partition primary
DISKPART> select partition 1
DISKPART> active
DISKPART> format fs=fat32
DISKPART> assign
DISKPART> exit

Windows 7 DVDのドライブがE:、USBメモリがJ:の場合。

C:\> xcopy E:\*.* /s/e/f J:\
C:\> cd /D E:\boot
E:\boot> bootsect /nt60 J: