2011年12月28日水曜日

Windows 7 のスタートメニューで、プログラムを検索するときは、プログラム名に含まれる空白を忘れずに

1. プログラムやコントロールパネルの設定は、検索して起動する

Windows XP を使っていたときは、プログラムを起動するために、スタートメニューから、階層を辿り、目的のプログラムを選択した。

img_0029これに対し、Windows 7 では、スタートメニューを開くと、

「プログラムとファイルの検索」

フィールドにフォーカスが移るため、プログラム名の一部を入力して、起動することが多くなった。

Windows 7 のコントロールパネルの設定も、プログラム名がうろ覚えであっても、検索することで起動できる

 

2. プログラムに空白がある場合に気をつけること

ただし、プログラム名に、空白が含まれるときは、空白も入力する必要がある。

例えば、「タスク スケジューラ」を起動したいのに、

タスクスケジューラ

と入力しては、プログラムの候補として一覧に表示されない。

タスク スケジューラ

のように、「タスク」と「スケジューラ」の間に、スペースを入力する必要がある。

最初、これに気付かず、タスク スケジューラを起動するとき、「タスク」とだけ入力し、それ以上入力しないように意識していた。たたし、この場合、他に「タスク」と名前が付くプログラムがなかったので、何の問題もなかった。しかし、検索のされ方がおかしいなと感じていた。

Google 検索のように、システムが、入力に対して、柔軟に対応してくれるといいんだけれど。

追記(2012/12/29): 現在では、「タスクのスケジュール」で検索をする。

 

3. コントロールパネルの設定項目は、空白がなくても候補に表示される

不思議なことに、「タスクバー」に関する設定項目のように、コントロールパネルの候補を、スタートメニューで表示させたいときは、

タスクバー

と入力しても、

タスク バー

としても、同じように「タスク バー」の候補が表示される。

なぜなのかな???

 

4. Google 日本語入力で、変換前にスペースを入力するには

ところで、Google 日本語入力を使っている場合、

「タスク スケジューラ」

を変換前に

「たすく すけじゅーら」

と入力するには、「たすく」と「すけじゅーら」の間で、

  • Ctrl + Space

を押すことによって、半角スペースを入力することができる。

  • Google 日本語入力のプロパティ > キー設定

を見ると、設定されているキーを確認できる。

img_0030

2011年12月27日火曜日

タスク スケジューラを起動したら、エラーが表示される - 起動できないタスクと、タスク イメージの問題

1. タスク スケジューラを起動したら、エラーが表示される

  • img_0030スタートメニュー > アクセサリ > システム ツール > タスク スケジューラ

を起動したら、以下の2つのエラーが表示された。

タスク PC Probe の起動 でエラーが発生しました。エラー メッセージ: 指定されたアカウント名が有効ではありません。

タスク イメージは破損しているか、または変更されています。 (HRESULT からの例外: 0x80041321)

環境は、Windows 7 Professional 64bit 。

 

2. タスクを削除するには、エクスプローラで、ファイルを削除

1つ目の問題は、

PC Probe の起動

という名前のタスクの起動で、問題が発生するようだ。

しかし、タスク スケジューラを起動し、当該のタスク名を探しても見つからなかった。

 

コマンドプロンプトで、タスクは表示されるが、削除できない

コマンドプロンプトを使ってみよう! -設定・システム操作-を参考にして、コマンドプロンプトより、タスクの一覧を表示。

schtasks /query

その結果、確かに問題となるタスクが、存在することがわかった。

タスク名                                 次回の実行時刻         状態
======================================= ====================== =============
PC Probe の起動                          N/A                    準備完了

コマンドプロンプト上で、削除しようと試みた。

schtasks /delete /tn "PC Probe の起動"

しかし、エラーが表示され、削除できない。

エラー: 指定のタスク名 "PC Probe の起動" はシステムに存在しません。

 

エクスプローラでタスクを削除

タスクスケジューラでイメージの破損 Ashiat 0: によると、

タスク スケジューラに登録されているタスクは C:\Windows\System32\Tasks 内にあり、階層も下の画像の左ペインと全く同じになっています。

  • C:\Windows\System32\Tasks

をエクスプローラで開いてみたら、ファイル“PC Probe の起動”が存在したので削除。

これにより、1つ目のエラーは表示されなくなった。

 

3. タスク イメージの問題

上記のエラーが出なくなっても、2つ目のエラーは、相変わらず表示される。

タスク イメージは破損しているか、または変更されています。 (HRESULT からの例外: 0x80041321)

先ほど参考にしたサイトでは、エクスプローラ上で、タスクに対応したファイルを移動させ、問題となるファイルを見つける方法が書かれている。

1. タスクスケジューラが起動していたら終了させる。
2. C:\Windows\System32\Tasks 内のすべてのフォルダをデスクトップなりに移動させる。
3. その状態でタスクスケジューラを起動させてエラーが出ないことを確認する。
4. あとは「退避させたフォルダ・ファイルを少し戻してタスクスケジューラを起動する。」を繰り返せばいい。
5. ファイル単位で割り出せたらそのファイルを調べて、削除してもいいタスクか判断する。削除できればそこで解決。重要なものそうなら再スケジュールの方法を調べて(Microsoft等に聞いて)実行する必要がある。

調べてみると、以下のタスクに問題があることがわかった。

  • C:\Windows\System32\Tasks\Microsoft\Windows\PerfTrack\BackgroundConfigSurveyor

偶然にも、参考にしたサイトと同じタスク。このタスクは、壊れやすいのかな?

 

4. タスクを修復

できれば、タスクを削除せずに、修復したい。

には、タスク BackgroundConfigSurveyor を修復する方法が書かれている。これに従った結果、エラーが表示されなくなり、タスクを元に戻せた。

以下、行った作業sをまとめる。

 

A. タスクと、レジストリのバックアップ
  1. C:\Windows\System32\Tasks\Microsoft\Windows\PerfTrackBackgroundConfigSurveyor を適当なフォルダへ移動させる。
  2. regedit を起動し、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PerfTrack を右クリックしてエクスポート。
  3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Plain もエクスポート。

 

B. レジストリ項目の削除
  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PerfTrack\BackgroundConfigSurveyor の Id の値をメモ。
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Plain の中にある、上記でメモした値と同じフォルダ名を削除。
  3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PerfTrack\BackgroundConfigSurveyor を削除。

これにより、タスク スケジューラを起動しても、エラーがでなくなる。

 

C. タスクを作り直す
  1. タスク スケジューラを起動し、タスク スケジューラ ライブラリの中の \Microsoft\Windows\PerfTrack を選択。
  2. 真ん中のペインが空であることを確認し、右クリック > タスクのインポート。
  3. 最初に、BackgroundConfigSurveyor を移動させたフォルダを開き、ファイル名の横にあるセレクトボックスで、「すべてのファイル」を選択。
  4. 上記の BackgroundConfigSurveyor を開くと、ダイアログが表示されるので、OK ボタンを押す。

これにより、タスクが元に戻った。

2011年12月24日土曜日

Windows で特定のアプリケーションのメモリ使用量を監視する - コマンドラインの tasklist とバッチファイル、Ruby を利用

1. 特定のアプリケーションのメモリの使用状況を手軽に把握したい

アドオンをたくさんインストールした状態で、Firefox を使っていると、メモリを大量に消費する。メモリの消費量が増えると、動作が緩慢になるので、メモリの使用状況を、逐次、確認しておきたい。

Firefox には、メモリの使用状況を表示してくれるアドオンがある。

また、メモリの状況を把握するなら、タスクマネージャを起動すれば良い。Process Lasso のようなプロセスを監視するアプリケーションにも、メモリの使用状況が、細かく表示される。

しかし、一つアプリケーションのメモリの使用状況だけを、監視したい目的には大げさすぎる。もっと、小さなウィンドウで表示させておきたい。

Firefox 以外のアプリケーションでも利用できるように、コマンドラインを利用することにした。

 

2. tasklist でタスクの状態を把握する

Windows のコマンドラインで、タスク一覧を表示させるコマンドは、

talklist

一覧の中から、特定のアプリケーションだけを表示させたい。

例えば、firefox だけを表示させたい場合、

/fi オプション

により、次のように指定する。

tasklist /fi "imagename eq firefox.exe"

書式については、help tasklist を参照。

コマンドを実行した結果は、以下のようになった。

イメージ名      PID セッション名     セッション# メモリ使用量
============= ======== ============= =========== ============
firefox.exe   9048 Console   1  1,003,824 K

プロセスの ID で抽出したい場合は、tasklist で一覧した後、目的の PID を覚えておく。

例えば、PID が 9048 の場合、次のようにコマンドを入力すれば良い。

tasklist /fi "PID eq 9048"

 

3. バッチファイルで定期的にコマンドを実行

1秒おきに、メモリの使用量を表示させたい場合、以下の内容のバッチファイル (task.bat) を作成し、実行。

@echo off
:LOOP
	tasklist /fi "imagename eq firefox.exe"
	sleep 1
	cls
goto :LOOP

 

4. Ruby のキャリッジリターンを使い、表示のチラツキを抑える

ただし、上記の方法では、更新されるたびに、画面がちらつく。

これに対処するためには、Ruby 初心者スレッド Part 46 - READ2CH によると、

176 + 1:デフォルトの名無しさん[sage] 2011/10/16(日) 21:39:16.43
clsはWindowsのcmd.exeのコマンドじゃまいか
一行だけクリアすればいいのなら
 
loop { print Time.now; sleep 1; print "\r" }
 
とかできるけど、数行とかそれ以上のことがしたいなら
Ruby向けのライブラリを探すかWindowsのコンソール用のAPIを
使うはめになるんじゃないだろうか

print メソッドにおける “\r” は、バックスラッシュ記法 によると、

\r

キャリッジリターン(0x0d)

キャリッジ・リターン - Wikipedia とは、

キャリッジ・リターン(carriage return)は本来、テレタイプ端末Baudot Code における制御文字を指す用語で、行末から行頭に戻す復帰コードであって、改行コードを含まない。…

コンピューティングでは、キャリッジ・リターン (CR) はASCIIUnicodeEBCDICにおける制御文字の一種で、プリンターまたは何らかの表示装置にカーソルを同一行の先頭位置に移動させる意味を持つ。

Ruby で、コマンドを実行するには、

コマンド出力 

バッククォート(`)で囲まれた文字列は、ダブルクォートで囲まれた文字列と同様にバックスラッシュ記法 の解釈と式展開 が行なわれた後、コマンドとして実行され、その標準出力が文字列として与えられます。

RubyInstaller for Windows などで、Ruby がインストール済みだとする。以下の内容を task.rb として、実行。

loop do 
    lines = `tasklist /fi "imagename eq firefox.exe "`.split("\n")
    line = lines[3].split
    print "#{line[0]}: #{line[4]}"
    sleep 1
    print "\r"
end

実行した後、ウィンドウの大きさを小さくしした。

img_0020

常にウィンドウを前面に表示し、監視するには、Dexpot を使いウィンドウを全面に表示させる機能を利用した。

 

参考サイト

2011年12月19日月曜日

Logicool のマウスポインタのスピード設定 - Mac のような感触にしたい

1. Mac のマウスの加速は最高だった

昔は、Mac を長いこと使っていた。そのためか、マウスポインタの移動・加速の感覚は、未だに Mac が最高だったと感じる。Windows に乗り換えた当初は、マウスの移動がやりにくくて仕方がなかった。

Mac のマウスポインタの動きの特徴は、ゆっくりと操作すると、精密な動きをする。手首のスナップを効かせ、素早く操作すれば、思いの位置へ、加速して飛んでいった。これに対して、Windwos では、べたっとした動きをする。

 

2. これまでの SetPoint の加速・移動の設定

今は Windows で、Logicool のマウスを使っている。SetPoint という専用のアプリが付属し、加速設定のための画面存在する。

最近まで、ポインタのスピード設定は、加速は「普通」で、ややポインタのスピードを速くしていた。理由は、大きな画面を左右移動するために、ある程度、速く設定しておかないと、手首が疲れるため。

しかし、この設定では、左右の大きな移動は問題ないけれど、細かな動きがやりずらい。かと言って、速さを遅くすると、今度は、左右の移動でストレスを感じるようになる。12-19-20113

 

3. スピードを抑え、加速を高める設定に変更した

以前のような、Mac のような感触にするには、どうすればいいか、色々と試したところ、

  1. ポインタの加速を「高」
  2. ポインタのスピードを「少し遅め」

に設定するのが良いみたい。しばらくは、この設定で手首を慣らすことにする。

12-19-20112

ただ、欲を言えば、もう少し細かく段階を設定できるといいのだけれど。無段階で、設定できるようにならないかな。

2011年12月18日日曜日

プリントサーバ (BUFFALO LPV3-U2-G54) の設定 - ファームウェアの更新により、双方向通信に対応

1. プリントサーバを使ってなかった理由

随分前に、プリンタを家族で共有するために、プリンタサーバを購入した。

しかし、次の理由で、結局使わなくなり、放置。

  1. 思ったより簡単に設定ができなかった
  2. 写真の印刷では、直接接続するよりも、耐え難いほど遅かった

ただし、文字中心の文書の印刷は、それほど問題はなかった。

このまま使わないでいるのは、もったいないので、久しぶりに設定することに。

 

2. 家庭内を無線化する技術は進歩しているけれど、わかりづらい

家庭内のネットワークは、一度設定すると、よほど何かしたいことがない限り、変更することはない。無線LAN の設定を WEP から WPA へ 変更したのが 2009/4 。もう、2年以上も前から、ネットワークの構成に変更はない。

最近の、家庭内のネットワーク化について調べると、今は家電をネットワークに参加させることが、当たり前のように語られている。ハイビジョンを無線で劣化なく見ることができるほどに、無線のスピードが早くなっているとは、全然知らなかった。 (@_@

 

バッファローのプリントサーバは、新しい機種が発売されてなかった

そこで、プリントサーバに関しても、同様に次々と製品が発売されてるのか確認してみた。

意外だったのは、無線対応のプリントサーバは、新しい機種が出てなかったこと。

 

USB につなげる汎用的なデバイス

他社では、IODATA が、プリントサーバのような需要に答えるため、net.USB という名前で製品を売り出している。

バッファローで、同様の機能を持った製品を、デバイスサーバと呼んでいるらしい。

ただし、この製品は、ルータまで有線でつなげるようだ。

http://buffalo.jp/product/wired-lan/device-server/ldv-2uh/#feature-1

USB2.0用デバイスサーバー LDV-2UH : LDV-2UH | BUFFALO バッファロー via kwout

現在では、プリンタ側で、無線でネットワークに繋げる機能がついているものがある。もしかすると、低価格帯のプリンタでも、それが当たり前になる日は、遠くないようにも思える。価格.com で、無線LAN のインターフェイスを持ち、「売れ筋ランキングの高い順」に表示すると、ランキング上位をほとんど占めるというには驚いた。

 

有線LAN 接続を持っている製品を無線化するデバイス

有線LAN のみ持っているプリンタに対しては、無線子機で、ネットワークに参加させるという形の製品の方がある。こちらの方が、独立したプリントサーバよりも、力を入れているように見える。

 

今あるプリントサーバを使ってみよう

とにかく、調べてみると、無線関係は、色々新しいものが出ていて、知識がないと、携帯の割引サービス並にわかりずらかった。しかし、プリントサーバ自体は、以前に購入した古いものでも、現役で使えそうだ。

 

3. プリントサーバの設定の概略

設定は、以下の順に行った。

  1. PC から、有線LAN で、ブラウザ経由でプリントサーバに接続。
  2. プリントサーバの設定画面において、
    1. ファイームウェアの更新
    2. 暗号化した無線ネットワークに、接続するための設定。
    3. プリントサーバに、固定した IP アドレスを設定。
  3. プリントサーバを利用する PC で、プリントサーバの TCP/IP アドレスを指定することにより、プリンタを認識させる。

 

4. 有線LAN でプリントサーバの設定

まずは、PC とプリントサーバ(LPV3-U2-G54 )を、有線LAN で接続。

エクスプローラーを起動し、ネットワークを選択すると、「その他のデバイス」に、接続したプリントサーバが表示される。ここでは、以前にプリントサーバに `PRINTSERVER01’ と名前を付けたので、そのように表示された。

12-18-20111

  • プリントサーバのアイコンで、右クリック > デバイスのWebページを表示

を選択。

root でログインすると、プリントサーバの設定画面が、ブラウザで表示される。

 

ファームウェアの更新

昔のことなので、はっきりと覚えていないが、以前はプリントサーバを介した場合、プリンタの状態がわからなかった。これに対して、

無線LAN対応プリントサーバー「LPV3-U2-G54」が双方向通信対応!(2009年12月02日) によると、

複数のパソコンから印刷することができるプリントサーバー「LPV3-U2-G54」を、無料バージョンアップできる内部プログラム(ファームウェア)を公開いたしました。
このバージョンアップで、インク/トナー残量や紙切れ、トラブルなどの情報をパソコンで確認できるように双方向通信に対応します。

これにより、プリントするデータを、プリンタサーバに投げるだけではなくなるようだ。

また、32bit バージョンの Windows を使っている場合は、以下のことができる。

LPV3-U2-G54」にUSB接続タイプのプリンターを接続し、パソコン側に専用ユーティリティ『LPV3ダイレクト接続マネージャ』をインストールすることにより、Windows 7(32bit)/Vsita(32bit)/XP/2000で、印刷はもちろん、スキャナ機能およびインク残量チェックがネットワーク経由で可能になります。

従来のプリントサーバで必要だったTCP/IP印刷設定が不要で、プリンタの標準ソフトをインストールした後、物理的な配線の変更を行い、『LPV3ダイレクト接続マネージャ』からプリンタを選択するだけの簡単設定。

(同上より)

家の環境では、Windows 7 64bit があるので、従来通り、TCP/IP の印刷設定をする。

ドライバーダウンロード LPV3-U2-G54 | BUFFALO バッファロー より、ファームウェアをダウンロードし、解凍。

  • プリントサーバの管理設定 > ファームウェア更新

において、ファームウェアを更新した。

 

暗号化方式を変更

昔、プリントサーバを設定したときは、無線の暗号化方式に WEP を利用していた。その後、無線LAN の設定を WEP から WPA へ 変更。そのため、プリントサーバの「無線設定」の「暗号化」において、

TKIP

を選択し、ネットワークに接続するための暗号を入力した。

12-16-20119

これで、プリントサーバが、無線のネットワークに接続できるようになる。

 

プリントサーバの IP アドレスを固定する

プリントサーバの「ネットワーク設定」において、

手動設定

を選択し、IP アドレスに適当な値を入力する。

無線ルータでは、DHCP を利用して、各 PC に IP アドレスを割り当てている。DHCP による、IP アドレスは、番号が小さい順に割り振られる。そこで、他の PC の IP アドレスとバッティングしないように、DHCP が割り当てる範囲のアドレスの中で、番号が大きい値を設定しておく。

ここでは値を 192.168.11.30 とした。

12-16-201116

 

5. プリントサーバを利用する PC で、プリントサーバを認識させる

スタートメニューより、「デバイスとプリンター」を選択。

「プリンターの追加」ボタンを押し、「ネットワーク、ワイヤレスまたは Bluetooth プリンターを追加します」を選択。

12-16-201114

プリンタの追加において、「探しているプリンターはこの一覧にはありません」を選択。

12-16-201115

「TCP/IP アドレスまたはホスト名を使ってプリンターを追加する。」を選択。12-16-201117

ホスト名または IP アドレスのフィールドに、プリントサーバに割り振った固定 IP アドレスを入力。

12-16-201119

デバイスの種類を「Generic Network Card」にする。

12-16-201120

プリンタサーバにつないだプリンタは、USB で接続して使用していた。そのため、既にドライバはインストール済みだったため、「製造元」「プリンター」に表示された。表示されない場合は、Windows Update ボタンを押す。それでもだめなら、予め、プリンターのドライバをインストールしてから、再度、一連の設定をする。

12-16-201122

ドライバーの使用については、どちらを選択しても良さげ。ここでは、「現在のドライバーを置き換える」を選択しておいた。

12-16-201123

プリンターの名前には、プリントサーバを利用していることがわかる、適当な名前を入力。

12-16-201124

ついでなので、プリンタの共有もしておいた。これにより、他の PC でプリントサーバの設定をしなくても、この設定をした PC から印刷することができる。

12-16-201125

試しに印刷してみると、昔より、レスポンスが良くなった気がする。

Windows XP の場合、以下を参照した。

2011年12月16日金曜日

Firefox で bitly Sidebar のブックマークレットを起動すると表示が崩れるので、ハードウェアアクセラレーションを切った

1. bitly のブックマークレットの表示が崩れる

URL を短縮するためのサービスとして、bitly を使うことが多い。読んでいるウェブページに対して、Twitter でつぶやくのにも、しばしば用いる。

bitly を、表示しているページのサイドに、被せるように表示させるブックマークレットが、

このブックマークレットが、Firefox 8 くらいから、起動すると、表示が崩れるようになった。表示される文字が薄く、字が読めない。なぜか、マウスを上に移動させると、微妙に表示が濃くなったりする。

12-16-20111

同じブックマークレットを、Google Chrome で利用した場合は、問題なく表示された。

グラフィックボードのドライバを最新のものにしたけれど、表示は変わらず。

追記 (2011.12.23) : Firefox 9 にしたら、表示が崩れなくなった。

 

2. 正常に表示させるには、ハードウェアアクセラレーションを切る

直接の原因が何かわからなかったが、以下の方法により、ちゃんと表示されるようになった。

  • Firefox ボタン > オプション > 詳細 > ブラウズの「ハードウェアアクセラレーション機能を使用する」

のチェックを外す。

12-16-20114

 

Configuration Mania による設定
アドオン「Configuration Mania」を利用しているなら、
  • ブラウザ > ページ表示制御 > Direct2D を使用しない

のチェックを付ける。

12-16-20115

この場合、「ハードウェアアクセラレーションを使用しない」のチェックは付けなくても、問題なかった。

以下のように、正常に表示されるようになった。

12-16-20113

2011年12月15日木曜日

AutoPager を利用して Tumblr のサイトを見ると、同じページが 2 回表示されてしまう

1. AutoPagerize から AutoPager へ乗り換えた

Firefox で、ページをスクロールさせたときに、自動的に次のページを読み込ませるアドオンとして、AutoPagerize を、以前は利用していた。

しかし、今では、

を使っている。理由は、未対応のサイトに対して、ウィザード形式で設定を手軽に作成できるため。

 

2. Tumblr 用の設定ファイルを変更する

AutoPager を利用して、Tumblr のサイトを見ると、特定のテンプレートを使用しているサイトで、表示がおかしくなる。 AutoPagerize では、正常に表示されていたサイトが、次のページを順に読み込ませていると、2回同じページが表示されてしまう。

このため、Tumblr 用の設定ファイルを変更する。

  • メニューより、ツ-ル > AutoPager > オンラインのページ定義を検索

を選択。

12-15-20111

表示されたページにおいて、Creator が swdyh の行の、チェックボックスにチェックを入れる。

12-15-20113

これにより、正常に表示されなかったサイトで再読み込みすると、AutoPager を使ったときのように、正常に読み込みが行われるようになった。