泣きながらWindowsアプリケーションを移植した

「まれによくある」案件なのかも知れませんけど個人的に結構心に来たので書き留めておきたく。 社内のシステムを結構大がかりに入れ替えることになってウェブアプリケーションを中心に更新作業が発生しているのですけど、「前任者の忘れ形見」というか「いずれ踏む地雷」というか、割と業務に密着して利用されているWindowsアプリケーションがかなりの難敵であることが判明。概要はこんな感じ。

  • .NET Framework 1.1向け
  • 使用言語はC#
  • ソースはない
  • 開発環境もない(「Visual Studio .NET 2003」だと思う)
  • 仕様もない
でもって、特殊事情としては、
  • 僕にはC#での開発経験はない(「Hello, World!」でさえ怪しい)
  • 納期やばい
納期がやばいのは他の作業で時間を使いすぎた僕のせいなんですけどそれにしたってこの、プラスチック製果物ナイフでくじらを解体するような感覚に頭がクラクラしました。エンジニアの人ってすげえな。最近「俺、エンジニアじゃねーな…」と思う機会が多いので余計に。 結論を書くと、今のところ8割方動いてます。
  • .NET Framework 4 向け
  • 使用言語はC#
  • ソースはデコンパイルして再生成した
  • 開発環境は「Visual Studio 2010 Express」入れた
  • 仕様は今書いてる
誰かの助けになるとは思えませんが、一応気付いた点もメモ。

続きを読む

【Windows 7】 Cドライブの容量がやたらと少なくなってしまった… 【メモ】

29_02.jpg 社用PCは500GBのHDDを80Gと420GBとに分けて、その80GBを起動ドライブ(Cドライブ)としてWindows 7をインストールしているのですが、10ヶ月強使ってきてふとみたらば大変なことに。残りが5GBを切ってる。 いつの間にか浪費してしまったのだろうかと思って各ドライブをチェックしてみたのだけど、目に見えるフォルダを合計しても38.6GBにしかならず。一時ファイルを消すなどして対策してみたけれど依然として残り10GB程度と心許ない。なんだ…と思って調べたらどうやら「スリープ機能」と「ページファイル」のせいだと判明して対処。 詳細についてはこちらのサイトを参考にさせて頂きました。 pagefile.sysとhiberfil.sysを無効にする・削除する Windows 7 tips: hiberfil.sys と pagefile.sys を削除する : *n.on.log その結果、ここまで減りました。 29_02_01.jpg おーこれで大丈夫そう。

続きを読む

【Windows 7】 終了時にあれこれエラーが出てしまったのでなにがしかしたまとめ

相方のPCが終了時にエラーウィンドウを出すようになってしまいました。それも1つではなくて複数。 「OK」を押せば問題なく終了させられるものの、「シャットダウン」を押してすぐに終了できないのはそこはかとなく不便。ということでいろいろ調べて試してなんとか直ったっぽいのでやったことまとめ。 (ウィルスではないことは事前に確認済み)

その1:igfxpers.exe

Nvidiaのグラフィックスカード周りのアプリケーションだそうです。まあノートPCにはあんまり関係がないような気がするのですがどうなんだろう。グラフィックチップが使ってるという可能性もありますが、ともあれ停止させてみましょう。停止させるには、Windows起動時に自動的に起動しないようにすれば良いみたい。
  • 「windows」ボタンを押しながら「R」を押す
  • 「ファイル名を指定して実行」が開くので「msconfig」と入力して「OK」
  • 「システム構成」が開くので「スタートアップ」タブをクリック
  • 「igfxpers.exeと」「igfxtray.exe」「hkcmd.exe」の3つのチェックを外す
  • 再起動
※グラフィックボードとしてNvidiaの製品を使用している場合には無効にすべきではありません これでこのエラーは出なくなりましたが続いて次のエラー。

その2:Hidden Fax Window

どうやらFax関連のアプリケーションが上手く終了できていない様子。Faxなんか使ってないってば… というわけでサービスを止めればOK。
  1. 「コントロール パネル」「プログラムと機能」を開く
  2. 「Windowsの機能の有効化または無効化」をクリック
  3. 「Windowsの機能」が開くので「印刷とドキュメントサービス」の「Windows FAXとスキャン」のチェックを外す
  4. 再起動
次。

その3:MCI command handling window

いろいろ調べたところ音声関連のドライバを入れ直せば大丈夫みたい。
  1. デバイスマネージャを開く
  2. High Definition Audioデバイスをクリック
  3. ドライバータブをクリック
  4. 「削除」をクリック
  5. 再起動
  6. 起動時にWindows Updateから自動的にドライバーを再インストール(少し時間が掛かります)
ドライバーを削除したら音声が出なくなってしまってちょっと焦りましたが、 起動したら自動的にインストールされて一安心。賢い。 次。

その4:タッチパッド関連

アプリケーションの名前メモリ忘れましたが、タッチパッド関連のアプリケーションが上手く終了できてないと。 相方の要望でタッチパッドを無効にしているのでそのせいかも。 このアプリケーションはWindows起動時に自動実行されるのでそれを止めます。
  • 「windows」ボタンを押しながら「R」を押す
  • 「ファイル名を指定して実行」が開くので「msconfig」と入力して「OK」
  • 「システム構成」が開くので「スタートアップ」タブをクリック
  • 「Alps Pointing-device Driver」のチェックを外す
  • 再起動
ここまでで、エラーが出なくなりました。 なんだろう…余計なソフトウェアは入れていないはずなのだけど。 アップデートで意図しない挙動になる場合はあるしなんとも。Flashとか。 とりあえずここまでで様子見。 何かあればまた後日。

続きを読む

ダイナミックディスクをベーシックディスクに変換する

OSをWindows XPからWindows 7に変更することになって初めて知ったのですけど、あるバージョンのWindowsでダイナミックディスクに変換したHDDは、違うバージョンのWindowsではアクセスできないんですね。どんなエラーが出ているかは「コントロール パネル > 管理ツール > コンピュータの管理」で確認出来ます。エラー表示には2種類あって、「異形式」と表示される場合にはWindowsの機能で現在のOSで使えるダイナミックディスクに変換することが出来ます。一方、「無効」と表示されている場合にはWindowsの機能では復旧できません。 というわけで、復旧するにはこれを使います。 TestDisk この情報はこちらの記事に教えていただきました。 OSSはアルミニウムの翼で飛ぶ: Windows7 無効になったダイナミックディスクを復旧する 処理はコマンドプロンプト調のUIで行われるのでハードル高く感じる人もいるかも知れませんが、上の記事では画像付きでとても詳しく解説してくれているので、それに従って作業を行えばダイナミックディスクをデータ維持したままでベーシックディスクに変換し、正常にアクセスすることができるようになります。 (アクセスできない場合にはPCを再起動でOK) 良かった…いろいろとデータを分散していたので助かりました。

本日の教訓

ダイナミックデ 柔軟性のない仕様はダメよねー

続きを読む

「自分のじゃないPC」を買うときにはいつもちょっとした緊張があります

ブルースクリーン 昨日、同居人のPCでブルースクリーンが出まして。 (画像はこちらからお借りしました) 夏頃からどうもフリーズする、動作が遅いなどとあまり快適で無い感じになっていたのですが、どうやらそろそろHDDがやばい。昨日のブルースクリーンも、電源を落として再起動1回目はエラーチェックが上手くいかず、2回目で成功して無事起動。今のところは「ちょっとご機嫌を損ねた」程度のレベルではありますけど、エラーの場所がHDDだけに…超不安。どれだけ苛烈にPCが故障したってHDDさえ生き残ってれば何とかなりますが、逆にどんなに大丈夫そうでもHDDが死んじゃったら超大変ですからね… 買ってから7年、電化製品としてはまだまだ現役で頑張って貰わないと困る年数ですけど、残念ながらノートPCとしては7年というのは結構な年数でありまして。特にここ3年くらいで急激にノートPCのスペックが上昇かつ飽和(今以上のスペックを入れないと動かないソフトウェアが無くなってきた)していて値段も下がっているので、出来れば、壊れる前に次のを買っておきたい。それで両方完動の状態のままネットワーク越しに移行を行えれば楽だし。 というわけで昨日、次期PC選定会議(議員:1名)にオブザーバーとして参加しまして、次に買うPCをどれにするかについてアドバイスし、その場で購入が決定されました。遅くても2週間後には届くでしょう。それまでもつのかどうなのか…ギャンブルですな。 今回購入したPCはDELLのエントリークラスで、メモリを4GBに増やして5万ちょっと。DELLなのは安かったのと今のPCがDELLで馴染みがあったからなんですけど、いまどきのメーカー製ノートPCってみんな64bit OSなんですね…。そういえば職場で買ってるLenovoのノートPCもデフォルト64bitなのを32bitに変更して購入してるんでした。世の中はそういう流れになってきているのね?32bit OSはもう希望者にしか売らないと。 どうしても「64bit」って言うとソフトウェアが満足に動かなくて苦労すると言うイメージがあってちょっと購入に躊躇します。自分のPCであれば、64bitだろうが、MacOSだろうが何だろうが何とか出来る自信はあるんですけど、これが他人のPCであるとなるとねえ。問題解決が面倒というよりはそんなストレスを掛けてしまって申し訳ないという… 出来れば今まで同じ環境でスペックだけ高いものを用意してあげたいのですけど、そんな試みが上手くいった試しなど無く大体においてOSは変わりますね。職場のPCがWindows 7に置き換わったときにも、動いていたものが動かないとか、ネットワークに繋がらないとか、大層大変でした。 唯一安心できる点があるとすると、今年の1月から職場のPCを64bitにしていること。目的は1つには人柱、もう1つにはメモリをたくさん積んで仮想環境を動かすことでしたがどっちも上手くいって今現在特に問題は出ていません。職場のPCも数をこなしてインストール順の検討だとか、使用するドライバの選定などノウハウを積み重ねた結果問題なく動くようになったので、本質的には杞憂なのかも知れませんね。 まあ同居人のPCですから僕が力の限りサポートすればいいだけなんでまだ気が楽ですが、それにしても「自分のじゃないPC」を買うときにはいつもちょっとした緊張があります。ワクワクもありますけど。やっぱりこれはドキドキ。

続きを読む

VBoxHeadlessTrayがとても便利 – VirtualBoxをタスクトレイに格納する

VirtualBox.jpg 自分の端末はWindows 7(64bit)。開発は基本的にその上でやってるんですが、テスト環境には当然Linuxが必要になります。昔はWindowsでApacheを動かしてたときもありましたが、今なら普通に仮想環境ですよね。誰でもやってることだと思います。 というわけで、Windowsに「VirtualBox」をインストールし、ゲストOSとしてCentOSを動かしてテスト環境にしています。まぁその設定についてはその昔この辺に書きました。 CentOSの開発環境、設定手順(with VirtualBox) | mutter これを書いた当時と比べるとマシンのスペックが上がっているので(メモリ16GB積んでます。こんなこともあろうかと)、VirtualBox上のゲストOSにもたっぷりメモリを割いていてかなり快適に動かせています。素晴らしい。

本題。

そういうわけで仮想環境としてVirtualBoxが動いていますが、VirtualBoxのウィンドウはおろか、ゲストOSのGUIウィンドウすら普段は見ません。全部CUIで済みますもんね。ていうかむしろCUIなかったら作業なんてしてられないですし、そもそも「テスト環境」になりませんな。本番サーバをGUIで管理してますとか聞いたことないし。片付けたい。出来れば音も無く起動し、そのままタスクトレイに格納されて、必要なときだけ呼び出せるようにしたい。 それ、「VBoxHeadlessTray」で出来ます。 ダウンロードはこちらから。 Topten Software 解説は窓の杜のコラムが詳しいです。 窓の杜 – 【REVIEW】「VirtualBox」の仮想PCをタスクトレイから直接起動「VBoxHeadlessTray」

続きを読む

【メモ】 Windows7 Home PremiumでCドライブの中身がすべて消えてしまった件

(原因がよく分かっていないのでメモ程度の話です) 昨日社内のスタッフから受けた相談がこんな感じでした。

パソコンが急に落ちて起動したらデスクトップのアイコンが全部無くなっていた
調べてみると確かにゴミ箱を除くすべてのアイコンが無く、スタートメニューも何も無し、コンピュータを開いてCドライブにアクセスしてみると「このフォルダーは空です」との表示… OSは問題なく起動できているので実際にデータが消えたわけではないようなのですが、見えないのでは使いようがありません。HDDを検査したりレジストリをチェックしてみたりしましたが回復せず…ふと次のことをしてみたら状況が変わりました。 隠しファイルを表示する - 徹底活用 Windows 7 入門 つまりですね、ゴミ箱を除くすべてのファイルが「隠しファイル」になっていたんです。 えっ、何それ怖い。 もしやウィルスかとフルスキャンもしてみたのですが特に怪しいものも検出されず。ググってみても同じようなケースはほとんど見つからず、見つかっても有効な情報は無く、原因は全く不明のままです…何か気持ち悪い。 結局、Cドライブ直下のフォルダ・ファイルの隠しファイル属性をすべて解除して対応しました(30分くらいで完了した)が、そんなことして良いのかどうかも不明。でも他にやりよう無かったし…何か悪いことが起きていなければ良いんですが。とりあえず様子見です。もしやばければ重要なデータだけ引っ越ししてもらって出荷時状態へリカバリーだなぁ。

続きを読む

Windows7版 アプリケーションを素早く起動する

「そんなのランチャーでFAだろ」という声も聞こえますが、実際問題として気に入るランチャーを探すのはなかなかに難しいし、その上それをキーボードで操作するのもなかなかだるいです。というわけで僕は今でもこの方法でアプリケーションを起動しています。 「ファイル名を指定して実行」がとんでもなく便利な件。 | mutter 導入してから4年くらい経つけどやっぱり便利ですね。「ファイル名を指定して実行」が1キーで起動できたらもっと良いけどその辺はキーボード的な制約もあって妥協。Windows 7機でも基本的に同じようにやってます。つまり、ショートカット集フォルダを作成し、環境変数PATHに追加し、「ファイル名を指定して実行」から実行。 Windows XPとは変わって、

  1. 「Windowsボタン」を押してスタートメニューを開く
  2. 「R」キーを押して「ファイル名を指定して実行」を開く
という手段では起動できなくなりましたが、
  1. 「Windowsボタン」を押しながら「R」キーを押す
という方法で引き続き「ファイル名を指定して実行」を素早く表示できます。

続きを読む

Windows XP 32bitからWindows 7 64bitに移行してみた(仮)

職場のPCが故障しまして、直せるんだったら直すんだけどどうやらマザーボードかCPUが飛んだっぽいので、諦めて新調しました。新調するに当たっては主に価格面でいろいろと悩むところがあったのですけど、いい加減Windows 7を触りたいってのと、最近業務でメモリ不足を感じることが多いっていうのとで思い切って、Windows 7 64bitにしてみました。

簡単なスペック:

  • ベース:Epson Direct「TY5000S」
  • CPU:インテル Core i5-2400
  • OS:Windows 7 Professional 64bit
  • メモリ:16GB

続きを読む