ドライブ文字とパスの変更

カスペルスキーが完全テストの度に検出してくる「ユーザーに損害を与える目的で悪用される可能性がある正規のソフトウェア」問題が大体見えてきたので,今後は対処できるだろう.今朝も完全スキャンは複数のEXEを摘発してきたが,すべて除外リスト/ハッシュ値の計算で対処した.これで一件落着としたいところだが,それより重大事態が発生している.ThunderBirdのデータがまるごと消えてしまっている.

考えられる要因としては,①カスペルスキーの認証局証明書をThunderBirdに登録したこと,②FakeTC.cm騒動の原因となったアカウントからのメールをフォルダごと外部に移管したことの2つくらいだが,①の手続きは前にも一度やったことがあるので,それが原因であるとは考え辛い.確かに②は少し荒っぽいような気もするが,登録されているすべてのアカウントに影響が出るほど致命的なものとは思われない…

データフォルダの中身は無傷で残っているようなので,リンクを取り直せば復活するのではないかとは思われるが,なぜこんなことになっているのか?その理由が知りたい.アカウントのサーバー設定を開いて確認すると,フォルダは従来通りの場所にリンクされているが,別のアカウントに移ろうとしたら,以下のメッセージが出た.

image

原因はわかった.SDドライブがEになっている.確かに以前にもこのようなことが発生して対処したことがある.つまり,ドライブ名が変化しているためだ.これはドライブのプロパティかなにかで変更できたはずだ.ログが残っているはずだが,見つからなかった.ネットで「ドライブ名の変更」で検索して記事がヒットした.スタートメニュー→ディスクの管理だ.ディスクの管理画面でパーテイションを選択して右クリックで「ドライブ文字とパスの変更」ができる.再起動しないと有効にならないので,完全スキャン中だが再起動.⇒復活した!完全スキャンは停止してまた1%からやり直しだ.

さて,ようやく仕事に戻れる.すでに人名枠と系線は横書き対応になっている.対応が遅れているのは,テキストの表示と選択枠だ.この二つが揃うと大体使えるようになる.テキスト描画にはCDC::TextOutとExtTextOutが使われている.この2つを拡張して_CDCクラスから呼び出すようにしてみよう.⇒一応できたが,うまく動作しない.クリップリージョンまで手当する必要があるようだ.⇒暫定的につねにクリッピングを外すようにして描画できた.

image

縦書きでも横倒しになっているのに,横書きにしても寝たままというのはかなりひねくれている.どこを調整すればよいのか?SetFontOrientationという関数がある.⇒強制的に横書きするように仮修正した.だいぶそれらしくなってきた.

image

下の方にあるドットは兄弟連結点だ.この点が収まると大体描画できたことになる.各種の連結点はDrawJointという関数で描画している.とりあえず,Ellipseという関数をオーバーライドしてみよう.⇒できたようだ.さて,問題は選択枠だ.下図のような状態になっている.

image

選択状態は完全に一致するようになったが,選択枠はまだ同期していない.

image

また,カードをクリックしても応答しない.LButtonDownで渡される座標は物理座標なのでそれを座標変換するとおかしなことになってしまう.SelectFrameXorはDrawFrameRectを使っているが,この関数で直交変換をやっている.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA