2013.04.23

「存在しないトークンを参照しようとしました」エラー

ローカル セキュリティ ポリシー(secpol.msc)を起動しようとしたらこんなエラーが。
token
原因はよくわからんけど「管理者として実行」したら起動するんで権限まわりでおかしな事になってるのかなあ。

ググるとMicrosoft ランゲージ ポータルから始めるトラブル解決という記事がヒットするんだけど、その記事中にあるMicrosoft Management Console: "An attempt was made to reference a token that does not exist"というTechNetのArticleで示された解決方法がちょっとアレな感じ。

For /F %s in ('dir /b *.dll') do regsvr32 /s %s

これ、system32にあるDLLを片っ端からregsvr32で再登録するんだよね…。

直るかもしれないけど副作用ありそうですげー怖い。大丈夫なのだろうか。

2013.03.25

Virtual CloneDrive 5.4.5.0 日本語修正ファイル

Virtual CloneDrive の設定画面で項目の一部が英語メッセージのままだったのを不思議に思い、言語ファイルをちょっと覗いてみると、案の定英語版には存在するメッセージ文字列が日本語版に無い。
どこかのタイミングで言語ファイルの更新をやめちゃったのかなーと予想。
一部制御コードが混じってるので試行錯誤してみたら解析できたっぽいのでメモ。

VCDPrefsJP.lng : 設定画面の文字列
VCDShellJP.lng : タスクトレイアイコンを右クリックしたときに出るメニュー文字列

VCDPrefsStrings.h と VCDShellStrings.h に定義してあるのが項目IDで
(ヘッダー)(項目ID1 + null + 文字列長 + null + 文字列)(項目ID2 + null + 文字列長 + null + 文字列)...
という構成。
ちなみに文字列はShiftJISでいけた。IDや文字列長はバイナリ値なので制御コードが挿入できるエディタか、バイナリエディタが必要。

VCDPrefsEN.lng に定義済みの項目ID 29~31 が VCDPrefsJP.lng ではごっそり無いので、英語版をコピーして(具体的にはAutomatic以降)日本語版にペースト。
英語版文字列をGoogleで翻訳して日本語に置換後、文字列長を修正したら完了。

VCDShellJP.lng も同様に、項目ID 8~14が(以下略)

今更こんなもん作って需要があるのかさっぱりだけど、一応使う人もいるかなと思ってアップしてみる。

Virtual CloneDrive 5.4.5.0 日本語修正ファイル(私家版)

解凍した VCDPrefsJP.lng と VCDShellJP.lng を Virtual CloneDrive 本体があるフォルダ配下の Texts フォルダに放り込んだらすぐ置き換わるはず。
元に戻したい場合はoriginalフォルダに原本が入ってます。

まあこんなので壊れたりはしないだろうけど、念のため利用については自己責任でおながいします。
あと、翻訳がおかしいという場合は「こいつ英語できねーんだなpgr」と笑い飛ばしつつ、各自で直してみて下さい。

2013.01.16

JS共通セキュリティ更新モジュールが何度も出てくる件

JUSTオンラインアップデートがJS共通セキュリティ更新モジュールを2週間に1回くらい通知してきて、何度適用しても再度出てくるのがいいかげんウザくなってきたので調べてみた。

Justオンラインアップデート(hinkyaku49の日記)

どうもこの辺が怪しい。
C:¥Program Files¥JustSystem¥JSLIB32¥JSJPEG.DLL
私のPCには↑のファイルがあります。
一方、一太郎2012に上記アップデートを適用すると↓が置き換えられる。
C:¥Program Files¥JustSystems¥JSLIB32¥JSJPEG.DLL
JSJPEG.DLLがあるせいで一太郎のバージョンを誤認されているのではなかろうか。

なるほど、JSJPEG.DLLが怪しいと。

んじゃ解凍して上書きしたらOKなのかな?と更新ファイル(comup01.exe)をダウンロード後、Explzhにドラッグ&ドロップ。

すると、Setup.exeとCommonUpdate.msiのファイルで構成されているのが判る。

msiパッケージをmsiexec.exeで展開する(nanoblog)

に従ってCommonUpdate.msiを展開する。

start /wait msiexec.exe /a CommonUpdate.msi targetdir="c:¥dest¥dir" /qn

targetdirで、展開したファイルの保存先を指定します。
msiファイルが存在するフォルダを指定すると、正常に展開できないので注意してください

その他、展開先が仮想ドライブの場合はエラーになるので注意。

インストール先に SUBST で割り当てた仮想ドライブを指定すると、1320エラーが発生(InstallShieldFAQ)

展開先のフォルダにあるJSLIB内のJSJPEG.DLLとJPGFILE.XTDを上書きしたら完了。

ちなみに

ファイルバージョンが1.0.4.0→1.0.5.0
タイムスタンプが1997/08/25→2012/01/16

にアップしてた。

2012.09.06

T98-Next on Windows Vista / 7 の印刷

T98-Nextでのプリンタ出力はLTP1のみという仕様なので、USBやネットワークで接続されているプリンタは共有してNET USEコマンドでLPT1へマッピングをするというテクニックがある。

PC98エミュレータ プリンタ設定のキモ T98-Nextの場合

USBポートとLPTポート lpt1にリダイレクトして直接出力する方法

だがしかし、このテクニックはWindows XPまでしか使えない。

なぜかVista以降ではこのテクニックに必要なRAWモード印刷の機能が使えなくなっている。

(ソースはこのへん)

なので、Windows Vista以降(8は知らん)でT98-NextからUSBプリンタに印刷したい場合は、LPT1への出力をUSBにリダイレクトしてくれるアプリケーションを使用するしかない。

具体的にはDOSPrintがフリーで使えるのでお勧め。