Windowsでプロセスで共有する変数を定義する

sharedセクションをつかう

以下のコードで変数iをプロセスで共有できる。すべてのプロセスがなくなると消える。

プロジェクトは以下を参照
https://github.com/ambiesoft/blogprogs/tree/master/5637

System.Windows.Forms.TextBoxのvalidatingとvalidated

WinformのTextコントロールにはvalidatingvalidatedイベントがある。

validatingイベント

Textコントロールがフォーカスを失ったり、親のフォームが閉じられようとすると呼ばれる。引数はCancelEventArgsであり、Canceltrueを設定することで、キャンセルすることができる。

キャンセルされると、フォーカスが移動できなかったりする。

validatedイベント

validatingが成功すると(Cancelされなかった)呼ばれる。validatingは上記のような状況で呼ばれるので、そのときに呼ばれる。Text変更時にはvalidatingvalidatedも呼ばれない。

サンプル

https://github.com/ambiesoft/blogprogs/tree/master/5623/txtvalidateandchange

ST31000524ASのファームウェアのアップデート

注意:これをやると壊れます。

Dellのinspiron-620sというマシンをWindows10で使っていたのだが、それに積んでいるHDDがLED点灯状態になる問題が発生した(普通は点滅する)。この現象に伴ってファイルが読めなくなる(読み込むと固まる)などの問題が発生したため、HDDのファームウェアのアップデートをしてみることにした。

HDDはST31000524ASという型番、検索するとDellでファームウェアのアップデートが提供されていたので実行してみることにした。


圧縮ファイルに含まれる、B7000100.exeというファイルを実行すると、おそらくファームウェアを適用したあとに再起動したのだが、HDDからブートできなくなってしまった。幸いこのマシンにはSSDも積んでいてそこからもブートできるようになっていたので、起動することはでき、HDDの中身も無事みたいだが、HDDが1つしかない場合は、Windowsを再インストールすることになると思う。

SSDからHDDで起動したあとにEasyBCDを使って再びHDDにBCDを書き込んで、HDDからブートできるように戻すことができた。

このソフトはブート時に使ったBCDの情報を表示するようだ。ここでE:\になっているのはシステムで予約済みの領域で、bootやEFIなどのフォルダとbootmgr,BOOTNXTなどのファイルがある。ここにBCDを書き込むことでもとに戻すことができた。

LED点灯問題は今のところ起きていないが、しばらく様子を見ないとわかない。

更新前のファームのバージョンは確認しなかったが、更新後の情報はHWiNFO64でみると以下のようになっていた。

追記

上記のファームウェアアップデートをしても同じ問題が再現したのでファームウェアの問題ではないようだった。その後色々しらべるとSEAGATEからディスク診断修復ツールであるSeaToolsというものがあるとわかったのでこれを試してみることにした。

ベーシックテストでもエラーはでなかったのでHDDにエラーはないものと思われる。

その後いろいろ調べてみると、同じような問題でDVDドライブがおかしくなるとLED点灯が起こるとあったので調べてみると問題が発生しているときはDVDドライブが見えなくなっていることがわかった。起動時から見えないときもあるし、起動してしばらくしてから見えなくなることもある。これが原因かもしれないので更に調査してみようと思う。

コマンドの時間を計測する

Linux

timeコマンドを使う

Windows

powershellのMesure-Commandを使う