Windows
Up one levelWindowsでCPU負荷の履歴データを取る
仕事関係でレポートを書くために必要になった。Unixだと確かコマンドがあったはずだけど...
タスクマネージャを使えばグラフで見れるけど、は感覚的にしかわからないので、データとして取得する方法がないか調べてみた。
以下のようにすれば取れるらしい。
typeperf "\Processor(_Total)\% Processor Time"
-o <ファイル名> で指定ファイルへ記録することができる。
終了するには Ctrl+C
なんかデータ項目(カウンタ)の名称がややこしい感じで、なんでこんなことになってるのかな?
-q オプションを指定すると指定できるカウンタの一覧が表示されるけど、えらくたくさん表示される。しかも長い。
なんかの規格で決まってるのかな?
- Category(s)
- Windows
- The URL to Trackback this entry is:
- http://www.okalabo.office-on-the.net/Blog/windowscpu8ca08377306e5c656b7430fc30bf309253d6308b/tbping
Vistaでネット接続できなくなった理由
以前、「Vista PCを自宅LANに繋ぐとインターネットが見えなくなる」とぼやいたことがあったけども、今日まじめに調べてみたら、ローカルの他のPCへは問題なく繋がり、どうやらブロードバンドルータがおかしくなっているらしいということがわかった。
ルータの設定やログはブラウザから見れるようになっているので、ログを見ようと思っても応答しなくなっていて、電源OFF-ONで復活する。
なんか不具合報告でもあるのかな?と思い、メーカーのHPを覗いてみたら、こんなのがあった。↓
これだ...
それにしても、なぜハングアップまでしちゃうんだろう?
Vistaって、なんか変なパケットでもおくっているのかしら?IPV6がらみかな?
とにかく、ファームウェアを更新して解決。めでたしめでたし。
- The URL to Trackback this entry is:
- http://www.okalabo.office-on-the.net/Blog/vista30cd30c330c863a57d9a304d306a304f306a3063305f74067531/tbping
X61をWindows XPにダウングレード
Windowsでの仕事が本格的になってきたので、ノートPC (X61) もWindowsメインで使えるようにするため、XPにダウングレードした。
(やはりVistaじゃ重くてやってられない...)
いろいろネット上で手順は挙がっているが、他人のやりかただと何かと自分の要件が満たされないこともあり、やはりリファレンスとして以下のLenovoのサイトを参考にした。
が、結局2回も入れなおすことになってしまった...
経緯は、
- Vistaの後ろにインストールしたLinuxパーテションを削除し、XPをインストール
⇒ システムのドライブレターがD:になっているおり、なんか気持ち悪いのでレジストリ書き換えでのドライブレター変更を敢行。
⇒ 起動できなくなる...(1回目) - Vistaのパーテションも残しておきたいと思ったので、XP導入後、作成しておいたDVDリカバリメディアから戻そうとしたら、有無を言わさず工場出荷時に戻されてしまう...(2回目)
今3回目のXP導入して動くようになったところ。
あと、Vistaの戻しとLinuxを入れたいんだけど、今回はもう少し慎重に行こう。
いろいろと教訓があったので、手順を記しておく。
XP導入手順
バックアップを行う
一応Vistaのパーテションもとっておきたいので、XPインストール後に戻せるようにするため、「ThinkVantage」メニューから現時点のフルバックアップを作成する。
それとは別に、ハードウェアドライバの一部をXPでも流用するため、C:\SWTOOLSも退避しておく。
(必要なディスク容量は、フルバックアップに約6G, SWTOOLS に約1.8G)
DVDリカバリメディアを作成する
万が一の場合のためにリカバリメディアを作成しておく。
上に書いたけど、このリカバリメディアで起動すると工場出荷時への戻ししかできないので、使う局面としてはPC単体だけでは起動できなくなった場合しか無いような気がする。
FDでドライバディスク作成
上記URLから以下2つをダウンロード
- インテル(R) マトリクス・ストレージ・マネージャー用 32 ビット フロッピー設定ユーティリティー (293KB)
- RAID/AHCI ソフトウェア - インテル(R) マトリクス・ストレージ・マネージャー (21715KB)
取り急ぎ、上の方はXPのインストール時に使うことになるので、以下の手順でディスクを作成しておく。
(1) ダウンロードした f6flpy32.exe を実行する。
(2) フロッピーを挿入するようメッセージが出るので、空のディスクを挿入。
Windows XPメディアからboot
XPのメディアからbootして、インストールを開始する。
注意しなければいけないのは、直後に外部ドライバを読み込ませるためのF6を押すタイミングがあるので、そこを逃さないこと。
F6を押しておくと、しばらくしてから英語の入力画面待ちで停止する。この画面で キーボードの S (Specify Additional Device) を押下する。
- Aドライブにドライバーディスクを入れろと出るので、先ほど作成したフロッピーを入れてENTER
- Intel(R) 82801HEM/HBM SATA AHCI Controller(Mobile ICH8M-E/M) を選択(3番目)
先ほどと同じ画面が表示され、さらにドライバを読み込むのか聞かれるので、今度はENTERでインストールを継続する。
あとは通常のXPインストールと同様。
※注意 - Floppy は入れっぱなしにしておく。WindowsファイルのコピーはじめにiaStor.sysをフロッピーからコピーするため。
導入後の設定
ネットワークドライバの導入
インターネットにつなぐため、まずはIntel PRO/1000 LAN Adapter Softwareをインストール
Windows Update実行
Windows Updateを実行してパッチ等導入する。
ドライバのインストール
デバイスマネージャを開き、黄色くなっているデバイスをインストールして問題を解消する。
冒頭に示したリンクの「ドライバーの導入手順」を参考にインストールしてゆく。
- Category(s)
- Windows
- The URL to Trackback this entry is:
- http://www.okalabo.office-on-the.net/Blog/x613092windows-xp306b30a630f330ec30fc/tbping
CopyHereの挙動
最近仕事で、「WindowsのZIPフォルダを使ってZIP圧縮/解凍機能を作成する」というのをやってたりする。
処理自体はVBScriptとかで書いたものがいろいろ公開されているけど、今回はC/C++で作るということで、COMプログラミングのあたりからいろいろ苦労して、ずいぶん勉強になった。
それはいいんだけど、タイトルにも挙げた、実際にZIPフォルダ(から/へ)コピーするためのCopyHereメソッドの挙動がどうもよく分からなくて、同期になったり非同期になったりするように見えて(ググっても結構情報が錯綜している)、どういうことかと思っていたら、結局は以下のようなことらしい。
- ZIPフォルダへのコピー(圧縮)は非同期動作
- ZIPフォルダからのコピー(解凍)は同期動作
どうしてこういう仕様なのかいまいちよく分からないけど。
今回要件として、「コピーが完了したかのステータスが取得できること」というのがあって、圧縮側の非同期動作はちょっと困っていたりする。
基本的にはコピーが完了するまで待つしかないのかな、と思っているんだけど、公開されているスクリプトを見ると、結構やり方はあるようで、「フォルダ内ファイル数が変化するまで」とか、「フォルダ(実体はZIPファイル)のロックが開放されるまで」とかあるみたいだけど、自分は後者の方法で行うことにした。
これに加え、ステータスを取得するために処理前後のタイムスタンプを比較する(タイムスタンプが変わらなければ失敗と判断する)ということをやっているんだけど、新規ZIPファイル作成の時はこれがまた不思議な動作をして困っている。
圧縮時は、
- ZIPファイルを排他ロックする
- 一時ファイルを作成して圧縮処理を行う
- 圧縮が完了したら元のZIPファイルを削除、一時ファイルをZIPファイル名にリネームする
みたいな動作をしているらしいけど、新規ファイルの作成時に限っては、あらかじめ作成しておいた「空の」ZIPファイルが、圧縮処理中に削除されてしまう。
通常は問題ないけれど、大量のファイルを圧縮しようとしたときなどはダイアログが出てキャンセル可能になるため、キャンセルするとZIPファイルも削除されたままになって、プログラムの方が無限ループに陥っちゃうんだよね...
なにかいい方法ないかな...
- Category(s)
- Windows
- The URL to Trackback this entry is:
- http://www.okalabo.office-on-the.net/Blog/copyhere306e631952d5/tbping
VisualStudioのダイアログエディタでコンボボックスの高さを広げる
先日、VC++のプログラムのなんでもないところでつまずいてしまったので忘れないように書いておく。
VisualStudioのダイアログエディタでダイアログリソースを作成し、コンボボックスを配置するとデフォルトでは高さが1 (1行分) となっており、実行時に複数項目があっても表示上1行となってしまう。
こんな状態で、高さが変更できないのでどうすればいいのかとしばらく悩んでしまったが、そのままコンボボックス右端のボタン(▼)をマウスでクリックすると、
このような状態になり、高さを変更できるようになった。
気づけばなんでもないことなんだけど、マニュアルとかどこを参照すればよいかさっぱりわからず2日くらい迷ってしまった。
- The URL to Trackback this entry is:
- http://www.okalabo.office-on-the.net/Blog/visualstudio306e30a430a230ed30a830a330bf30b330f330c330af30b9306e9ad8305530925e83308b/tbping