2021年3月12日金曜日

Windows7 の XP Mode で USB接続ができないことへの対応

今どき XP Modeの話題とは...。

今まで使っていた、 Windows7機がとうとうお亡くなりなったので、新しい(と言っても古いけど)パソコンを用意しました。

どうしても Windows XP時代のアプリケーションを動かす必要があったので、今回もWindows7を母艦にして、XP Modeを入れました。

動かしたいアプリケーションとは、テプラ PRO SR610X のPC接続です。
このテプラも相当な年代物ですが、USBケーブルでパソコンと接続できて、フォントなどもWindows上のものを自由に使えたり、連番を振ったりと、結構なパフォーマンスを発揮してくれますので、手放せないんです。

壊れた方のパソコンは Windows7に XP Modeを入れて、順調にテプラが使えていました。

なので、今回新しく用意したパソコンも問題なく動くと思って、XP Mode上にテプラのドライバーとアプリケーションを入れたところ、USBが認識しない。

仮想マシンの上部には、「USB」の項目があり、そこには、「SR610X」という選択項目が表示されているのに、選択すると、
USBデバイスを接続できませんでした。USBデバイスを別のポートに接続するか、仮想マシンを再起動してやり直してください。」というメッセージがでます。

新旧のマシンで何が違う?

旧マシンには、USB3.0が装備されていないが、
新マシンには、USB3.0が装備されている。

ケーブルはUSB2.1のポートに接続しているのでそんなこと関係ない。

と思ったけど、念のために、BIOSで、USB3.0を無効にしてみた。
BIOSの説明によると、これを無効にすると、3.0の青色ポートも2.1として動作することになるそうです。

これで、接続したら、なんと、接続成功!

テプラが順調に動き出しました。

XP ModeではUSB3.0モードは使えないことが判明しました。

この経験をもとに、もうちょっとググってみたら、当然既にこの答えにたどり着いている方がおられて、その方の情報によると、BIOSで3.0を無効ししてしまうと、当然母艦でも3.0が使えなくなってもったいないので、PCIソケットにUSB2.1増設ボードを挿して、その増設ポートからなら、仮想マシン側が認識するとのことでした。
ちょっと投資したら、母艦側では2.1も3.0も使えるようです。


2019年8月29日木曜日

VBscript で DOSコマンドの CertUtil を使って Base64 のデコードでバグ

VBscript を使って、Base64 のデコードをする必要があり、

objWSH.Run "cmd /c CertUtil -Decode A.txt B.jpg"

みたいなスクリプト書いたところ、
何度やっても失敗する。
デコードできないどころか、
このVBSファイル自体が消えてしまう。(自分自身が削除されるってあり得る?)

最初は、前後のファイル名の渡し方が間違ってて、
特にロングファイルネームなので、ダブルコーテーションの数とかが間違ってるのかと思って、さんざん試行錯誤を繰り返したけど、絶対失敗する。

Help を引いても、
-------------------------------------------------------------------------------
使用法:
  CertUtil [オプション] -decode 入力ファイル 出力ファイル
  Base 64 エンコード ファイルをデコードします

オプション:
  -f                -- 強制的に上書きします
  -Unicode          -- リダイレクトされた出力を Unicode として書き込む
  -gmt              -- 時刻を GMT で表示します
  -seconds          -- 時間を秒とミリ秒で表示します
  -v                -- メッセージを詳細に表示します
  -privatekey       -- パスワードと秘密キーのデータを表示します
  -pin PIN                  -- スマート カードの PIN
  -sid WELL_KNOWN_SID_TYPE  -- 数値 SID
            22 -- ローカル システム
            23 -- ローカル サービス
            24 -- ネットワーク サービス

CertUtil -?              -- 動詞の一覧 (コマンドの一覧) を表示します
CertUtil -decode -?      -- "decode" 動詞のヘルプ テキストを表示します
CertUtil -v -?           -- すべての動詞のヘルプ テキストをすべて表示します
-------------------------------------------------------------------------------
間違っていない。

試しに、以下のようなバッチファイルを実行したら、ちゃんとデコードされた。
CertUtil -Decode A.txt B.jpg

VBscript で実行したときだけ失敗し、ファイルが消失する。

余計にわからなくなって、半日が経過。

なんとなく、
objWSH.Run "cmd /c CertUtil -Decode A.txt B.jpg"
このスイッチの
「-」を
「/」に置き換えて、
objWSH.Run "cmd /c CertUtil /Decode A.txt B.jpg"
としたら、あっさり成功。
もちろん自分自身も消失せず。

俺の半日を返せ~。





2019年7月23日火曜日

結構使える Amazon Echo Dot と LSMini

Amazon Echo Dot と LSMini を導入しました。

ちょうどアマゾンでセールをやってたので、両方合わせて1万円以下で買えました。

最初は、設定方法がわからなくて、なかなか思い通りになりませんでしたが、丸1日かけて研究したら、そこそこ使える設定ができました。

我が家のリビングには、照明が2個ついていて、両方ともパナソニックのシーリングライトの同じ機種です。
横の和室にも、機種は違いますが、同じパナソニックでリモコンコードも同じものを取り付けています。リビングと和室は襖を開けると、3個の照明が全部見えます。

リモコンは3種類のコードが設定できるので、それぞれにリモコンコードを割り当ててあります。

この状態で、
「アレクサ ただいま。」
と言えば、Echo Dot が声を拾って、LSMini に指示を流し、LSMiniから放たれた赤外線で、リビングの照明が2個付きます。

「アレクサ 行ってきます。」
と言えば、同様の流れで、3台ともの照明が消えます。

便利なんですが、とにかく名前の付け方が難しい。

他にありそうな名前を付けると勘違いされてしまう。
例えば、Sony の BlueRayレコーダーで「AT500」という機種を持っているので、
「アレクサ エーティーごひゃく の電源入れて。」というと、
「すみません。アットごひゃく というデバイスが見つかりませんでした。」と宣います。

Echo Dot でAmazon Music を再生して、AVアンプの電源をアレクサで入れて、Bluetooth でアンプに飛ばせば、高音質で再生することもできるはず。

ところが、AVアンプを普通に電源入れる際には、「アレクサ アンプ付けて」で通るのですが、
アンプをBluetoothモードにするには、「ブルートゥースにして。」とかでは通らない。

色々試したところ、アンプの純正リモコンからブルートゥースのボタンを押すと、電源を入れてブルートゥースモードで起動することが分かった。

そこで、LSMiniでリモコンを作成して、Bluetoothボタンを記憶させた。
これを呼び出すには、「アレクサ ブルートゥースつけて。」ではやっぱりだめ。
仕方ないので、このボタンに「太郎」という名前を付けました。
こうすることで、「アレクサ 太郎つけて。」でAVアンプがBluetooth 待ち受け状態で起動します。
これで、Echo Dot と AVアンプが自動的にBluetoothのペアリングを行い(事前に一度設定が必要)AVアンプ経由で音楽が鳴り始めます。
これはめっちゃ便利です。

因みに、AVアンプの電源を切る時は、アンプのモードが何であっても「アレクサ アンプ切って。」で落ちます。(当たり前)

同様に、前述のAT500には、「次郎」という名前を付けました。
「アレクサ 次郎つけて。」でブルーレイレコーダーが起動します。
テレビは、入力ソースに合わせて、自動的に入力を切り替えますので、触る必要なしです。

ここで問題発生。
様々なデバイスに好き勝手に名前を付けたもんで、どれがなんという名前だったかわからない。
自分ではまだわかっても、家族が全く分からない。

結局、家族は「お父さん ブルーレイつけて。」が一番確実だと宣っています。




2019年5月5日日曜日

RaspberryPi3 に入れた OSMC から AVアンプに繋ぐときの注意

RaspberryPi3 に OSMC を入れて、KODI 専用機にして使っています。
普通に HDMI でテレビに繋いでいて、特に不満は無かったんですが、テレビを変えたことで、テレビから光ケーブルでAVアンプに音声出力できることになったので、繋いでみた。

ところが、5.1chで出力されず、2chになっている。
もちろん AVアンプは Dolby でも DTS でも対応している。

どうも OSMC 側から出る時点で既に2chしか出ていない様子。

設定を色々確認するが、どうも5.1chにならない。
かなりハマった。

真っ先に確認したのは、
「設定」→「システム」→「オーディオ」の中の「オーディオ出力デバイス」は、「Pi:HDMI」になっているし、「チャンネル数」も「5.1ch」もしくは「7.1ch」になっている。
同じく、「設定」→「システム」→「オーディオ」の中の「Allow passthrough」の項目も、もちろん「ON」になっているし、その下の、「ドルビーディジタル(AC3)対応レシーバー」関係も全部「ON」になっている。
これで、Raspi から出力されるのは全て5.1chで出力されるはず。
なのに、出ない!

色々ネットを彷徨っても、なかなか決定打が見つからない。
そもそも日本語の解説が少ない。

でも、見つけました。
なんと、「設定」→「システム」→「プレイヤー」の中にある、「ビデオ」項目の
「ディスプレイ同期周波数に合わせて再生」が「ON」
になっているとダメなそうな。
そんなところが関連するとは思ってなかった。
いつ変更したのかも覚えてないけど、なんとなく「ディスプレイ同期周波数に合わせて再生」してくれた方がいいんだろうなと思って、切り替えたんだろう。

これで、AVアンプ経由で Dolby や DTS でご機嫌なサウンドを出せるようになりました。

2019年1月13日日曜日

C:\windows\system32\config\systemprofile\Desktop は利用できない場所を参照しています。

C:\windows\system32\config\systemprofile\Desktop は利用できない場所を参照しています。

なんてことだ!
家族が使っていたパソコンが起動しないというので、見てみたら、
デスクトップ上にはごみ箱しかなく、スタートボタンを押しても何も反応しない。

起動途中に出るメッセージが上記のとおりです。
「OK]を押せば、ごみ箱しかないデスクトップまでたどり着けます。
しかし、起動するまでの時間も尋常じゃないほど長い。

「いつからこうなったの?」と聞いたら、「今年(2019)になってから。」
こりゃ絶対Windowsの更新に失敗してると確信。

色々ググったけど、なかなか決定打にはたどり着けず。

ただ、とりあえず、MicroSoft の
https://www.microsoft.com/ja-jp/software-download/windows10
からツールをダウンロードして、
インストール メディア を作成するのがよさそうというところまでわかりました。
--------------------------------------------------------------------
このツールを使用して、別の PC に Windows 10 をインストールするためにインストール メディア (USB フラッシュ ドライブ、DVD、または ISO ファイル) を作成する (クリックして、詳細情報の表示と非表示を切り替えます)
Windows 10 の新しいコピーのインストール、クリーン インストールの実行、Windows 10 の再インストールのために使用できるインストール メディア (USB フラッシュ ドライブまたは DVD) を作成するには、以下の手順に従います。
--------------------------------------------------------------------

このツールを使えば、今の状態はほとんど残して、再セットアップができそうです。
データはもちろん、自分で入れたアプリケーションもそのまま使えるようにできるそうです。
(結果、ちゃんと直りました。)

早速作って、ディスク(DVD)に焼いて、壊れかけてるPCにセットして、起動。
当然、このディスクから起動するものだと思っていましたが、どうも変?

1回起動するのにめちゃくちゃ時間がかかるので、色々試すのにめっちゃ時間がかかりました。

要は、
正常なパソコンで、上記サイトから作ったインストールメディアを作成。
正常なパソコンはここでお役御免。

壊れかけのPCで、ごみ箱だけのデスクトップ状態が表示されるまで、気長に起動させる。
その後、上記インストールメディアをセット。
Windowsキー+Rキーを押すと、「ファイル名を指定して実行」が表示されるので、
「cmd」と入力して、コマンドプロンプト画面を起動。

その際、豆知識ですが、「cmd」と入力して、普通に「Enter」だけを押すのではなく、「Shift」+「CTRL」+「Enter」を押すと、管理者権限で起動できます。
今回は管理者権限でなくてもいけると思います。

コマンドプロンプト画面で、ディスクをセットしたドライブを選択。
> D:
って感じですね。
次に
> Setup
を打てば、アプリケーションを残して再セットアップできる画面になりました。

この辺のことは、
こちらの方が書かれているブログが一番わかりやすかったです。
感謝感謝
http://dspckn.blogspot.com/2018/11/cwindowssystem32configsystemprofiledesk.html







2018年12月15日土曜日

VBScript から SQLServer などにADO(ActiveX Data Objects) で接続する際の注意点

今回もハマりました。

HTA を使って SQLServer のデータを操作する必要があって、
VBScript を使うことにしました。

接続には常套手段として、ADO(ActiveX Data Objects) を使います。

' ADOコネクションを生成
Set Cn = CreateObject("ADODB.Connection")

' DB接続情報
Cn.ConnectionString = "Data Source=localhost\MSSQLSERVER;Initial Catalog=TESTDB;User Id=sa;Password=xxxxx"

' 接続をOpen
Cn.Open

' ADOレコードセットを生成
Set RS = CreateObject("ADODB.Recordset")

' SQLを発行
RS.Open "select * from Table", Cn,adOpenForwardOnly,adLockReadOnly

ここで、緑字の adOpenForwardOnly は普通に通ります。
ところが、赤字の adLockReadOnly が通らないんです。

上記の例はどちらもデフォルトなので、省略できますから、書いたら通らないけど、省略したら通ります。

でも、レコードセットを編集したい場合は、これではできないので、どうしても、
RS.Open "select * from Table", Cn,adOpenKeyset,adLockOptimistic
にしたい。けど通らない。

さんざんいじくりまわした結果、
adLockReadOnly = 1
adLockPessimistic = 2
adLockOptimistic = 3
adLockBatchOptimistic = 4
という数字で指定すれば通りました。

RS.Open "select * from Table", Cn,adOpenKeyset,3





2018年11月27日火曜日

BRAVIA KJ-43X8500F に KODI を入れる

10年ぶりぐらいでテレビを買い替えました。
今まではSONY KDL-32F5 で、機能面では結構気に入ってましたが、流石に時代遅れかと。

今回は同じく SONY で BRAVIA KJ-43X8500F を選びました。

これは、Android TV というやつで、スマホと同じOSを積んでいるので、
最初から You Tube なども見れるようになっています。
もちろん、 Google Play ストア からアプリを入れることもできます。

スマホほど何でもかんでも入るわけではなさそうです。
テレビではタッチ操作ができないので、そのあたりが問題なのかも。

でも、KODI は入りました。
インストールはめっちゃ簡単です。

普通にテレビ上のメニューでGoogle Play ストアを起動して、KODI を検索したら、
簡単にヒットするので、何も考えずにインストールするだけ。

素晴らしい!テレビがあっという間に最強のメディアプレイヤーになりました。

KODI を使ったことのある方ならわかると思いますが、メニューを日本語化するのに、ちょとだけコツが必要です。

先に「InterFace Setting」の「Skin」「Fonts」から「Arial Base」を選択してから、
「Regional」の「Language」を「Japanese」にしないと、逆順で設定したら文字化けして訳わからんことになります。

これで、テレビがKODIの母艦になりました。

BRAVIA KJ-43X8500F にはUSB3.0の端子もついているので、ここにポータブルHDDを繋いだら、KODIから普通にアクセスできて、保存してあるISO ファイルなどが再生できました。

今までは、Raspberry PI 3 に OSMC を入れてKODI専用機として使っていました。
それなりに便利なんですが、リモコンで電源を入れることができないのが玉に瑕。
仕方ないのでスマートコンセントを使って、スマホをリモコンにして電源を入れるようにしていました。
でもこれだと家族には使い難いようで、不評でした。

これが、Andoroid BRAVIA のおかで、一挙解決です。

今、試行錯誤中なのが、KODI からDOLBY やDTS などを再生できるようにすることです。
もちろん、ダウンミックスで普通に再生できるのですが、BRAVIA に接続してあるAVアンプで再生したいんですよね。