B-NAS utils bnasupsc v1.3.0 マイナーバージョンアップ ― 2012/05/02 00:00
Borland C++ 5.02 on Windows 7 ― 2012/05/01 00:00
先日買った Fujitsu Stylistic Q550/C に、10数年越しで使って未だに GetHTMLW のコンパイルで欠かせない Borland C++ 5.02 をインストールしたが、なぜか動かない。
Borland C++ 5.02 起動のSPLASHウインドウが出たのち、
「BCW.EXE は動作を停止しました」
となる。
Thinkpad X201s では Windows 7 でも動作しているので、動かないはずはない。
いろいろと調べたら、DEP が動作を停止させていることがわかった。ネットの皆さんありがとう。
添付の画像は Windows XP の DEP 設定画面だが、上の方を選択するか、BCW.EXE を DEP の対象外すれば動くようだ。
本来は、Borland C++ 5.02 から 64bit プログラムのコンパイルできる処理系に乗り換えねばならないのだけれど、GetHTMLW だけは、Window Library として OWL (Borland 版 MFC, VCL の基本形?) にどっぷりなので移行が難しいのです。
Borland C++ 5.02 起動のSPLASHウインドウが出たのち、
「BCW.EXE は動作を停止しました」
となる。
Thinkpad X201s では Windows 7 でも動作しているので、動かないはずはない。
いろいろと調べたら、DEP が動作を停止させていることがわかった。ネットの皆さんありがとう。
添付の画像は Windows XP の DEP 設定画面だが、上の方を選択するか、BCW.EXE を DEP の対象外すれば動くようだ。
本来は、Borland C++ 5.02 から 64bit プログラムのコンパイルできる処理系に乗り換えねばならないのだけれど、GetHTMLW だけは、Window Library として OWL (Borland 版 MFC, VCL の基本形?) にどっぷりなので移行が難しいのです。
B-NAS utils バージョンアップ(updated) ― 2011/05/17 00:00
Buffalo の NAS と UPS との連動で PC をシャットダウンさせるユーティリティーに、機能追加をしてアップロードしました。
http://www.ne.jp/asahi/net/pockey/program/bnasutils-1.2.0a.zip
です。
機能追加しただけですから、シャットダウンだけをさせるなら前バージョンの方がシンプルでいいかもしれません。
クライアント側に、シャットダウン以外の動作をさせることが出来るようにしました。
http://www.ne.jp/asahi/net/pockey/program/bnasutils-1.2.0a.zip
です。
機能追加しただけですから、シャットダウンだけをさせるなら前バージョンの方がシンプルでいいかもしれません。
クライアント側に、シャットダウン以外の動作をさせることが出来るようにしました。
一台の UPS と NAS と PC をすべて連携してシャットダウンさせたい ― 2011/04/20 00:00
計画停電の件もあり、事前に TV 録画用 PC や NAS の電源を落とし忘れて外出することもあるだろうと、UPS を買いました。
当然、PC との連携機能があり、USB でつなぐことで、必要な場合に PC を自動で shutdown できます。
また、Buffalo の NAS もあり、なんとこれには UPS と USB でつないで必要な shutdown が出来る機能があります。しかも、複数の同社の NAS があれば、UPS とつないだ NAS をサーバにして、他の NAS も自動で shutdown できるという。これはすばらしい。
Buffalo の NAS は Embedded Linux で動いているので、ハードが壊れたり生産終了になっても、disk を他の Linux マシンに持って行けば RAID アレイのマウントも出来るだろうから、若干安心だし、定期自己診断機能や、メールでステータスを送ってくれたり、DLNA やユーザ別のアクセス権限管理、つながっている PC の動作に合わせて電源の自動 ON/OFF できるなど、至れり尽くせりなので買ったのだが、さらに UPS との連動機能があるというのはうれしい限りだ。
メーカではサポートしていないと謳っているが、4 port の USB ハブを介して、USB HDD、 プリンタ、 UPS とつないでいるが全く問題なく動作している。
ところが、UPS には USB の口が一つしかない。PC と NAS どちらにつなぐのが良いのか。出来ればすべて管理したい。
PC と NAS との電源連動が機能的にはあるが、NAS から PC を落とすことはあきらめるとしても、PC から NAS を落とすことは出来てもおかしくない。ところが、例えば NAS の RAID check 中に PC から NAS を落とそうとしても、公開されている機能を使うなら、Web 管理で login をしての操作で落とすことが出来るくらいで、自動化はちょっと困難そう。
これが出来そうなツールが Vector にあるが、最近の NAS では動作しない報告もインターネット上にあるので期待できない。
さて、どうしたものか。
でも、NAS 同士はネットワーク経由で他を落とすことが出来るではないか。
ということで、UPS からの信号をどうやって NAS 間同士でやり取りしているかを解析することにした。
Wireshark と WinPCap を使ってパケットモニタをする。すると、それらしいパケットは見つからない。よく考えれば、UPS 連動でのサーバ/クライアント間通信は、broadcast パケットでなければ、イーサネットハブ(switch)が送信先ポートにしか飛ばさないわけで、いわゆる「バカハブ」でもない限り、PC から NAS 間通信のパケットをモニタできるわけではない。いまさら 10Base-T のハブをこの解析目的のために 100円だったとしても買いたくないし、そもそもネットワークアナライザ的な装置の入手も出来ない。何か良い手はないか。
ということでアッサリ一週間が過ぎたとき、何とか NAS-PC-NAS のようなトポロジでつなぐことが出来ればモニタできるのにな、とふと思い、そういえば USB 接続の 100BaseT のアダプタをたまたま持っていることを思い出し、これに Windows のネットワークブリッジ機能を使えば、NAS-PC-NAS 接続が出来そうである。やるとあっさりつながり、Wireshark でのモニタが出来るようになった。
あとは簡単である。かなりシンプルなやり取りを NAS 間でしていることがわかったので、同じやり取りをするプログラムを組めば、NAS-PC 間で UPS の情報を共有できるので、一つの USB 接続で一蓮托生で shutdown できる。
早速作ってみたので、アップロードしておきます。
B-NAS Utility ver 1.0.0
http://www.ne.jp/asahi/net/pockey/program/bnasutils-1.0.0.zip
UPS を PC とつなぎ、PC を NAS shutdown 指令用のサーバとする物と、UPS を NAS とつなぎ、PC を NAS shutdown 指令のクライアントとする物の二つを作ってみました。
最初は PC をサーバとすることを考えてこれを先に作りましたが、現実には、他のノート PC から NAS へのアクセスがあり、NAS だけが立ち上がっていることが多く、PC だけ立ち上がっていることはほぼ無いため、NAS に UPS をつなげて使うため、PC をクライアントにするのも作りました。
これで停電でも面倒なことにならずに済みそうです。
当然、PC との連携機能があり、USB でつなぐことで、必要な場合に PC を自動で shutdown できます。
また、Buffalo の NAS もあり、なんとこれには UPS と USB でつないで必要な shutdown が出来る機能があります。しかも、複数の同社の NAS があれば、UPS とつないだ NAS をサーバにして、他の NAS も自動で shutdown できるという。これはすばらしい。
Buffalo の NAS は Embedded Linux で動いているので、ハードが壊れたり生産終了になっても、disk を他の Linux マシンに持って行けば RAID アレイのマウントも出来るだろうから、若干安心だし、定期自己診断機能や、メールでステータスを送ってくれたり、DLNA やユーザ別のアクセス権限管理、つながっている PC の動作に合わせて電源の自動 ON/OFF できるなど、至れり尽くせりなので買ったのだが、さらに UPS との連動機能があるというのはうれしい限りだ。
メーカではサポートしていないと謳っているが、4 port の USB ハブを介して、USB HDD、 プリンタ、 UPS とつないでいるが全く問題なく動作している。
ところが、UPS には USB の口が一つしかない。PC と NAS どちらにつなぐのが良いのか。出来ればすべて管理したい。
PC と NAS との電源連動が機能的にはあるが、NAS から PC を落とすことはあきらめるとしても、PC から NAS を落とすことは出来てもおかしくない。ところが、例えば NAS の RAID check 中に PC から NAS を落とそうとしても、公開されている機能を使うなら、Web 管理で login をしての操作で落とすことが出来るくらいで、自動化はちょっと困難そう。
これが出来そうなツールが Vector にあるが、最近の NAS では動作しない報告もインターネット上にあるので期待できない。
さて、どうしたものか。
でも、NAS 同士はネットワーク経由で他を落とすことが出来るではないか。
ということで、UPS からの信号をどうやって NAS 間同士でやり取りしているかを解析することにした。
Wireshark と WinPCap を使ってパケットモニタをする。すると、それらしいパケットは見つからない。よく考えれば、UPS 連動でのサーバ/クライアント間通信は、broadcast パケットでなければ、イーサネットハブ(switch)が送信先ポートにしか飛ばさないわけで、いわゆる「バカハブ」でもない限り、PC から NAS 間通信のパケットをモニタできるわけではない。いまさら 10Base-T のハブをこの解析目的のために 100円だったとしても買いたくないし、そもそもネットワークアナライザ的な装置の入手も出来ない。何か良い手はないか。
ということでアッサリ一週間が過ぎたとき、何とか NAS-PC-NAS のようなトポロジでつなぐことが出来ればモニタできるのにな、とふと思い、そういえば USB 接続の 100BaseT のアダプタをたまたま持っていることを思い出し、これに Windows のネットワークブリッジ機能を使えば、NAS-PC-NAS 接続が出来そうである。やるとあっさりつながり、Wireshark でのモニタが出来るようになった。
あとは簡単である。かなりシンプルなやり取りを NAS 間でしていることがわかったので、同じやり取りをするプログラムを組めば、NAS-PC 間で UPS の情報を共有できるので、一つの USB 接続で一蓮托生で shutdown できる。
早速作ってみたので、アップロードしておきます。
B-NAS Utility ver 1.0.0
http://www.ne.jp/asahi/net/pockey/program/bnasutils-1.0.0.zip
UPS を PC とつなぎ、PC を NAS shutdown 指令用のサーバとする物と、UPS を NAS とつなぎ、PC を NAS shutdown 指令のクライアントとする物の二つを作ってみました。
最初は PC をサーバとすることを考えてこれを先に作りましたが、現実には、他のノート PC から NAS へのアクセスがあり、NAS だけが立ち上がっていることが多く、PC だけ立ち上がっていることはほぼ無いため、NAS に UPS をつなげて使うため、PC をクライアントにするのも作りました。
これで停電でも面倒なことにならずに済みそうです。
Bluetooth ActiveSync を自動切断したい ― 2011/03/21 01:00
Bluetooth で ActiveSync すると、ずっとつながっているのと、ActiveSync が Windows Mobile をサスペンドさせないので、電池の減りが早くて、半日放っておくと電池残量が半分になっている! なんてことがたびたびです。
この対策をしようと、Mortscript を利用して、ActiveSync が idle の状態なら Bluetooth ActiveSync 接続(以下 BTAS) を自動的に切り、また一定期間後に BTAS 接続をしようと組んでみましたが、BTAS 接続を切った後、WinMo がサスペンド状態になると、Mortscript 自体のタイマーが継続されずに、次回の接続が行われません。ここで、定期的に WinMo をサスペンドさせないよう細工も出来ますが、そうすると電池の減り対策にならないようです。BTAS で電池を食うのは、Bluetooth 通信で食うパワーかと思っていましたが、実際には、WinMo がサスペンド状態にならないことが支配的に見えます。
Mortscript で実現した機能はそれは魅力的でしたが、志半ばで頓挫し、心の中で突っかかっていたので、C で組んでみました。
http://www.ne.jp/asahi/net/pockey/program/autobtas_1.0.5.zip
あと、本プログラムの作成にはネット上の多くの情報を参考にしたため、メモ的に、Mortscript で組んだときの code も記しておきます。
この対策をしようと、Mortscript を利用して、ActiveSync が idle の状態なら Bluetooth ActiveSync 接続(以下 BTAS) を自動的に切り、また一定期間後に BTAS 接続をしようと組んでみましたが、BTAS 接続を切った後、WinMo がサスペンド状態になると、Mortscript 自体のタイマーが継続されずに、次回の接続が行われません。ここで、定期的に WinMo をサスペンドさせないよう細工も出来ますが、そうすると電池の減り対策にならないようです。BTAS で電池を食うのは、Bluetooth 通信で食うパワーかと思っていましたが、実際には、WinMo がサスペンド状態にならないことが支配的に見えます。
Mortscript で実現した機能はそれは魅力的でしたが、志半ばで頓挫し、心の中で突っかかっていたので、C で組んでみました。
http://www.ne.jp/asahi/net/pockey/program/autobtas_1.0.5.zip
あと、本プログラムの作成にはネット上の多くの情報を参考にしたため、メモ的に、Mortscript で組んだときの code も記しておきます。
--------------------------
Host="WM_MYNAME"
WinCaption="Connected to " & %Host%
RepllogStr="/remote /c:" & """" & %Host% & """"
RnaAppStr="-m -n -e""" & %Host% & """"
fError=0
tInterval=20
#SSExe="BlackMe.exe"
#SSPath="\My Storage\Program Files\BlackMe\" & %SSExe%
#Run("\Windows\rnaapp.exe", %RnaAppStr%)
#WaitFor(%WinCaption%, 15)
#Run("\Windows\udp2tcp.exe")
#Run("\Windows\rapiclnt.exe", "-dppp_peer")
While(fError=0)
# StatusMessage("Waiting for BT-AS Connected...", ST_MESSAGE, TRUE, TRUE)
Run ("\Windows\repllog.exe",%RepllogStr%)
sleep(10000)
cradled = RegRead(HKLM, "\System\State\Hardware", "Cradled")
if (cradled>0)
# StatusMessage("BT-AS Connected.")
cnt=-1
While((cnt<6)&&(cradled>0))
sleep (5000)
synchronizing = RegRead(HKLM, "\System\State\ActiveSync", "Synchronizing")
if (synchronizing=1)
cnt=0
# StatusMessage("BT-AS...Synchronizing")
elseif (cnt>=0)
cnt=cnt+1
# StatusMessage("BT-AS...Idle(" & cnt & ")" )
endif
cradled = RegRead(HKLM, "\System\State\Hardware", "Cradled")
EndWhile
if (cradled>0)
# StatusMessage("BT-AS...Disconnecting...")
Show(%WinCaption%)
SendCancel(%WinCaption%)
# StatusMessage("BT-AS...Sleeping...")
# if ((Length(SSexe)>0) && (ProcExists(SSExe) = FALSE))
# Run(SSPath)
# endif
for cnt = 1 to (2*tInterval)
IdleTimerReset
sleep(30000)
Next
else
fError=1
endif
if (ProcExists("repllog.exe") = FALSE)
fError=1
endif
elseif (Question("Connection failed. Retry?", "Bluetooth ActiveSync", "RetryCancel") <> 1)
fError=1
endif
EndWhile
Message("AutoBTAS...Quit")



最近のコメント