(07/02/01 ~)

07/02/02

・ツールバー(Vista)

  2006/12/22 の雑談で「Vista でツールバーを作る方法がわからない」と書きました。でも...

[Toolbar]

 できました。やり方は
  1. コ ンピュータ(マイコンピュータ)をドラッグして画面の端(上だけでなく右や左でも可能)まで持っていく。
  2. ド ロップする。
 これだけでした。タスクバー右クリック、「新規ツールバー」でツールバーを作れても、それは独立したウィンドウとして動かせないのがミソです。この方法で ツールバーが作れるというのを知らなかったのですが、Vista 以前の Windows でも同じ事ができるようです。ドラッグできるのはフォルダやフォルダ のショートカットです。Explorer のアドレスバーにあるアイコンからも D&D できます。

 こうして作ったツールバーにさらにツールバーを追加するには、
  1. その作ったツールバーを右ク リック
  2. [ツールバー( T)]-[新規ツールバー ( N)] で追加。
 となります。先の方法(D&D)でもう一つツールバーを作っても以前の Windows のように"独立したウィンドウとして動かせない"の で意味が ありません。"独立したウィンドウとして動かせない"と強調していますが、実は偶然に一度だけ"独立したウィンドウ"になった事があります。しかし、それ を再現する方法がわかりません(ドッキングは不可能なようでしたが)。

 タスクバー同様にツールバーも、Aero による半透明処理をやって頂きたかった所ではありますが...。

07/02/07

IBConsole 日本語版+α
 更新。リリースバージョンが揃ってなにより(?)。

[更新履歴]

rel.37
(Windows)
rel.36 ~ rel.37 (Linux)

・「オブジェクトウィンドウ」に「インデックス変更」ボタンを追加。
・ 「ツールの設定」ダイアログの「パラメータ」にマクロ文字列
 "$ServerName"と"$DatabaseName"を追加。
・ 「Extras」フォルダに「CSV インポートツール」を同梱(Windows 版)。
・二重起動防止処理を組み込んだ(Linux
)。

  掲 示板で要望のあった[オブジェクトウィンドウ]-[データ]でインデックスを変更できるようにしました。

 それと、 IBConsole 日本語版+αで はテーブル(ビュー)/クエリの結果を CSV でエクスポートできるようになっていたのですが、インポート機能はありませんでした。オリジナルの IBConsole にこれらの機能がないのは、「DB をマルチファイルで構成できる」、「BLOB を CSV でと言われても...」という事からだと思われ ます...とは言え、完全対応でないにせよ CSV インポート機能があるに越したことはないので、自社内のみで使っていた「CSV インポートツール」を同梱 しました(Windows 版のみ)。

 上記の事項に伴い、 IBConsoleの[ツールの設定]-[パ ラメータ]にマクロ文字列が使えるようになっています。 IBConsoleに ツール設定する事で、「CSV インポートツール」へカレントサーバとカレントデータベースを渡す事ができる訳です。「それならユーザ名とパスワードも渡せ よ」と言われそうですが、引数を調べるだけの EXE を作れば簡単にユーザ名とパスワードが漏れてしまうので却下します。もちろん「CSV インポートツー ル」は単体でも使う事ができます( IBConsole 日本語版+αを使うのであれば、ツール登録で使う方が便利なのですが)。

07/02/08

ZoneAlarm
 別にこの製品を貶める訳ではないけれど、 ZoneAlarmの 無償版である zlsSetup_65_737_000_jp.exe をインストール中に処理が止まってしまい(40%位)、強制終了するしかなくなった場 合、事後に適切な処理をしないとネットワーク接続がおかしくなる事があるようです(XP)。

 具体的には
 このような症状になるようです。
 これは Microsoft のサポートオンラインにも似たような記述があります( 別のネットワーク接続を チェックすると、エラー メッセージ "PING: transmit failed, error code 65" が表示される)。

 解消方法ですが、
  1. msconfig.exe で「True Vector Internet Monitor」サービスを停止する(チェックを外す)。
  2. 再起動する。
  3. %ProgramFiles %にある"ZoneAlarm"関連のファイルを削除する。
  4. "%SystemRoot%\System32\zonelabs" を削除する。
  5. (レジストリの知識があれば)レジストリから ZoneLabs 関連を削除する。
 となります。

IBConsole 日本語版+α
 Linux 版の書庫を zip から、「tar.gz」へ変更しました。パーミッション変更とシンボ リックリンクの処理の手間が省けます。

  IBConsoleLinux 版について ちょっとおさらいしてみましょう。

ファ イル名 パーミッション 備考
ibconsole 755
IBConsole 本体
ibconsole.png 666
IBConsole アイコン用ファイ ル
libborqt-6.9.0-qt2.3.so 666 qt 共有ライブラリ
libborqt-6.9-qt2.3.so 777 libborqt-6.9.0-qt2.3.so へのシンボリックリンク
readme.txt 666 説明

 このうち、libborqt-6.9-qt2.3.so はシンボリックリンクですので、Windows のアーカイバからは見えない事があります。また、書 庫を Windows 機で解凍して Linux 機に転送するとパーミッションの情報が失われます。

  IBConsole 日本語版+αの Linux 版のインストール手順は
  1. $ tar zxfv ibc_alfa2_linux_ja_rel.37.tar.gz
  2. $ mkdir ~/.borland
 これだけです。間違って Windows から SMB で転送してしまった場合には
  1. $ cd ibconsole
  2. $ chmod 755 ibconsole
  3. $ ln -s libborqt-6.9.0-qt2.3.so libborqt-6.9-qt2.3.so
  4. $ mkdir ~/.borland
 とやる必要があります(過去の zip 書庫ではこの方法でした)。"~/.borland"は IBConsole の環境設定ファイルである"ibconsole.conf"の格納先です。このディレクトリがないと設定内 容を保存できません。

 IBConsole を起動するには
  1. $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:解凍したフォルダ
    ("解凍したフォルダ"とは libborqt-6.9.0-qt2.3.so の存在するフォルダの事)
  2. $ ./ibconsole &
 とします。要は LD_LIBRARY_PATH に qt 共有ライブラリ(Borland 用)へのパスを追加してやればいいのです。当サイトで公開している" IBConsole 日本語版+αの Linux 版"は VineLinx3.2 及び VineLinux4.0 での動作を確認しています。

07/02/10

・ Vista へ" BDS2006" をインストール。
 インストール手順。
  1. UAC をオフにする(詳しい手順は こちら)。
  2. BDS2006 のインストール CD#1 内を参照。
  3. "\dotNETRedist"へ移動。
  4. .NET Framework 関連をインストール
    1. dotnetfx.exe
    2. langpack.exe
    3. NDP1.1sp1-KB867460-X86.exe
  5. BDS2006 をインストール
    Install.exe
  6. Update1 を適用(コマンドラインから)
    "msiexec /update bds2006_jp_pro_upd1.msp"
  7. Update2 を適用(コマンドラインから)
    "msiexec /update bds2006_jp_pro_upd2.msp"
  8. HotFix Rollup を適用
    BDS2006HotfixRollup.exe
・ Vista へ" Adobe Reader 8.0"をインストール。
 インストール手順(テンポラリ領域が足りないと言われた場合)。
  1. UAC をオフにする(詳しい手順は こちら)。
  2. セッ トアップ(AdbeRdr80_ja_JP.exe)を実行。
  3. 解凍処理が行われる。
  4. イ ンストール用の EXE が実行されるダイアログが出たら、 ダ イアログはそのままにして"%UserProfile%\AppData\LocalLow\Netopsystems\temp" へ移動。
  5. "Adobe Reader 8.0"フォルダを適当な場所にコピー。
  6. 先 程のダイアログを"キャンセル"で閉じる。
  7. コピーした"Adobe Reader 8.0"フォルダの中にある"Setup.exe"を実行。
・" BDS2006" で PocketPC/WindowsMobile 用開発環境を整える。
 " Delphi 2006 で行う PocketPC アプリケーション開発(CodeGear)"の通りにやればいいのですが、説明が回りくどいですね。DL 場所がわ からないのがあると思われますので書いておきます。
 リンク先は いずれも IE で開いて下さい。Firefox 等では閲覧できません。プリプロセッサとビルドヘルパーのおかげで比較的簡単に PocketPC/WindowsMobile 用アプリが作れるようです。

 ... なんですが。実の所、当方は「.NET Compact Framework 2.0」での開発を目論んでいまして(業務ア プリ)。BDS2006 では CF2.0 は対応できないようなのですよ...と言うより、CF2.0 の開発が出来るのは実質「VisualStudio 2005」だけなんですよねぇ...(しかも Express はまず無理)。そうなると、やっぱり C#で作るしかないのかな、と。

 もちろん、ホビーでは BDS2006で いいのでしょうが、"CF1.0 なら Delphi"、"CF2.0 なら C#"というメンドクサイ事になりますよねぇ...それに、プリプロセッサとビルド ヘルパーが"あっても敷居が高い"んですよね。

 もう少し、がんばってみますか...。

・ で、もうちょっとがんばってみた訳だ
 " Delphi 2006 で行う PocketPC アプリケーション開発(CodeGear)"に殆ど書いてあるのでポイントだけ。
  BDS2006で の.NET Compact Framework 開発は前途多難と言えるでしょう。そもそも、グダグダな".NET Compact Framework"関連のインストーラを Microsoft さんにどうにかしてもらいたいものです。

07/02/16

・" BDS2006" で PocketPC/WindowsMobile 用開発環境。
 ちょっと解説。

・プリプロ セッサ( Compact Framework project preprocessor)
 Delphi.NET で.NET CF 用のプログラミングをしていると、.NET 用のコードが勝手に吐かれる事があります。.NET CF は .NET のサブセットなので、クラスメンバが存在しない事があり、ここで大量のエラーが発生する事になります。従来ですと.NET CF に存在しないクラスメンバ用のコードを手作業で除去しなくてはなりませんでしたが、プリプロセッサを通すことによって、"存在しないクラスメンバ用の 記述によって引き起こされるエラー"を回避する事ができます。具体的にはプリプロセッサが"先述のエラーの該当行のみ"をコメントアウトします。

・ ビルドヘルパー( Compact Framework Build Helper)
  .NET CF 用のコンパイラは"dccil.exe"なのですが、コマンドライン用ツールとなり、IDE からコンパイルする事はできません。この不便さを補うべ く、ビルドヘルパーは.NET CF 用コンパイラを IDE に統合します。これにより、.NET CF 用アセンブリの指定やエミュレータの指定が簡単に行えるようになります。ビルドも簡単に行えるようになります。

・ コピー@Explorer(Vista)
 使い勝手が悪すぎる。
・無責任な情報(Vista)
 XP で動作していた USB のオーディオデバイス(USB マイク/スピーカ/ハンドセット等)が Vista で動作しない場合かつ、その機器に Vista 用ドライ バが用意されていない場合には力技で回避できる事があるようだ。
  1. usbaudio.sys を XP の"%SystemRoot%\system32\drivers"から持ってくる。
  2. Vista の"% SystemRoot%\system32\drivers"にある usbaudio.sys のバックアップを取る。
  3. Vista の"%SystemRoot%\system32\drivers"に XP の usbaudio.sys をコピーする。
 どうしても Vista 用ドライバのない USB オーディオ機器を動作させたい場合には試してみてもいいかもしれない... ただし、Vista のシステムファイル変更に はアクセス許可が必要であり、普通にコピーする事はできない。試してはいないが、同様な手法で USB カメラもイケるかもしれない。

 この情報を鵜呑みにして障害が発生したとしても、私は責任を取りませんのであしからず。

07/02/19

TEAD ver 2.11
 リリース。

[更新履歴]
・ファイル比較がうまくいかない事がある問題を修正。
OS 名判定ロジックを変更(Vista 対応)。
TEAD と同じフォルダに"Winhlp32.exe"がある場合に はそちらを利用するようにした(Vista 対策。但し状況感知 Help には未対応)。

 「ファイル比較~」はバグです。「OS 名判定ロジック~」は「 Windows のバージョンを本格的に判断する。」を組み込んだという事です。

 「TEAD と同じフォルダ~」についてですが、ご存じの通り、Vista では WinHelp(4.0)が動作しません。将来、Vista 用の WinHelp が用意される事になっていますが、それを待つのもなんですし、今更 WinHelp を他の Help システムで書き換えようとも思っていませ ん。TEAD と同じフォルダに XP 等の Winhlp32.exe(%SystemRoot%にあるもの。スタブは不可)をコピーすると、それを用いて Help を表示します。

 Vista での動作時に他のパーティションにインストールされている Windows を 検索して自動で Winhlp32.exe を探すようにしようとも思ったのですが、Vista 純正の WinHelp がリリースされた時に困った事になるので、今のような実 装にする事にしました。

07/02/20

Windows Vista でのサービスとドライバの Session 0 分離の影響
 以前にも雑談で書いた事があるが、結 構深刻だったりする。要は「サービス/ドライバ」と外部アプリが「 そ う簡単には通信できなくなっている」という事だ。例えばプリンタにドライバがないので XP 用のを流用したとする。こいつがイン ク残量をチェックするアプリケーションを起動したりするものであれば、正しく動作しない可能性が高い、という事だ。
 Microso f t 標準で用意されているドライバには、XP 用純正ドライバで行えた拡張設定ができずに困る事もあるかもしれません。 VirtualPC 20007の最新版が公開されていますので、動作しないものは仮想 OS 経由で実行させるのもテかもしれません。

TEAD ver 2.12 β 2
 リリースしました。

[更新履歴]
β 2
・ OS が Vista の場合、ファイル検索ウィンドウでアニメーション を表示しないようにした。
・ OS が Vista
の場合にメインフォームのレイアウトを調整するようにした。
β 1
・ドラッグ&ドロップによるタブの入れ替え を可能とした
(COM ド ロップと排他)
・ 高負荷時の安定性を向上させた。


 見た目以上に派手な書き換えを行ったので、不具合が出るかもしれません(TEAD ではここしばらくなかった"人柱"バージョンです)。「タブの入れ替え」 を行うには[環境設定]-[タブ]タブにある「ドラッグ&ドロップ」を「タブ入れ替え」に変更して下さい。

07/02/21

TEAD ver 2.12
 正式 版をリリースしました。

[更新履歴]
環境設定保存後にタブサイン表示が一時的におかしくなる事があるバグ を修正。
環境設定保存先を"ファイル->レジストリ"に戻せな くなっていたバグを修正。
OS が Vista の場合、ファイル検索ウィンドウでアニメーションを 表示しないようにした。
OS が Vista の場合にメインフォームのレイアウトを調整するよう にした。
ドラッグ&ドロップによるタブの入れ替えを可能とした(COM ドロッ プと排他)。
高負荷時の安定性を向上させた。

 「環境設定保存先~」の内情ですが...知りたくもないでしょうが一応説明すると、レジストリ/Ini ファイルアクセスクラス(同一のコーディングでどち らにもアクセスできる)を一連の「BartPE 関連ツール」を作る時に機能拡張したのですが、その時にバグを仕込んでしまったようです。

 「ファイル検索ウィンドウでアニメーション」の件は Vista でコモン AVI が含まれなくなった事によるものです。Vista 下の Delphi アプリケー ションで TAnimation を使う場合には AVI ファイルを自前で用意しなくてはならなくなりました(コモン AVI に頼っていた場合には表示されませ ん。Delphi 7 等の検索も同等の挙動をします)。こんなもんで EXE サイズを増加させるのもシャクなのでバッサリ切り捨てました。

 アイコンも Vista 用を作ろうかとも思いましたが、Vista 用巨大アイコンは画像フォーマットに PNG を使っており、Bitmap 程ではないにしろ EXE サイズを増加させてしまいますので、見送りました。

07/02/24

・ Vista の WindowsAPI
 例えば文字列へのポインタを引数で取る API があったとする。この API は正常終了時に文字列へのポインタ に対して文字列を入れて返す。文字列は空である事もある。この API をループで回して処理する...といった場合、

AAAA
BBBB
(な し)
DDDD

のように文字列が返る...少なくとも XP では。ところが Vista では

AAAA
BBBB
BBBB <-
DDDD

のように、正常終了時で文字列が空の場合には文字列へのポ インタが初期化されない事があるようだ。今後は API 呼び出し前に文字列を必ず初期化した方がよさそうだ。 SHSFPは SHGetFolderPath ()で件の現象に遭遇したため、文字列初期化処理を組み込んである。

・彼
 ...からの Mail が溜まっている。

会津びっこ隊ってのどうなのよ。みんなヒョコヒョコ歩いてんの。

 年末のドラマネタか。そういえば、メクラウナギさんも細木数子によって改名させられたとか風の噂で聞いたな。

ライ麦パンって、やっぱ工場ラインはライ病患者で固めてるわけか。

 そのうち、 笑 い男に眼を盗まれるぞ。

生理食塩水に天然にがり配合したら売れるんじゃねえ?ヘルシーイメージで。
            
たまに海藻クズとか混じってんの。

 小さいカニとかエビとかタコとかもプカプカ泳いでるんだろうな、そのパックの中で。

Delphi/Kylix コーナー(Vista 対応アプリを作る)
 追加。そういえば、ExpandEnvironmentStrings()も変な挙動をする。戻り値は環境変数を展開した文字列の長さが返るのだが、ANSI 版 API であっ ても、1 文字=2 バイトで返ってくる(XP で確認済)。バグなんじゃないかと思うのだが...。

・ XP のレジス トリエディタ
 実は簡易レジストリ修復機能がある。BartPE 等でレジストリエディタを起動し、ハイブのロード/アンロードを行う だけで軽微なレジストリ破損は修復可能な場合がある。1

 先日、NT4.0 で BSoD(STOP 0xC0000135)が発生した。これの修復手順は「 [NT] スタートアップ時に STOP 0xC0000135 が発生する」にある通りだ。しかし、「Winsrv.dll」が原因であった ため、先述の BartPE によるハイブ操作のみで修復できた。

・ BSoD 検索
  Web 検索に BSoD 検索を付けてみた。

サポートオンラ イン
BSoD 検索をするには 16 進 8 桁の値を入力します。

 こんな奴。先程の例だと"STOP 0xC0000135"または"STOP C0000135"と入力する。BSoD というのはお酒...じゃなくて、「 Blue Screen on Death」の略。「死の青画面」とでも訳すべきだろうか?要はキー操作を一切受け付けない(リセット以外手段がない)ブルースクリーンの事。

07/02/26

・ Delphi アプリケーション on Vista
 イロイロ調べていたら致命的な問題を見つけた。詳しくは「 Delphi/kylix によるテクニック&アルゴリズム」の「 Windows Vista 対応アプリを作る」を参照してもらうとして、あなたが Vista 上で Delphi アプリケーションを実行できる環境にあるのなら、そのアプリケーションを実行し、単独で[Alt]キーを押してみよう。そう、[Alt]キーを押すだけ...。

  TEAD/ IBConsoleを取り急ぎ修正しておいた。

07/02/27

KDDI、DION ADSL からメタルプラスへ移行したユーザーへ 2 年に渡り誤請求
 あっれー、過去の雑談に書いてなかったっけ。数年前の事だけれど、お客さんのトコの契約を調べたら ISDN が重複して契約されてた。解約しようと Web 上 で操作した。解約できて、Web 上には「既に解約されています」の文字が。そして数ヶ月。それでも契約が一つ残っているらしく課金され続けた。お客さんが アタマに来て引き落としを止めた上で解約しようとしたら、「未払いがある場合には Web 上では解約できない」と言われた...なんて事があった。お客さん は当然ブチ切れた。

 重複契約で過請求した上にお詫びもなかったからな。今回の件も積極的に働きかけるでなく"返金は申告制"って何様 よ。ISDN ユーザの方もプラン変更した覚えがあるのであれば KDDI からの請求書をよーくチェックしてみて下さい。言っとくけど"聞いた話"の類じゃな いからね、先の解約手続きをやったのは他ならぬ僕自身だし。 マイラインの件といい KDDI(DION)には不信感でいっぱいだ。

IBConsole
 ちょっとしたバグがあった。テーブルのフィールドの説明を変更しようとすると"変更はされるがエラーが出る"というもの。Win/Linux 共通のバグだった。


 BACK  古いのを読む
新しいのを読む