2010年6月9日水曜日

DETARAMドライブレターをRにしてみた

windows7の64bit版で具体的に困ったこと

  • アナログのビデオキャプチャのドライバがない
    サウンドだけ使えない。画像は使えた。どうも更新されそうにない。
  • RAMディスクソフトがない
    XPでは有償のRamPhantom3を使ってたけど、これも対象外で現在はRamPhantom7 おまけにこれも32bit版だけ。

 ようやく見つけた「Dataram RAMDisk」(※64ビット版Windowsに対応した“RAMディスク”構築ソフト「Dataram RAMDisk」)も無償では最大4GB。これは別にかまわない(積んでるの4GBだし。最大でも8GBのシステムだし)んだけど、RAMディスクのドライブレターが変更できないのが最大の難点(変えることはできるけど再起動で戻ってしまう)

 なんとか無理矢理RAMディスクの定位置である「R:\」にマウントする方法を考えてみた。

※ Rドライブはすでに別のディスクが割り当てられていないことが前提。

➀ 仮想マウントコマンド SUBST

 subst  仮想ドライブの割り当て
構文 SUBST [ドライブ1: [ドライブ2:] パス]
 現在RAMディスクが割り当てられている初期のドライブレターは「F:\」なので、これを「R:\」としても使用するために
subst R: F:\
 コマンドラインに打ち込めばFドライブと同じRドライブが生成される
 これを起動時にタスクで起動させれば……

➁ タスクの設定

 「マイコンピューター」を右クリック→「管理」で管理画面を開いて
「タスクスケジューラ」の左のポイントをクリックして「タスクスケジューラライブラリ」を選択。
 左右中央の3ペインになっている画面右にある選択肢から「基本タスクの作成」を選択して「スタートアップ1分後にsubst R: F:\を実行するタスク」を作成する。
 以下、画像でやると……

EasyCapture0

RAMディスクの割り当てはスタートアップ時に起きるのでタスクがスタートアップと同時だとRAMディスクがまだ割り当ててない可能性があるのでコマンドが失敗してしまうことがある(つーかそうなってしまった)ので起動に遅延を入れることで解消。FドライブとRドライブの2つができてしまうもののドライブレターが不足しているわけではないのでとりあえずこのまま。
 確かに理想はFドライブをアンマウントしちゃえればいいんだけど。

2010年3月31日水曜日

Chromeの拡張とか改造するのに必要な手順メモ③「サーニャが見てる」おぼえがき

※【前提】Chromeの拡張とか改造するのに必要な手順メモ① とりあえず開いてまた閉じて

① ファイル配置

以下のファイルをsanyaフォルダ以下に配置する。
sanyaフォルダ
├ manifest.json ……拡張の核になるマニュフェストファイル
├ sanya_BG.html ……拡張の動作を司るJavascriptを埋め込んだhtmlファイル
├ sanya_open.png ……サーニャボタン(目が開いてるもの)
├ sanya_close.png ……サーニャボタン(目が閉じてるもの)
└ sanya_icon.png ……サーニャアイコン(拡張のインストールや管理画面に出るアイコン)

② manifest.json

{ "name": "sanya_is_looking", ……拡張の名前(拡張配布ページにおける英字名)必須
"version": "1.0", ……バージョン数値必須
"description": "エイラ「サーニャをそんな目で見んなーっ!」", ……拡張の説明(拡張配布ページにおける注釈)推奨
"background_page": "sanya_BG.html", ……拡張機能のプロセスで実行されるJavascriptを埋め込んだHTMLファイル)
"browser_action": { "default_icon": "sanya_close.png", ……ブラウザアクションにおける最初のアイコン(眼を閉じた状態)
"default_title": "サーニャが見てる" ……ブラウザアクションにおける最初のマウスオーバーテキスト
},
"icons": { "16": "sanya_icon.png", "32": "sanya_icon.png", "64": "sanya_icon.png", "128": "sanya_icon.png" },……アイコン(拡張配布時)推奨
"permissions": [ "tabs" ] }
詳しい中身はChrome Extensions API リファレンスの当該ページ参照。  iconの項目は正確には
"icons": { "48": "sanya_icon.png",……48×48のアイコン(拡張機能の管理ページで使用)
"128": "sanya_icon.png" ……128×128のアイコン(拡張機能のインストール時に使用)
},
ということらしい。記述がおかしいのはコピペ元がおかしかったから。
 permissionsは拡張機能がブラウザのどこの部分に作用、または連動するかを記述する。
 今回の場合はタブの更新イベントを読みとる必要があるので"tabs"は必須になる。

③ sanya_BG.html

HTMLファイルだけれども、実際にはJavascriptを配置している部分
<html>
<head>

//Javascriptの領域//
<script type="text/javascript">



//目の開閉フラグ(0……閉じてる,1……開いてる)//
eyes=0;


//目の開閉を関数化//
function closing_eye(tabid){
chrome.browserAction.setIcon({path:'sanya_close.png', tabId:tabid})
}
function openning_eye(tabid){
chrome.browserAction.setIcon({path:'sanya_open.png', tabId:tabid})
}


//更新中に目を開く・更新していないときは閉じる//
chrome.tabs.onUpdated.addListener(function(tabid, info){
if (info.status === 'loading') {
openning_eye(tabid);
}
else
{
closing_eye(tabid);
}
}
);


//ボタンをクリックすると目を開く・閉じる//
chrome.browserAction.onClicked.addListener(function(tab){
if (eyes == 0) {
openning_eye(tab.id);
eyes = 1;
}
else
{
closing_eye(tab.id);
eyes = 0;
}
}
);

</script>

</head>
<body>Test</body>
</html>

使ったイベント類  


1.browserAction.setIcon  ブラウザアクション(右上のボタン類)のアイコンに画像を設定する。

chrome.browserAction.setIcon({path:'sanya_close.png', tabId:tabid})
2.tabs.onUpdated  タブが更新されたときに発生するイベント、更新されたタブのidとその状態を示す文字列(“loading” もしくは “complete”)が渡される。

chrome.tabs.onUpdated.addListener(function(tabid, info){……
3.browserAction.onClicked  ブラウザアクション(右上のボタン類)のアイコンをクリックしたときに発生するイベント。その時選択状態にあるtabオブジェクトが渡される。

chrome.browserAction.onClicked.addListener(function(tab){……
 個人的にはアイコン切り替えの関数は引数いらないような気もするんだけどなぜか動かなかったので念のため。


このエントリーをはてなブックマークに追加

2010年3月28日日曜日

あの「中止ボタンがサーニャに見えて困る」をようやくChromeに移植しました


  昨日の勢いで作ってしまいました。わかってしまえば結構簡単なもので。

 ただ中止ボタンはChromeにはありませんしそっちを弄る方法までは手が届かないので、サーニャボタンを設置してFirefox版同様に、ページ読み込み時に目が開くようにしました。ということで名称も「中止ボタンが~」が抜けています。
 実際に実装してわかったことなんですが、書き込みを要するような処理を除いてほとんどのページでは読み込みが一瞬で終わってしまうため、瞬き程度にしか目が開かないことが多いです。
 なのでボタンとして余っていたクリックで目の開閉が選べるようにしました(読み込むと閉じます)

 ダウンロードはこちらからどうぞ。

このエントリーをはてなブックマークに追加

2010年2月10日水曜日

Ubuntuでカレンダー&時計を表示するスクリーンセーバーを設置した方法

WindowsマシンとUbuntuマシンを併用で使っていると、Windowsを弄ってる間Ubuntuマシンを放置しがちになる。
そんなとき意外と役に立つのが時刻を表示するスクリーンセーバー。
Windowsでは
[コントロールパネル]→[画面]→[スクリーンセーバー]で簡単に設定できるものの、Ubuntuではちょっとひと工夫必要。
 
スクリーンセーバー自体は[システム]→[設定]→[スクリーンセーバー]で[GLText]を使用。
 
まずGLTextの設定ファイルをバックアップ
cp /usr/share/applications/screensavers/gltext.desktop ~/gltext.backup
戻すときは
cp /usr/share/applications/screensavers/gltext.desktop~ /usr/share/applications/screensavers/gltext.desktop
でいいはず(やってないw)
 
編集は管理者権限が必要なのでsudoでエディタを使って開く。何でもいいけどたいていはgeditが無難。
sudo gedit /usr/share/applications/screensavers/gltext.desktop
 
修正はEXEC行のみ。デフォルトでは
Exec=gltext -root
となっている部分を
Exec=gltext -root -front -text "%Y/%m/%d%n %a%n%H:%M:%S %p"
と記述して保存、終了。
 
設定が終わったら[システム]→[設定]→[スクリーンセーバー]で[GLText]を選択すると実際にどのように見えるかプレビューで確認できる。
 最後にスクリーンセーバーとしての設定をしておけば準備完了。
 失敗した場合スクリーンセーバーの設定が起動しなくなるので、その時はもう一度落ち着いてgltext.desktopをバックアップから書き直す(経験的に手で書き直した方が早い)
※記述について
 -text "" の部分が""内のテキストを表示する という部分で、
 %Y:年(4桁) %m:月(2桁) %d:日(2桁) %a:曜日(3文字)
 %H:時(24時/2桁) %M:分(2桁) %S:秒(2桁) %p:AM/PM
 %n:改行 
 を表示。"/"や":"はそのまま表示。
 
 -front は文字のスピン運動において視認性を損なわないように反転を制限。数字の裏返しを防ぐ効果。
 
 詳しいことは端末でman gltext とすればマニュアルが出る。マニュアルから戻るにはqキー (実は最初わからなかったw)
 
 ※今回の記述は↓を参照しました。検索しても意外と載っていないもので、それ以前にもっと機能的になるべきだと思う箇所。GNOMEの一部なのでそちらの開発次第なんでしょうけど。
Digital Clock Screensaver
http://ubuntuforums.org/showthread.php?t=266124
このエントリーをはてなブックマークに追加