カレンダー

04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

最近の記事

月別アーカイブ

カテゴリー

ユーザータグ

最近のコメント

プロフィール

run800m

Author:run800m
元・陸上競技の800m選手。
好きな食べ物はねぎともやし。

専門は機械工学・ロボティクス
興味は経済・経営・生産・心理
・地理・プログラミング・性

QLOOKアクセス解析
フィードメーター - 他人の日記を見るのか? ver.BLOG

QRコード

QR

RSS

はてなRSSに追加
livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加
Bloglinesに追加
Technoratiに追加
newsgatorに追加
Powered by SEO対策 RSSプラス

ブログ内検索

リンク

このブログをリンクに追加する

気まぐれ広告

ブログ内容を反映するらしい。
ホントか!?

他人の日記を見るのか? ver.BLOG
デジモノ好きのたわいもない記録 デジタルライフ
スポンサーサイト
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


カテゴリ:スポンサー広告

ブログやサイトにソースコードを乗せる時に便利なツール
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
自分好みのが欲しかったんで、簡単なの作りました。

汎用的な特殊文字の置換、任意フレーズの置換、タブの削除・置換、改行の削除ができます↓


使い方は単純明快。

上の「◎入力欄◎」に変換したいソースを貼って「置換開始」のボタンを押すと、下の「◎出力欄◎」に変換されたソースが表示されます。

変換する内容についてはその上にあるチェックボックスやテキストエリアで入力・選択します。

よく使うであろう「< > & "」の変換がデフォルトで選択できるようになっています。

それ以外の置換は「その他」の欄の左側のテキストボックスに置換前の文字列、右側のテキストボックスに置換後の文字列を記入します。

FC2ブログで書いていると、コードの改行が実際に反映されてしまったりするので、改行削除機能もついています。

またタブの削除・置換もできます。

デフォルトではタブを空白(&nbsp;)4つに置換するようになっていますが、任意のフレーズに置換できます。



最近SBMの記事を書いていて、コードを貼り付けることが多かったので作りました。

プログラムやHTMLソースを載せる際に、簡単に変換が行えます。

今まではメモ帳でいちいち「&gt;」とか打ってたので、多少楽になりました。

セミコロンとコロンを打ち間違えたり、『QLOOKの高度な解析を使いこなす その2』の記事で&を変換し忘れたりもしていましたが、このツールを使うことで変換ミスがなくせます。


一応FirefoxとIEで動作確認をしたんですが、最初IEで改行削除がうまくいきませんでした。

調べてみたところ改行がFFは「\n」、IEは「\r\n」のようです。

改行コードがOSによってCRだったりLFだったりってのは知っていましたが、ブラウザでもそんな違いがあるのは初耳でした。

あまりWebプログラミングは経験がなく、「使えればいいや」と場当たり的にやってきましたが、これからはブラウザ上でなんでもやる時代になるでしょうし、もうちょっと勉強した方がいいのかもしれません。


ちなみにうちでは↓の2つの本を使っています。
JavaScript辞典 第3版 改訂新版 JavaScript 例文活用辞典
どちらも使いたい機能の実際の例文が載っているので、何も考えずにコピペするだけで使えます。

ただ、私の使っているのは古い版なので、表示例がIEとNNだったり、今ほど多様な使い方は載ってなかったりしますが……

今出ている最新の版ではAjaxなどについても言及されています。

買いなおそうか悩みましたが、もう少し教科書的な本を今度は買おうと思っています。

日曜プログラマーで今までどれも独学でやってきたので、一度ちゃんと学び直しておきたいところです。

今回興味を持ったもの

JavaScript辞典 第3版JavaScript辞典 第3版
株式会社アンク

翔泳社 2008-01-11
売り上げランキング : 212477

Amazonで詳しく見る
by G-Tools

改訂新版 JavaScript 例文活用辞典改訂新版 JavaScript 例文活用辞典
古籏 一浩

技術評論社 2006-10-20
売り上げランキング : 352584
おすすめ平均

Amazonで詳しく見る
by G-Tools


スポンサーサイト

関連した記事を見る(タグ検索)
FC2ブログ HTML CSS プログラミング JavaScript
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:HP作成 - ジャンル:コンピュータ

カテゴリ:ネット関連

GV-MC/RCkit その4
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
新事実が発覚。

部屋の照明を消そうとした時のこと。

GV-MC/RCkitのレシーバーが一瞬光ったような気がして、改めて考えてみると部屋の照明も赤外線リモコンだったことに気づく。

もしやと思って、部屋中のリモコンを使ってみると、全部反応する。

データもキャプチャしてみると、それぞれ違うデータで判別可能っぽい。

どうやら赤外線リモコンなら、なんでも使えるらしい。

これは、もっと汎用的にいろいろなことに使えるかもしれない。

需要があるのかはしらんけど、どんなリモコンでも操作可能なソフトウェア作ったら便利かもね。

もっと気に入ったボタン配置のリモコンとかも使える訳だし。

携帯とか、なんにでも使えたら用途広がるし。

受信だけじゃなく、送受信ができれば完璧なんだが。



さてさて、前回まででメディア関連のソフト制御はできるようになったので、今回は使い心地を向上させてみる。

たとえば、2度押し対策。

WMPの起動なんか時間が少しかかるので、「押せてないかも?」と思って2度3度押してしまったり、

それでなくてもループ間隔が短いので、少し長く押すだけで2度押しになってしまったりする。

そんな訳でsleep()で待ち時間を導入。

時間は100msecだったり200msecだったりと、実際に操作しながら機能ごとに割り当て。

絶対2度押しになって欲しくないとこなんかは500msecとか、長めに設定。

逆に音量やチャンネルのように連続で押したりするものは、0~100msecと短めに設定。



続いて矢印キーの機能をマウスポインタ移動に当てるか、カーソル移動に当てるか迷ったので、両方を切り替えられるようにして導入。

「入力」ボタンを押すとモードを切替られるようにして、
/* 「入力」ボタンのとこ */{
printf("入力\n");
b_num=22;
if(sw_n) sw_n=0;
else sw_n=1;
sl_t=500;
}

「↑」ボタンであれば、
/* 「↑」ボタンのとこ */{
printf("↑\n");
b_num=31;
if(sw_n){
if(PF>0 && PB==b_num) Mouse_Move(0,-1,1);
else Mouse_Move(0,-1,0);
sl_t=0;
}
else{
keybd_event(VK_UP,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_UP,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);
sl_t=0;
}
}

と、いったようにモードごとにカーソル移動かマウスポインタ移動かを切り替えられるようにしました。

ちなみにsl_tは上述したsleep()の待ち時間。
if(PF>0 && PB==b_num) Mouse_Move(0,-1,1);
else Mouse_Move(0,-1,0);
sl_t=0;

と、if文になっているのは、マウスポインタの移動に加速を加えるためです。

ポインタは大きく移動することも小さく移動することもあるので、同じボタン押し続けていると動く量を大きくします。

変数PFはボタンが押され続けているかの判定。

変数PBは前回押されていたボタンを記憶しています。

PBだけだと時間を空けて同じボタンを押しても加速してしまいますし、PFだけだと違うボタンでも構わなくなってしまうからです。

なお、MouseMove()関数は
void Mouse_Move(int px,int py,int pf){
POINT pt;
static int pp=0;
int p[20]={1,1,2,2,4,4,8,10,15,20,40,60,80,100,100,120,120,140,160,200};

if(pf){
if(pp<19) pp++;
}
else pp=0;

px*=p[pp];
py*=p[pp];

GetCursorPos(&pt);
SetCursorPos(pt.x+px,pt.y+py);

}

このようになっており、p[20]が加速していく部分です。

最初1ドットしか動かなかったものが、2,4,8..200と大きく動くようになっていきます。

加速間隔は自分で使いやすいように設定しました。

ついでに矢印ボタンの真ん中の「決定」ボタンも、マウスモードの時は左クリック、キーボードモードの時はエンターキーに割り当てました。
/* 「決定」ボタンのとこ */{
printf("決定\n");
b_num=5;
if(sw_n){
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
else{
keybd_event(VK_RETURN,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_RETURN,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);
sl_t=0;
}
}


マウスとカーソル移動、それに決定ができるようになるとほとんどのことができますね。

遠くから操作しているとカーソル合わせるのが大変ですが。

将来的には遠くからも見やすく操作できる、でっかいアイコンを備えたランチャーやソフトウェアを作るといいかもしれません。

今回興味を持ったもの

I-O DATA Windows Media Center専用リモコン GV-MC/RCkitI-O DATA Windows Media Center専用リモコン GV-MC/RCkit

アイ・オー・データ 2007-01-31
売り上げランキング : 2022
おすすめ平均

Amazonで詳しく見る
by G-Tools



関連した記事を見る(タグ検索)
PC GV-MC/RCkit プログラミング
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:PC周辺機器 - ジャンル:コンピュータ

メインカテゴリ:ハードウェア  カテゴリ:GV-MC/RCkit

GV-MC/RCkit その3
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
昨日までで40個のボタンを判別できたので、それに動作を付け加えていきます。

ちなみに改めて何が使えるかを考えると、動画や音楽鑑賞ですね。

リモコンの利点を活かして画面から離れると、目が悪いせいもあってそれぐらいしかできることがありません。

そんな訳で普段音楽聴くのに使ってるWindowsMediaPlayer(WMP)と、テレビを見るのに使っているmAgicTVを使えるようにしたいと思います。

方法は簡単。

リモコンの各ボタンにkeybd_event()を使って、ショートカットキーを割り当てていきます。

まず最初に取り掛かったのが、ミスっても一番影響の少なさそうな音量。

「音量↓」と「音量↑」のボタンに、

keybd_event(VK_VOLUME_DOWN,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_VOLUME_DOWN,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);


てな感じで、ボタンを押し、離す処理を割り当てます。

以下、同じようにボタンに割り当てていきます

「音量↓」 VK_VOLUME_DOWN
「音量↑」 VK_VOLUME_UP
「ミュート」 VK_VOLUME_MUTE
「スキップ」 VK_MEDIA_NEXT_TRACK
「リプレイ」 VK_MEDIA_PREV_TRACK
「停止」 VK_MEDIA_STOP
「一時停止」 VK_MEDIA_PLAY_PAUSE
「再生」 VK_MEDIA_PLAY_PAUSE

これだけで、一通りWMPは扱えます。

mAgicTVの方はショートカットキーが載ってる説明書が見つからなかったので、手探りで色々押して探してみました。

以下の通りです。

各チャンネル
「1」 VK_F1
「2」 VK_F2
「3」 VK_F3
「4」 VK_F4
「5」 VK_F5
「6」 VK_F6
「7」 VK_F7
「8」 VK_F8
「9」 VK_F9
「*」 VK_F10
「0」 VK_F11
「#」 VK_F12
「チャンネル↑」 VK_VK_PRIOR
「チャンネル↓」 VK_NEXT

10~12チャンネルが若干気に入らないんですが、ボタンがないので仕方ないですね。

数字の1,2,3あたりでフルスクリーンにしたりと、画面の大きさを変えられるようなのですが、どのボタンに対応させようか迷っています。

録画のキーも見つけたので必要があれば「録画」ボタンに対応させるつもりです。


で、ここまでだと操作はできても起動ができないので、起動機能も追加します。

CreateProcessA()を使って、以下のようにします。
int Open_WMP(){
STARTUPINFO si;
PROCESS_INFORMATION pi;

GetStartupInfo(&si);

CreateProcessA(NULL,
   "C:\\Program Files\\Windows Media Player\\wmplayer.exe",
   NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi);

return 0;

}

ちなみにWMPは「Windows」ボタン、mAgicTVは「テレビ」ボタンに割り当てました。

「番組ガイド」ボタンもあったので、それにはmAgicTVガイドを割り当てました。

ついでに起動したら、閉じる処理も行いたいので、「クリア」ボタンに
keybd_event(VK_LMENU,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_F4,0x00,KEYEVENTF_EXTENDEDKEY|0,0);
keybd_event(VK_LMENU,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);
keybd_event(VK_F4,0x00,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);

を追加しました。

「Alt+F4」なんで、Altを押してF4を押してから、離すようにしないといけません。


これである程度の操作は行える訳ですが、WMPやmAgicTVのウィンドウにフォーカスがいつもいってるとは限りません。

誤動作を防止するために、フォーカスしてるウィンドウを特定してからイベントを起こすようにしました。

まずボタンの処理の前に、以下のプログラムを入れてウィンドウクラスを調べます。
int CheckActiveWindow(char WC[1000]){
HWND hWnd,hWnd2;
int i;
char windows_class[2][100]={{"WMPlayerApp"},{"mAgicTVWindow"}};

hWnd = GetForegroundWindow();
for(i=0;i<2;i++){
hWnd2=FindWindowA(windows_class[i],NULL);
if(hWnd==hWnd2) return (i+1);
}

return 0;
}

ウィンドウテキストのように可変では困るので、「mAgicTVWindow」のようなウィンドウクラスを用います。

ちなみにVisualStudio付属の「Spy++」というソフトで、実行中の各アプリケーションのウィンドウクラスが調べられます。

あとは処理をする前にCheckActiveWindow()の返り値から、フォーカスしてるウィンドウかどうかif分岐させるだけです。

今回興味を持ったもの

I-O DATA Windows Media Center専用リモコン GV-MC/RCkitI-O DATA Windows Media Center専用リモコン GV-MC/RCkit

アイ・オー・データ 2007-01-31
売り上げランキング : 2022
おすすめ平均

Amazonで詳しく見る
by G-Tools



関連した記事を見る(タグ検索)
GV-MC/RCkit PC プログラミング
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:プログラミング - ジャンル:コンピュータ

メインカテゴリ:ハードウェア  カテゴリ:GV-MC/RCkit

GV-MC/RCkit その1
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
パソコン工房でGV-MC/RCkitがジャンク品で980円だったので、思わず買ってしまった。

本来は3000~4000円ぐらいする品。

どういう訳アリなのかは気になったけど、まあ980円ならダメでもいいかと。

GV-MC/RCkitはWindows VistaのMedia Center専用のリモコン。

VistaもMedia Centerも持ってないけど、前々からPC用リモコンってのが欲しかったもんで。

RawInputの知識もあるし、自分で入力を調べて、快適に遠隔操作できるソフトを作ろうと思ってます。


ただ、Vistaの標準ドライバで動くらしく、XPでは案の定ドライバが見つからず使えませんでした。

ググってみても、同じくXPで使おうとしてダメでしたってのが1件あるだけ。

これを機にデバイスドライバの自作を勉強しようかと思って調べてたら、汎用USBドライバなるものを発見↓

ガジマルの森
http://www.otto.to/~kasiwano/

見覚えあるなと思ったら、SSEやらMMXやらを勉強してた時に見たサイトでした。

「RS-232Cのシリアルポートを制御するように簡単に使えたら便利ですよね。」の一文。

まさにその通り。

RS232Cは簡単だから理解できたけど、USBは以前にもチャレンジしてあまりの意味わからなさに断念したから。


とにかくここのデバイスドライバを使わせて貰う事に。

README通りに進めていくと、VIDとPIDとかいうのがいるらしい。

なんか見たことあるなぁ~と思ってデバイスマネージャ開いてみると、デバイスインスタンスIDってとこで発見。

VendorIDとProductIDらしい。

とにかくVID:0609とPID:0338をuusbd.infに入力して、ドライバをインストール。

再度デバイスマネージャを確認すると、「UUSBD用USBデバイス」、「Universal USB Driver(GV-MC/RCkit)」っていう欄が増えてました。

ちゃんと使えてるのかどうか、pipedumpフォルダのプログラムを起動してみると、00が大量に表示されました。

これじゃ分からんなぁ~と思いながら、define文のあたりをいじっていると、
#define NUM_INTERFACE 0
#define NUM_PIPE 1

に設定したら、リモコンの動作に反応して16進数が大量に表示されました。

どうやら成功したみたいなので、あとはこの大量の16進数の意味を調べないと。



それにしてもリモコンの赤外線受信すると、レシーバーが赤く光るのは分かりやすくていいな。

LEGO MINDSTORMのIRタワー思い出した。


今回興味を持ったもの

I-O DATA Windows Media Center専用リモコン GV-MC/RCkitI-O DATA Windows Media Center専用リモコン GV-MC/RCkit

アイ・オー・データ 2007-01-31
売り上げランキング : 2022
おすすめ平均

Amazonで詳しく見る
by G-Tools



関連した記事を見る(タグ検索)
GV-MC/RCkit PC プログラミング 解析
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:PC周辺機器 - ジャンル:コンピュータ

メインカテゴリ:ハードウェア  カテゴリ:GV-MC/RCkit

Visual Studio 2005のショートカットキーの設定
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
the spoke premiumで買ったVisual Studio 2003 proffesional。

その流れでついてきたVisual Studio 2005 proffesional。

ずっと2003のまま初代ノートPCで使ってきたのを、今さら2代目ノートにインストール。

そしたらソリューションのビルドのショートカットキーがF7じゃなかった。

Ctrl+Shift+Bって。

なんたるこったと思って調べてみると設定できるそうな。

「ツール」→「オプション」→「次のキーボードマップスキームを適用」

のところを「既定」から好きなのに変えればいいらしい。

とりあえず「Visual C++ 6」に変えてみたらF7になった。

良かった良かった。

Ctrl+Shift+Bなんて打ってらんないから。


だいぶ見た目も2003の時のに近づけてきたけど、まだまだいじらないかんな。


今回興味を持ったもの

Visual Studio 2005 Professional EditionVisual Studio 2005 Professional Edition

マイクロソフト 2006-02-03
売り上げランキング : 4575

Amazonで詳しく見る
by G-Tools



関連した記事を見る(タグ検索)
VisualStudio プログラミング 設定
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:ソフトウェア - ジャンル:コンピュータ

カテゴリ:ソフトウェア



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。