2010-05-29(Sat)

本日のアキバ散歩

今日は先週アマゾンで購入しようと思っていたけど売り切れで購入できなかった本と、梅雨シーズンの前に防湿庫に放り込む防カビ剤を購入。ついでに持ち運び用のコンパクトなブロアーを買ってみた。

   

トライガンマキシマム N-3 (コミック)
12ステップで作る組込みOS自作入門
レンズ専用防カビ剤 フレンズ KMC-04
エツミ クリーニングブロア ハンディブロア ブラック E-5138

2010-05-29(Sat)

大尉(銀) Captain Silver に昇進しました

BF2142-2010-05-29-12-09-07-.jpg

2010-05-28(Fri)

Ubuntu10.04のgeditでgrepする

viとか使いずらいのでGUIのgeditを使いたいのだが、grepが出来ない・・・・
なんかプラグインで対応できるらしい・・・・Windowsのメモ帳とは偉い違いだ!

geditのプラグインはlive.gnome.orgで探せる。
"File Search"とかいうプラグインがgrepを実現しているっぽい。
http://oliver.github.com/gedit-file-search/
俺がダウンロードしたファイルは"gedit-file-search-0.2.tgz"だった。

「Download & Installation」によると、
* copy its contents to ~/.gnome2/gedit/plugins/
ってことなのだが、pluginsフォルダはデフォルトでは用意されていないので作成する。
具体的には、以下のディレクトリを作成する。
/home/ユーザー名/.gnome2/gedit/plugins/

で、解凍した以下のファイルをコピー
・file-search.gedit-plugin
・file-search.glade
・file-search.py

あとは、geditを起動して、メニューの「編集」-「設定」から「プラグイン」タブに「File Search」が出てくるので有効にする。

2010-05-27(Thu)

Ubuntu 上でQt Creatorで作成したアプリはなんかDLLとか必要なのか?

新しくインストールしたUbuntu10.04でQt CreatorをインストールしたUbuntu10.04で作成した実行ファイルを実行してみる。
以下のエラーが出て実行できない。

$ ./test
./test: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory

Qtのライブラリが必要っぽいな。

$ ./test
./test: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
$ apt-cache search libQtGui
libqtgui4 - Qt 4 GUI module
$ sudo apt-get install libqtgui4
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
libaudio2 libmng1 libqtcore4
提案パッケージ:
nas qt4-qtconfig
以下のパッケージが新たにインストールされます:
libaudio2 libmng1 libqtcore4 libqtgui4
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 101 個。
6,023kB のアーカイブを取得する必要があります。
この操作後に追加で 19.7MB のディスク容量が消費されます。
続行しますか [Y/n]?

で実行できることはできた。
2010-05-26(Wed)

UbuntuでのQt Creatorのアンインストール方法

Linuxでは、Qt Creatorをインストールしたフォルダの"qtsdk..../bin/uninstall"を実行したらアンインストールできます。
$ ./uninstall
2010-05-26(Wed)

WindowsのQt Creatorで作成したプロジェクトをVMwareのUbuntu10.04のQt Creatorで開いてビルド

WindowsのQt Creatorで作成したプロジェクトを開いてビルドしたら以下のエラーが発生

プロジェクト test をビルドします...
/home/hogehoge/qtsdk-2010.02/qt/bin/qmake /home/hogehoge/qt_projects/ToolBarTest/test/test.pro -spec linux-g++ -r を起動中です。
コード:0 で終了しました。
/usr/bin/make -w を起動中です。
make: ディレクトリ `/home/hogehoge/qt_projects/ToolBarTest/test' に入ります
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.02/qt/mkspecs/linux-g++ -I. -I../../../qtsdk-2010.02/qt/include/QtCore -I../../../qtsdk-2010.02/qt/include/QtGui -I../../../qtsdk-2010.02/qt/include -I. -I. -o main.o main.cpp
make: g++: コマンドが見つかりませんでした
make: ディレクトリ `/home/hogehoge/qt_projects/ToolBarTest/test' から出ます
make: *** [main.o] エラー 127
コード:2 で終了しました。
プロジェクト test をビルド中にエラーが発生しました
ビルドステップ 'Make' を実行中

有効な Qt バージョンが設定されていません。ツール/オプションで1つ設定してください。
プロジェクト test をビルド中にエラーが発生しました
ビルドステップ'QMake'を実行中
ビルドを中止しました。


g++をインストールする。
$ g++
プログラム 'g++' は以下のパッケージで見つかりました:
* g++
* pentium-builder
次の操作を試してください: sudo apt-get install <選択したパッケージ>
hogehoge@ubuntu:~$ sudo apt-get install g++
[sudo] password for hogehoge:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic
これらを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
g++-4.4 libstdc++6-4.4-dev
提案パッケージ:
g++-multilib g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg
libstdc++6-4.4-doc
以下のパッケージが新たにインストールされます:
g++ g++-4.4 libstdc++6-4.4-dev
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
6,443kB のアーカイブを取得する必要があります。
この操作後に追加で 21.3MB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://us.archive.ubuntu.com/ubuntu/ lucid/main libstdc++6-4.4-dev 4.4.3-4ubuntu5 [1,491kB]
取得:2 http://us.archive.ubuntu.com/ubuntu/ lucid/main g++-4.4 4.4.3-4ubuntu5 [4,950kB]
取得:3 http://us.archive.ubuntu.com/ubuntu/ lucid/main g++ 4:4.4.3-1ubuntu1 [1,442B]
6,443kB を 3min 2s で取得しました (35.2kB/s)
未選択パッケージ libstdc++6-4.4-dev を選択しています。
(データベースを読み込んでいます ... 現在 147290 個のファイルとディレクトリがインストールされています。)
(.../libstdc++6-4.4-dev_4.4.3-4ubuntu5_i386.deb から) libstdc++6-4.4-dev を展開しています...
未選択パッケージ g++-4.4 を選択しています。
(.../g++-4.4_4.4.3-4ubuntu5_i386.deb から) g++-4.4 を展開しています...
未選択パッケージ g++ を選択しています。
(.../g++_4%3a4.4.3-1ubuntu1_i386.deb から) g++ を展開しています...
man-db のトリガを処理しています ...
libstdc++6-4.4-dev (4.4.3-4ubuntu5) を設定しています ...
g++-4.4 (4.4.3-4ubuntu5) を設定しています ...
g++ (4:4.4.3-1ubuntu1) を設定しています ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode.

でリビルド。
プロジェクト test をビルドします...
/usr/bin/make clean -w を起動中です。
make: ディレクトリ `/home/hogehoge/qt_projects/ToolBarTest/test' に入ります
rm -f moc_test.cpp
rm -f qrc_toolbar.cpp
rm -f ui_test.h
rm -f main.o test.o moc_test.o qrc_toolbar.o
rm -f *~ core *.core
make: ディレクトリ `/home/hogehoge/qt_projects/ToolBarTest/test' から出ます
コード:0 で終了しました。
構成が変更されていないので QMake ステップはスキップします。
/usr/bin/make -w を起動中です。
make: ディレクトリ `/home/hogehoge/qt_projects/ToolBarTest/test' に入ります
/home/hogehoge/qtsdk-2010.02/qt/bin/uic test.ui -o ui_test.h
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.02/qt/mkspecs/linux-g++ -I. -I../../../qtsdk-2010.02/qt/include/QtCore -I../../../qtsdk-2010.02/qt/include/QtGui -I../../../qtsdk-2010.02/qt/include -I. -I. -o main.o main.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.02/qt/mkspecs/linux-g++ -I. -I../../../qtsdk-2010.02/qt/include/QtCore -I../../../qtsdk-2010.02/qt/include/QtGui -I../../../qtsdk-2010.02/qt/include -I. -I. -o test.o test.cpp
/home/hogehoge/qtsdk-2010.02/qt/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.02/qt/mkspecs/linux-g++ -I. -I../../../qtsdk-2010.02/qt/include/QtCore -I../../../qtsdk-2010.02/qt/include/QtGui -I../../../qtsdk-2010.02/qt/include -I. -I. test.h -o moc_test.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.02/qt/mkspecs/linux-g++ -I. -I../../../qtsdk-2010.02/qt/include/QtCore -I../../../qtsdk-2010.02/qt/include/QtGui -I../../../qtsdk-2010.02/qt/include -I. -I. -o moc_test.o moc_test.cpp
/home/hogehoge/qtsdk-2010.02/qt/bin/rcc -name toolbar toolbar.qrc -o qrc_toolbar.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.02/qt/mkspecs/linux-g++ -I. -I../../../qtsdk-2010.02/qt/include/QtCore -I../../../qtsdk-2010.02/qt/include/QtGui -I../../../qtsdk-2010.02/qt/include -I. -I. -o qrc_toolbar.o qrc_toolbar.cpp
g++ -Wl,-O1 -Wl,-rpath,/home/hogehoge/qtsdk-2010.02/qt/lib -o test main.o test.o moc_test.o qrc_toolbar.o -L/home/hogehoge/qtsdk-2010.02/qt/lib -lQtGui -L/home/hogehoge/qtsdk-2010.02/qt/lib -L/usr/X11R6/lib -lQtCore -lpthread
make: ディレクトリ `/home/hogehoge/qt_projects/ToolBarTest/test' から出ます
コード:0 で終了しました。

できた!
windowsで作成したプロジェクトがそのまま使える見たいで驚いた。
(よく見たらリリースビルドだった・・・・)

しかし、Windows版のようにDebugディレクトリとかReleseディレクトリとかが出来るわけじゃないみたい。
プロジェクトファイルやらソースファイルやらのあるディレクトリに出力されるみたい。

2010-05-26(Wed)

WindowsでQt Creatorのリリースビルド

「ビルド(B)」メニューの「ビルド構成の設定」で「Release」を選んで、ビルドする。

プロジェクトのreleaseフォルダ以下にexeファイルが作成されるが、クリックしても以下のエラーで実行できない。
mingwm10.dllってDLLだけど、

http://null.michikusa.jp/misc/qt.html
http://qt-labs.jp/2010/03/24/helloworld-from-qt-creator.html

寺戸健太 2010/05/05 10:31 
はじめまして。Qtは初心者ですが、わかりやすい解説で助かっています。
さて、本題ですが・・・
興味本位でエクスプローラでサブディレクトリdebugを開き、HelloWorld.exeを直接実行してみましたが、「mingwm10.dllが見つからなかったため、このアプリケーションを開始できませんでした」というメッセージが表示され、実行できませんでした。
環境変数の設定などが別途必要なのでしょうか?
ちなみにOSはWindows Vista Home Premium SP2 です。

鈴木 佑 2010/05/06 13:43
@寺戸さん

環境変数の設定が必要です。

Qt Creator で Hello World プロジェクトを開いている状態で、画面の左にあるサイドバーの中の”プロジェクト(Ctrl + 4)”をクリックするとこのプロジェクトの設定画面が表示されます。「実行時の環境変数」の詳細を開くと表示される環境変数の一覧が Qt Creator がアプリケーションを実行する際のものになります。

具体的には、Qt SDK を使用して作成した Qt のアプリケーションを Windows で動作させるためには環境変数 PATH に Qt のライブラリのパス([qtsdk のインストール先]\qt\bin)と mingw のライブラリのパス([qtsdk のインストール先]\mingw\bin) が必要です。こちらを設定して試してもらえますか?

寺戸健太 2010/05/08 01:48
ご教授いただいたとおり、システムの環境変数 PATH の設定で、無事起動できました。
また、次のようなバッチコマンドをdebugフォルダに作成し、コレから起動してもOKでした。
-HelloWorld.cmd-
setlocal
set qtdir=C:\Qt\2010.02.1
set path=%path%;%qtdir%\qt\bin;%qtdir%\mingw\bin
HelloWorld.exe
endlocal
---------
そのようなわけで「とりあえず解決!」ということでOKです。
ただ、この方法では「Qtのバージョンアップの度に環境変数の変更が必要?」ですね。
当面は「Qt Creatorから起動するのが基本」と考えておきます。

http://qtprogramming.g.hatena.ne.jp/garyo/20100308/1268012413


■ Windows版Qt Creator(mingw版)で作ったファイルを配布するために必要なDLL

C:\Qt\2010.02.1\qt\bin の中の
・libgcc_s_dw2-1.dll
・mingwm10.dll
・QtCored4.dll
・QtGuid4.dll

をexeと同じフォルダに入れると起動した。
エラーが出る毎にDLLを探して入れてみたが、自動で探してくれる方法は無いかな?

http://d.hatena.ne.jp/ryousanngata/20090808

このままリリースでビルドしても、Qt4Core.dll, Qt4Gui.dllなどのDLLが無いと実行できない。
配布時などに入れるのもめんどくさいので、それらはスタティックリンクにできると便利だ。

それにはQtの再コンパイルが必要。
Qtにはcounfigure.exeがあり、MinGWもついてくるので、容易に行える。
既に導入したMinGWを使ったところg++周りの問題でうまくいかなかったので、付属のMinGWにpathをsetしなおし、実行した。

コマンドプロンプトを開く。
 cd /d Qtフォルダ\qt
set path=Qtフォルダ\mingw\bin
configure -static -release
mingw32-make


configure -static -release

を実行すると以下の入力を求められる。

Which edition of Qt do you want to use ?

Type 'c' if you want to use the Commercial Edition.

Type 'o' if you want to use the Open Source Edition.

'o'をタイプする。

You are licensed to use this software under the terms of

the GNU General Public License (GPL) version 3

or the GNU Lesser General Public License (LGPL) version 2.1.

Type '3' to view the GNU General Public License version 3 (GPLv3).

Type 'L' to view the Lesser GNU General Public License version 2.1 (LGPLv2.1).

Type 'y' to accept this license offer.

Type 'n' to decline this license offer.

'L'をタイプすると、ライセンス規約が表示される。
'y'とタイプすると、同意したことになり、コンパイルが始まるので眺める。結構長い。

以下が表示されるとconfigureが終了。
Qt is now configured for building. Just run mingw32-make.

To reconfigure, run mingw32-make confclean and configure.


mingw32-make

でmakeが始まる。とても長い。(4時間前後)

終われば、staticな実行ファイルが生成できるようになる。
ただ、実行ファイルサイズが極端に増えるので注意。
(staticにしなくても、同じぐらいのサイズ。)

また、mingwm10.dll の依存関係を切るには、Makefile.releaseのLFLAGSから -mthreads を削除すればいい。

■ とりあえず、mingwm10.dll の依存関係を切るには、プロジェクトの中のMakefile.releaseってファイルの中のLFLAGSから-mthreads を削除ってことなので削除してみたが・・・・・削除してもビルド時に誰かが上書きしているみたいでできないorz

結局実行ファイルと一緒にdllを添付しないとならないっぽい。
今回のプロジェクトでは、以下のDLLが必要だった。

・libgcc_s_dw2-1.dll
・mingwm10.dll
・QtCore4.dll
・QtGui4.dll

ライセンスの問題もあるし、OSSはなんかいろいろめんどくさいなぁ・・・・

だいたいGPLライセンスってソースコードの公開を強制するところが嫌なんだよね。なんか上から目線な感じがして・・・
使えるツールとソースを無料で使わせてもらうんだから、使った人も公開してほしいって考えは解かる的なことを言っている人がいるけど、要するに、
「俺様が公開してんだからお前も当然公開しろ(命令)」ってのがGPLってライセンスってことだよね?

なんかオープンなのに窮屈だ・・・・・よくわかってないからかも知れないけど・・・・

2010-05-25(Tue)

Qt CreatorをVMware Ubuntu10.04にインストール

UbuntuのFirefoxでダウンロード
http://qt.nokia.com/downloads-jp

「LGPL / 無償ダウンロード」の「Qt SDK for Linux/X11 32-bitのダウンロード** (367 Mb)」をクリックしてダウンロード
※「Qt Creator IDE」の「Linux/X11 32-bit版Qt Creator 1.3.1 バイナリのダウンロード」では無いことに注意。
俺がダウンロードしたときは「qt-sdk-linux-x86-opensource-2010.02.bin」がダウンロードできた。

Qt Labs JapanQt SDK のインストール ~ Linux編を参照してインストール。
$ chmod +x qt-sdk-linux-x86-opensource-2010.02.bin
$ ./qt-sdk-linux-x86-opensource-2010.02.bin

でインストールが始まる。

インストーラーから直接 Qt Creator を起動すると英語版になる。
デスクトップに作成された Qt Creator のショートカットから起動しなおすと日本語になる。

Ubuntu10.04では、デスクトップのショートカットの表示がおかしい。
ダブルクリックして実行しようとすると、「信用できないアプリケーションのランチャ」という警告が出る。

実行属性が付いていないためのようなので、以下のコマンドで実行属性を付ける
$ chmod +x QtCreator.desktop

もしくは、「ファイルブラウザ」からショートカットを右クリックしてプルダウンメニューから「プロパティ」を選択し、「アクセス権」タブの「プログラムとして実行できる」を選択状態にする。

※インストールときにsudoでrootで実行すると所有者がrootになってしまうようだ。
2010-05-25(Tue)

Amazonで予約しておいたCDが届いた

う~ん・・・フルバージョンはこんな曲ですか・・・・ちょっといまいち。( ̄~ ̄;)
初回生産のノンクレジットOP,EDのDVDは・・・・BDだったら良かったのに・・・・


My Soul, Your Beats!/Brave Song 【初回生産限定盤】

2010-05-22(Sat)

本日のアキバ散歩

以下の本を購入

   

ウルトラジャンプ 2010年 6月号 [雑誌]
鉄のラインバレル 15 (チャンピオンREDコミックス)
トライガンマキシマム N-2 (ヤングキングコミックスNEO)
Linuxデバイスドライバプログラミング
2010-05-21(Fri)

Amazonマーケットプレイスで購入した本

初めてAmazonマーケットプレイスで購入した本が届いた。

う~ん・・・・正直言ってもう二度と頼まないな・・・・

>コンディション: 中古品 - 良い
>出品者への注意: きれいです。書き込みもなし


って書いてあるのに書き込みが結構あった。(11箇所ほどメモと下線等)

まぁめんどくさいのでクレームはつけないけど、出品者の評価は申し訳ないが「悪い」をつけさせてもらう。
「非常に悪い」では無いのは、迅速に発送されたから・・・・それは満足。

まぁ中古だから、書き込みとか無しじゃなきゃヤダとか思っていないが、嘘はいけない!

2010-05-21(Fri)

会社帰りに飲んで帰った

今日は地方に出張している昔一緒に仕事したメンバーが来ていたので会社帰りに飲んで帰った。
20100521_1.jpg
お疲れ!

2010-05-20(Thu)

最近流行りのGitを使う

■ Subversionをやめて最近流行りのGitを使うとかどうよ?

http://journal.mycom.co.jp/news/2010/03/09/014/index.html
http://sourceforge.jp/magazine/09/06/19/0340248
http://d.hatena.ne.jp/Wacky/20090331/1238515915

公式サイト
http://code.google.com/p/tortoisegit/

日本語言語ファイルの作成もされているみたいだけど、残念ながらバージョンが古い・・・・
公式では1.4.4.0なのに、日本語言語ファイル対応ができているのは1.3.2.0までで、32bitだけみたい。
http://sourceforge.jp/projects/tortoisegit/

TortoiseSVNのときは各言語ファイルも公式に存在してた。
バージョンアップにあわせてランゲージパックも出ていたのでいつも最新版が日本語で使えたのに・・・・

いまさらだが、CVSにもTortoiseCVSっていうクライアントがあることを今知った・・・・
http://www.tortoisecvs.org/download.shtml
http://variousible.sakura.ne.jp/JSpe/WinTools/cvs.html

2010-05-20(Thu)

VMware Player 3.0でUbuntu10.04 or 9.10を簡易インストール

以前ダウンロードできるUbuntu8.04のVMware用仮想マシンを使用したが、VMware Player 3.0では仮想マシンを作成する機能がついているので、実はもっと最新のUbuntu Remix CD から仮想マシンを作成することができる。

しかも、「簡易インストール」という機能があり、VMware toolsも自動時にインストールされるので簡単便利!

more...

2010-05-20(Thu)

Amazonで本を購入

ちょっと気になっていたけど買わずじまいだった本を購入。ブートの本はマーケットプレイスで古本を購入した。
 

Linuxカーネル解析入門 (I・O BOOKS)
Linuxのブートプロセスをみる (UNIXMAGAZINE COLLECTION)

2010-05-19(Wed)

Ubuntu Linuxで使えるGUIのSubversionクライアント

Ubuntu Linuxで使えるGUIのSubversionクライアントを探していたら、以下のようなものを発見
SubdiverSVN
http://subdiversvn.sourceforge.net/

「あの有名なWindows版SVNクライアント」って「TortoiseSVN」のことだよねやっぱり・・・・

2010-05-18(Tue)

VMwareのUbuntuにSSH(Secure Shell)サーバをインストール

VMwareUbuntuにSSH(Secure Shell)サーバをインストールしてWindowsのクライアント(Tera Term)からアクセスする。

SSHサーバは以下でインストールできる。
$ sudo apt-get install ssh


以下のコマンドでIPアドレスを調べてクライアントからアクセスする。
$ ifconfig


Windows側クライアントソフトはSSH2に対応したTera Term
以下からダウンロードしてインストールする。
http://sourceforge.jp/projects/ttssh2/

「コンパクトインストール」でOK

2010-05-17(Mon)

会社帰りに秋葉原で買い物

こないだのアキバ散歩で物色していたマザーボードを購入。
DDR2が使えて、HDMI装備でmicro-ATXでPCIスロットが2つで、ソケット775の・・・・・今の録画PCのマザーがCPU周りちょっと接触不良っっぽくなっていて以前電源が入らなくなったことがあるので交換用・・・・

more...

2010-05-15(Sat)

本日のアキバ散歩

以下の本を購入

Twitter API プログラミング
2010-05-13(Thu)

HDDの容量を取得する

WMIでHDDの容量とかを取得する。
WMI Code Creator v1.0 でvbsのコードが簡単に出力できるので、HDDの容量を取得してみた。

以下 WMI Code Creator が出力したコード
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
'Set colItems = objWMIService.ExecQuery( _
' "SELECT * FROM Win32_LogicalDisk",,48)
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_LogicalDisk",,48)
For Each objItem in colItems
Wscript.Echo "-----------------------------------"
Wscript.Echo "Win32_LogicalDisk instance"
Wscript.Echo "-----------------------------------"
Wscript.Echo "DeviceID: " & objItem.DeviceID
Wscript.Echo "DriveType: " & objItem.DriveType
Wscript.Echo "FreeSpace: " & objItem.FreeSpace
Wscript.Echo "Size: " & objItem.Size
Next

DeviceIDでHDDディスクは3になるっぽいから以下のように修正
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3",,48)

JScriptに変更
var objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!//./root/CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3");
var emu = new Enumerator(colItems);
for(; !emu.atEnd(); emu.moveNext()) {
WScript.Echo("-----------------------------------\n");
WScript.Echo("Win32_LogicalDisk instance\n");
WScript.Echo("-----------------------------------\n");
WScript.Echo("DeviceID: " + emu.item().DeviceID);
WScript.Echo("DriveType: " + emu.item().DriveType);
WScript.Echo("FreeSpace: " + emu.item().FreeSpace);
WScript.Echo("Size: " + emu.item().Size);
}

これでHDDの残り容量が指定数を割り込んだらTweetするとかメールするとかのJScriptが出来るな・・・・・
2010-05-12(Wed)

中尉(金) 1st Lieutenant Gold に昇進しました

BF2142-2010-05-12-21-50-01-.jpg

2010-05-11(Tue)

HDDの温度情報

自作PCの内部温度が気になったのでハードウェアの情報を表示できるツールで表示してみたらHDDの温度までわかることが今更ながらわかった・・・・

S.M.A.R.TをWMIでWSHを使って取得できるらしい。
以下ページのVBSのコードをJScriptにしてみた。
http://tess.sblo.jp/article/12494888.html

以下参考にしたVBS
'[smart.vbs]
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("SELECT * FROM MSStorageDriver_FailurePredictData",,48)
For Each objItem in colItems
strMsg = strMsg & "-----------------------------------" & vbCRLF
strMsg = strMsg & "DeviceName: " & mid(objItem.InstanceName,1,22) & vbCRLF
For i = 2 To UBound(objItem.VendorSpecific) Step 12
If objItem.VendorSpecific(i) = 1 Then ' == Raw Read Error Rate
HDDHealth = objItem.VendorSpecific(i+3)
ElseIf objItem.VendorSpecific(i) = 194 Then ' == temprature
Temperature = objItem.VendorSpecific(i+5)
End If
Next
strMsg = strMsg & "HDD Health : " & HDDHealth & " %" & vbCRLF
strMsg = strMsg & "Temperature: " & Temperature & " ℃" & vbCRLF
Next
strMsg = strMsg & "-----------------------------------" & vbCRLF
msgBox strMsg, vbInformation, WScript.ScriptName

以下テキトウに変換したJScript
var strComputer = ".";
var objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!//./root/WMI");
var strMsg = "";
var HDDHealth = 0;
var Temperature = 0;

var colItems = objWMIService.ExecQuery("SELECT * FROM MSStorageDriver_FailurePredictData");
var emu = new Enumerator(colItems);
for(; !emu.atEnd(); emu.moveNext()) {
strMsg = strMsg + "-----------------------------------\n";
strMsg = strMsg + "DeviceName: " + emu.item().InstanceName.slice(1,22) + "\n";
for(i = 2; i < emu.item().VendorSpecific.ubound(); i+=12) {
if(emu.item().VendorSpecific(i) == 1) {
HDDHealth = emu.item().VendorSpecific(i + 3);
} else if(emu.item().VendorSpecific(i) == 194) {
Temperature = emu.item().VendorSpecific(i + 5);
}
}
strMsg = strMsg + "HDD Health : " + HDDHealth + " %\n";
strMsg = strMsg + "Temperature: " + Temperature + " ℃\n";
}
strMsg = strMsg + "-----------------------------------\n";
WScript.Echo(strMsg);
2010-05-09(Sun)

本日のアキバ散歩

今日は何も買わなかった・・・・

2010-05-06(Thu)

おいしくいただきました

20100506.jpg

2010-05-05(Wed)

もうちょっと

貝がちょっとしか拾えなかったので、今度は違う浜に行ってみた。
ある程度の大きさのものだけ選りすぐって後は放流~それでもまだ小さいけど・・・・
20100505.jpg

2010-05-04(Tue)

海に行ってみた

ちょっと海に行ってみた。水が程よく冷たくて気持ちよかった。貝も拾った。
20100504.jpg

2010-05-02(Sun)

JScriptでTwitterAPI

どっかのページを参考にしてJScriptを使ってTwiiterAPIでTweetするスクリプトを作ってみた。
タスクスケジューラと組み合わせてWindowsだけでbotとか作れそうじゃん!( ̄~ ̄;)

しかし、BASIC認証は6月末で使えなくなるってことらしいのでOAuth認証を試してみたいんだけどめんどくさそう・・・・orz
var username = "ぼげほげ";
var password = "ほげほげ";

var args = WScript.Arguments;
var text = encodeURIComponent(args.Item(0));

// MSXMLでHTTP通信を行う
var request = new ActiveXObject("Msxml2.XMLHTTP.3.0");
request.open("POST", "https://twitter.com/statuses/update.xml?status="+text, true, username, password);

// Responseのイベントハンドラ
request.onreadystatechange = function()
{
if(request.readyState == 4) {
// 通信完了
if(request.status>=400) {
// ステータスコードが400以上ならエラー
WScript.Echo("HTTP Error");
}
WScript.Quit();
}
}

// Requestを送信
request.send();

// Responseが来るまで待つ
while(true) {
WScript.Sleep(1000);
}


プロフィール

yaman

Author:yaman

カレンダー
04 | 2010/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 - - - - -
ブログ内検索
カテゴリー
タグリスト

バイク 買い物 アキバ 秋葉原 写真 ゲーム アフィリエイト チャレンジツーリング パソコン バトルフィールド カメラ 漫画 株式投資 DTV  ダーツ 道の駅スタンプブック ロト7 バトルフィールド2142 Ubuntu 大戸屋 Linux PT2 プログラミング ハイウェイスタンプ 温泉 Git 飲み食い 書籍 アニメ SSTR Windows Ingress ラジオ会館 機械工作 日本酒 VMware バトルフィールド4 Javascript TortoiseGit LightWave  ホビー バトルフィールド3 YSP 日曜大工 仕事 Windows7 WHS GoogleMap ビリヤード 電子工作 Subversion PC CentOS ドネルケバブ 歯医者 晩飯 チャンダン PSP Chrome Windows10 動画エンコード 料理 THETA 酒造 月例ツーリング ロト6 コミケ ラーメン Windows8 CD バトルフィールド2 宝くじ Android OSM バトルフィールド・バッドカンパニー2 

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
FC2カウンター
現在の閲覧者数
現在の閲覧者数:
Twitter
リンク
RSSフィード
コミックダッシュ