2007/04/30(月) UAC
VISTAのユーザーアカウント制御(UAC)には戸惑うことが多い。UNIX系OSのようなアカウント制御を導入しただけなのだが、面倒なのは管理者権限を持つユーザーであってもログオンすると標準ユーザーの権限しか与えられていないという部分。Linuxならrootになれば、何でもできてしまう。VISTAの場合はシステムの改変にかかわる部分を変更しようとすると、いちいち確認ダイアログが出る。
それだけならいいのだが、プログラムをインストールしているProgram Filesフォルダはシステムフォルダとされており、この中のファイルの改変ができない。これによって不具合の出るソフトウェアはけっこうあるだろう。自作の秀丸マクロがうまく動かなかったのもこのためだが、このフォルダの中にはインストーラーを使わないソフトウェアを手動では入れない方がいいということがようやく分かった。
HTML編集ソフトのez-htmlの場合もそうだった。このプログラム、iniファイルで設定を保存する形式。これがProgram Filesの中にあると、エラーが出る場合がある。HTMLLINTを設定して文法チェックを行ったら、「ファイルアクセスが拒否されました」とエラー。perlスクリプトの構文検証でも同じ。何のファイルへのアクセスが拒否されたのかこれだけでは分からないので悩んだが、ユーザーディレクトリにインストール場所を変えたらうまくいった。
分かりにくくなっているのはProgram Filesフォルダの中を書き換えたかのように見せかけて、実はユーザーディレクトリの中のC:\Users\hiro\AppData\Local\VirtualStore\Program Filesの中を書き換えていること。なんか、非常に回りくどく複雑なことをやっている感じがつきまとう。いったん、こういう仕組みを分かってしまえば、何とでもなるんですがね。
Namazu簡易検索クライアントbyなでしこ
秀丸マクロやSearch-Sを使っていたが、自分で作りたくなったので作った。ファイルメニューもない、ごくごく簡単なもの。検索して結果を標準ブラウザに表示するだけ。自分でローカルのファイルを検索するだけなら、これでも使えるか。DOS窓が一瞬開くのを何とかしたいところ。
ソースはこんな感じ。なでしこには久しぶりにさわった。
#Namazu簡易検索クライアント インデックスは「C:\namazu\var\namazu\index」 resultは「{母艦のパス}result.html」 母艦の幅は500 その高さは150 ウィンドウ背景色で画面クリア 母艦のタイトルは「Namazu簡易検索クライアント」 50,20へ移動 「検索キーワードを入力してください」と表示。 50、50へ移動。 検索エディタとはエディタ。 その幅は300。 そのIMEは「IMEオン」 検索エディタに注目 検索エディタのキー押した時は~ もし、検索エディタの押された仮想キー=13ならば 検索ボタンのクリックした時。 360、48へ移動。 検索ボタンとはボタン。 そのクリックした時は~ 検索結果 待機。 *検索結果 もし、検索エディタのテキストが「」ならば、 「検索キーワードを入力してください」と言う。 違えば、 検索キーワードは検索エディタのテキスト namazu検索は「namazu -a -h -o {result} {検索キーワード} {インデックス} 」 namazu検索を起動。 0.5秒待つ。 resultを起動。 戻る。
ただし、これ、標準ブラウザがIEの場合は検索結果からファイルにジャンプできない。FirefoxならOKだった。
2007/04/28(土)HD Tune
外付けハードディスクが新しいノートパソコンに変えても遅いのでHD Tuneでベンチマークを取ってみた。
HD Tune: LOGITEC LHD-EDU2 Benchmark Transfer Rate Minimum : 15.6 MB/sec Transfer Rate Maximum : 16.4 MB/sec Transfer Rate Average : 16.1 MB/sec Access Time : 14.5 ms Burst Rate : 16.3 MB/sec CPU Usage : 15.8%
確かに遅い。これだとUSB2.0の意味はない。これがロジテック固有の問題なのかどうかは分からないが、デスクトップの方はこんなに遅くはない。PCの性能にも左右されるのかもしれない。というわけで、内臓HDDもベンチ。
HD Tune: FUJITSU MHW2120BH Benchmark Transfer Rate Minimum : 13.4 MB/sec Transfer Rate Maximum : 41.5 MB/sec Transfer Rate Average : 31.1 MB/sec Access Time : 18.5 ms Burst Rate : 75.9 MB/sec CPU Usage : 6.8%
こちらも決して速くはないなあ。ノートパソコンの性能なんてこんなものか。試しに5年前に買ったノートパソコンのベンチ結果は次の通り。
HD Tune: HITACHI_DK23DA-40 Benchmark Transfer Rate Minimum : 6.5 MB/sec Transfer Rate Maximum : 23.8 MB/sec Transfer Rate Average : 18.6 MB/sec Access Time : 20.3 ms Burst Rate : 40.0 MB/sec CPU Usage : 3.8%
ま、これに比べれば、新しいパソコンの方が速い。当たり前か
自作のFTP用秀丸マクロがVistaでは動かない。c:\program files\hidemaru内にFTP用の設定ファイルを書き込む段階でエラー。つまりVistaで強化されたセキュリティのためにこのフォルダ内には書き込めないのだ。しばらく悩み、コマンドプロンプトの起動ディレクトリ(C:\USERS\ユーザー名)に設定ファイルを書き込むようにしたら、うまくいった。
セキュリティが厳しくなると、マクロを書く場合にもいろんなところに気をつけないといけないなあ。
//ftp.mac ver.0.4(Windows VISTA用) //接続するサーバー $server = "foo.bar.ne.jp"; //アップロードするファイルのあるドライブ $drive = "c:\\homepage"; //ユーザー名 $user="hoge"; //パスワード $passwd="password"; //アップロードするサーバーのパス $ftpdir ="/home/hoge/public_html/"; //Vistaにログオンしているユーザー名 $winuser = "hoge"; //------------設定終了------------------- save; $putfile = directory2 + "/" + basename2; $upfile = basename2; $ftpdir2=$ftpdir + directory2; $file = "ftp.txt"; openfile ""; insert "user" + " " + $user + " " + $passwd ; insert "\n"; insert "cd" + " " + $ftpdir2; insert "\n"; insert "put" + " " + $putfile; insert "\n"; insert "bye"; up; replaceup $drive, ""; replaceallfast "\\", "/"; saveas "c:\\users\\" + $winuser + "\\" + $file; up; searchup ":"; if(result==yes){message "このファイルはアップロードできません。 \n指定フォルダ以外のファイルです。";} else{ question " $upfile + "をアップロードしますか?"; if(result == yes){ runsync "ftp -n -s:ftp.txt" + " "+ $server; if (!result){message "FTPに失敗しました\n設定を確認してください。";} else{message $upfile + "をアップロードしました。"; exit;} }else{endmacro;} } exit;
2007/04/10(火) パソコンにコーヒー
こぼした。夜の間はなんとか起動していたが、翌朝、電源は入るのにWindowsが起動しない。デスクトップならキーボードを交換するだけだが、ノートパソコンの場合は基盤にまで液体が達すると、お陀仏。5年近く使っていたパソコンでそろそろ買い換えを検討していたので、いさぎよくあきらめる。
代わりのパソコンはVAIOのtype F。VAIOストアに注文した。メモリーは念のために2GB積んだ。パソコン5台めだが、これでVAIOは3台目。別にVAIOにこだわっているわけではない。ロケーションフリーのソフトが無料でダウンロードできるのはポイントか。SonicStageも使いたいし。しかし、一番の理由は価格。エプソンダイレクトでもカスタマイズしてみたが、VAIOの方が安かった。
新しいパソコンが届いたら、古いパソコンからハードディスクを取り出してデータを救出しておこう。