2025年8月14日木曜日

SONY Xperia 10Ⅳ の電源スイッチが陥没(?)して電源を入れれなくなったので、分解(破壊?)修理

 Xperiaにはよくある症状のようですが、電源ボタンが陥没(?)してしまって、押せなくなりました。

電源が入った状態でこの症状になっても、シャットダウンしなければ、なんとか使用できます。

スリープ状態(画面が黒い状態)になっても、充電ケーブルを挿せば、画面が点灯し、ロック画面になって、パスワードを入れることができるので、通常通りうごきます。逆に通常使用状態からスリープ画面にするのが、電源ボタンが効かないとちょっと難しいけど、まあ、スリープ時間を短めにすれば、勝手にスリープするので、なんとかなる。

ところが、完全にシャットダウンしてしまうと、電源ボタン無しではどうやっても電源を入れることができなくなります。

意識的にシャットダウンしたり、気づいたらバッテリー切れでシャットダウンしていたり。

こうなるとお手上げ。途方にくれます。

修理に出すか、新しいのを買うか。

新しいのを買っても、電源を入れないことにはデータ移行ができないので、非常に困ります。

なんとか、1回だけでも電源が入ってくれれば、新規購入した機種にデータ移行できるのに~。

とりあえず、スマホ無しでは生きていけないので、新機種を買って、電源ボタンが壊れた方は廃棄処分するしかどうしようもない。

どうせ廃棄処分するなら、死亡覚悟で、分解修理してみる。
分解というと、元に戻せるという意味になるかと思うので、実際には「破壊」かも。

まずは、ヒートガンを使って、裏蓋を外す。まあ、なんとか外せる。でも、バッテリーが非常に固く接着されているので、これを無理やり取り外そうとすると、他の部分を破壊してしまいそう。

なので、ちょっと作戦変更で、本体外側から電源ボタン部分だけを破壊してみる。
これだと、裏蓋を外した意味はなくなる。
逆にヒートガンなどを持っていなくても修理可能。

本体右側面にある電源ボタンの上側に、わずかな隙間があるので、そこにできるだけ細いマイナスドライバーなどを突っ込んで、外に向けてグニッとねじると、かなり勇気が要りますが、失敗しても失うものは無い(すでに失っている)ので、思い切ってグニッ!

電源ボタンは上側には配線は無く、下側に配線があるので、上側は本体から外れます。
下側は本体に接続されたままなので、電源ボタンはプラプラした状態となります。

これで、取り外しに使ったマイナスドライバーなどで、電源ボタン付近をチコチコいじれば、何かの拍子に電源が入ります。

電源さえ入ってしまえばこっちのもん!

新機種にデータ移行して、完了。

破壊した方はもう元に戻せないし、形だけ元に戻せたとしても、そうしたら電源を押せないし、防水なども全く効かないので、普通に使うことはできない。

でもまあ、性能的にはまだ使える範囲なので、とりあえずコレクションとして保存しておきます。


2025年3月24日月曜日

Windows10のプリンター名が変更できない。

 Windows10にプリンタードライバーを入れた。

ところが、プリンター本体が来るまでに、先にドライバーだけ入れておこうと思ったのが間違いで、プリンターを繋いでも認識しない。

そこで、メーカー指定の手順通り、一度プリンターの電源を切り、再度投入してからドライバーを入れると、きちんと接続できて、印刷もできるようになった。

でも、プリンター名が、「〇〇(コピー2)」みたいな名前になってしまった。
こちらがちゃんとつながる方なので、先にいれて繋がらない方の「〇〇」というプリンターを削除した。

それから、「〇〇(コピー2)」の名前を変更して、「〇〇」にしようとしたら、「その名前は既に使われてるので変更できません。」みたいなメッセージが出て、名前が変更できない。

以下の処理で対応

1,ファイル名を指定して実行(Windows+R)で services.msc を入力して「サービス」を起動。(コントロールパネル→管理ツール→サービスでも可)

2,Print Spooler を探して、サービスを停止

3,%WINDIR%\ystem32\spool\PRINTERS 配下のファイルを全部削除。(「Print Spooler」サービスを停止しているので、必要なファイルは無いはず。)

4,「サービス」に戻って、先ほど停止した「Print Spooler」 サービスを開始

これで、プリンター名の変更ができるはず。

2024年9月10日火曜日

Access のRunTime版でアクションクエリのメッセージを消す

 Public Function Mess_OFF()

'レコード更新確認
    Application.SetOption "Confirm Record Changes", False


'オブジェクトの削除
    Application.SetOption "Confirm Document Deletions", False
'でも、そもそもRunTime版ではオブジェクトの削除ができない?
'いや、VBAで削除することも考えられるか。


'アクションクエリ実行
    Application.SetOption "Confirm Action Queries", False

End Function

2024年3月18日月曜日

VBAからPDFファイルの特定のページを印刷する PDF-Xchange Viewer を使用

 ExcelやAccessのVBAからPDFファイルの特定のページを印刷するためには、一般的には「Acrobat」が必要で、「Acrobat Reader」ではなかなか上手くいかない。

「Acrobat」があっても、結構複雑な処理を書かないとだめ。

そこで、「PDF-Xchange Viewer」に行き着いた。
これは結構前に開発が終了していて、「PDF-Xchange Editer」になっているが、今でも窓の杜からダウンロードすることができた。

EditerではなくてViewerがいい点は、インストールが必要なく、「PDFXCview.exe」だけで動くこと。
EditerはEXE単体では動かない。

Shell "c:\pro****\PDFXCview.exe /print:pages='3-5' 'c:\target.pdf'"

これだけで標準プリンターから指定ページ(例なら3,4,5ページ)を出力して、自動的にViewerを終了する。そもそもバックグラウンドで動くので、終了したかどうかは画面上は不明です。

「pages='1-5'」とすれば1から5ページまでを印刷する。
「pages='3,5,7'」とすれば、3と5と7ページを印刷する。
「pages='1-3,5'」とすれば1から3ページまでと、5ページを印刷する。

まあ想像通りの動作です。

これを一つのプリントキューとして流すので、両面印刷設定済みのプリンターに対して、「pages='1-3,5'」と指定すれば、1枚目の紙の表に1ページ、裏に2ページ、2枚目の紙の表に3ページ、2枚目の紙の裏に5ページを印刷します。

これも想像通りの動作です。

もし、上記の例で、5ページを3枚目の表に印刷したければ、処理を分けて、1-3で1回流して、5ページだけを2回目として流すことになります。

追記
PDF-Xchange Viewer はダウンロードのあと、一度インストール作業が必要で、インストール後は、 「PDFXCview.exe」だけをどこか他のフォルダや、他のパソコンに移動させても使えます。
その際にPDFXCview.exeを置いているフォルダの下に、「language」フォルダと、その中の「pdfxvw_jpn.xml」ファイルを持ってきておくと、日本語メニューが使えるので助かります。

さらに追記
表題のとおり、VBAを使って、PDF-Xchange Viewerで連続印刷をすると、VBAからはじゃんじゃんプリント命令が送られて、スプーラーに溜まっていく。
スプーラーは、送られてきた順番に印刷するんだと思っていたら、そうではなくて、大量のスプールがされていると、スプーラーが気に入った(?)データからプリンターに送られるようです。
したがって、予期しない順番で紙が出てきます。
(もちろん、1個のスプールデータの中はきちんと指示通りに出ます。)
例えば、
1個のPDFファイルの、1-3ページ、5-7ページ、10ページ、15-20ページ、25ページを印刷みたいな処理を流すと、プリンターから1-3ページの次に10ページの紙が出てきたりします。
これを完全に回避する方法は無いような感じです。
仕方ないので、VBA側で処理にウエイトを入れて、スプーラーにデータが溜まらないようにするぐらいで逃げています。ウエイトを入れすぎると全ての印刷が完了するまでの時間が伸びるので、ちょうどいいウエイトをどう考えるか?
プリンターの印刷速度(30枚/分とか)と、プリンター本体のバッファー(メモリー)を勘案しながら、試行錯誤ですね。

2024年2月1日木曜日

VBA の Keybd_Event のパラメタの件

画面のハードコピー(スクリーンキャプチャ)を撮って、自動で印刷したくて、(画面ハードコピーツール)エクセルのマクロを作ったときにちょっとはまった。

多くの参考Web上では、第2パラメタを「使用しないので、常に0を指定。」としていることが多いのですが、私が参考にしたのはちょっと違いました。

多い解説

Sub 全画面()
    keybd_event &H2C, 0, 0, 0        'Print screen押す
    keybd_event &H2C, 0, 2, 0        'Print screen上げる
End Sub 

Sub アクティブウインドウのみ()
    keybd_event &H12, 0, 0, 0        'ALT押す
    keybd_event &H2C, 0, 0, 0        'Print screen押す
    keybd_event &H2C, 0, 2, 0        'Print screen上げる
    keybd_event &H12C, 0, 2, 0        'Print screen上げる
End Sub 

この第2パラメタを「1」にすれば、「ALT」を押しながら「PrintScreen」=アクティブウインドウのみになります。

Sub アクティブウインドウのみ()
    keybd_event &H2C, 1, 0, 0        'Print screen押す
    keybd_event &H2C, 1, 2, 0        'Print screen上げる
End Sub 

'MSの解説の意訳
keybd_event  bVk, bScan, dwFlags, dwExtraInfo
bVk=仮想キーコード(16進のキーコード)
bScan=キーのハードウェア スキャン コード(意味は不明だが、PrintScreenの時はとりあえず使える。)
dwFlags=関数操作のさまざまな側面を制御します。 このパラメーターには、次の 1 つ以上の値を指定できます(意味は不明だが、「0」を指定すれば、キーを押し下げ、「1」を指定すれば、押している(指定した)キーを放します。)
dwExtraInfo=意味不明かつ使い道不明

2023年11月29日水曜日

VBA の参照設定で「参照不可」があるために、コンパイルエラーになる

 Excel や Access のVBA で参照設定をしたけど、端末によってはその参照先がインストールされていないことがある。

私の場合は、Acrobat。

同じExcel のファイルを複数の端末で利用することになるが、Acrobat がインストールされている端末とReader しかインストールされていない端末がある。

Acrobat があれば、やりたいことはVBA からPDFファイルのページを指定して自動印刷。

Acrobat がなければ、対象ページをリストアップして、手動で印刷。

ところが、Acrobat のない端末でこのExcelファイルを起動して、VBA を実行すると、なんでもないところで、「コンパイルエラー」となって走らない。

単に変数に文字列を代入するだけでも走らない。

Acrobat のある端末で実行すれば、何事もなく実行される。

いろいろ試行錯誤したところ、すべての変数を宣言すれば、Acrobat の無い端末でも実行できた。

まるで、「Option Explicit」を設定しているような感じ。

普段はVBA 標準である「Option Explicit」は設定しないで書いているけど、これを宣言したのと同じように変数の宣言をしたらOK!

これからは、「Option Explicit」を宣言して、参照設定に関係なくても変数は宣言するようにした方がいいかなと思い直した。

因みに、どんな参照設定がされているかは、
「ThisWorkbook.VBProject.References」で参照設定一覧が取得できる。

「参照不可」はもともと異常な状態なので、「不可」の名前などを取得することはできないけど、当たるとエラーが発生するので、エラー処理で逃げることができる。

参照設定自体をON OFF できれば一番いいけど、端末によって元ネタのPathなども違うので、ちょっと無理なので、あれば自動印刷、なければ手動印刷で処理を分けて対応。


2023年4月18日火曜日

Panasonic カーナビ ストラーダ CN-F1X10BHD はパーキングブレーキセンサーを設定するだけで走行中でもテレビが映ることを確認

 パナソニックのカーナビ ストラーダ CN-F1X10BHD をヴェルファイアに取り付けました。

元は新車購入時にディーラーで取り付けてもらったアルパインの VIE-X009 からの載せ替えです。

作業内容などは、別に書くとして、大失敗というか、勘違いを書いておきます。

事前にネットで色々情報集めをしていたら、なぜか、パナソニック製のナビは、自主規制で走行中にテレビが映らないし、目標物検索などもできないと思い込んでました。

対策として、当然パーキングブレーキをアースに落とすことはわかっていたけど、それだけではダメで、車速センサーもカットしないと映らないと思い込んでしまった。

実際にヴェルファイアにナビを大まかに接続した状態で走行テストをしたら、テレビも映らないし、目標物検索などもできなかったんです。
当然、停止するとすべての操作ができます。

なので、車速センサーをカットするスイッチを自作することにしました。
ただ単にスイッチでカットするだけだと、復帰(車速センサーを接続する)させるのを忘れそうで、そうなると、自車位置は狂い続けるので、遅延スイッチを作って、カットして一定時間が経過したら、自動的に再接続する仕掛けを考えました。

遅延スイッチの動作確認をするために、再度、走行テストをしようとナビの結線を確認したら、なんと、パーキングブレーキケーブルがアースされていないことが判明。
車種別ハーネスに依存しきったために、アース接続をすっかり忘れてたんですね。
(この辺りのハーネスの説明は別途書くつもりです。)

結果的に、パーキングブレーキをアース処理するだけで、車速センサーは何も細工せずに普通に接続したままで、走行中でも全く問題無くテレビも映るし、その他全ての機能を利用できることが確認できました。

これで、助手席の人は走行中でもテレビを見ることができます。

車速センサーの処理が必要なのは、メーカーオプションの場合だけなのかな?
このメーカーオプションがどうなっているのかは確認していません。


2022年10月29日土曜日

Raspberrypi での MagicMirror

 CTRL + q で一時停止し、

Xwindow が開くので、

LXTerminal を起動して、

pm2 stop 0 を打つ

sudo apt update

sudo apt full-upgrade -y

sudo  apt autoremove -y

pm2 start 0

sudo reboot now

2021年11月15日月曜日

Xperia XZ1 に Y!mobile の SIM を入れるとテザリングが出来ない。

 Xperia XZ1 に Y!mobile の SIM を入れるとテザリングが出来ない。

au で買った XZ1 SOV36 です。
まあ基本的にSOFTBANK 系ではBAND が違うのでダメなんでしょうけど。

XZ1側では「テザリング中のエラーが発生しました。」と表示され、
受け側の端末では、「接続先にインターネット接続がありません。」と表示される。

XZ1 側の APN 設定で、
「APNタイプ」を「default,supl,dun」とすれば解消しました。

「設定」→「ネットワークとインターネット」→「モバイルネットワーク」→「詳細設定」→「アクセスポイント名」→「Y!mobile APN」をタップ。

下の方へ送ると、

「APNタイプ」があるので、タップすると入力できるようになる。

私の場合は、デフォルトで「default, mms, supl, hipri」となっていましたが、これではダメで、

「default,supl,dun」が正解。


もちろんSIMロックは解除済みが前提です。

2021年6月12日土曜日

Raspberry PI3 の X window が「パスワード待ち」になって、パスワードを受け付けない。

 Raspberry PI3 をデジタルサイネージ風に使っていて、
MP4ビデオを数本入れて、自動再生していました。

その方法は、
omxplayer という動画プレイヤーを使って、
/home/pi/.config/lxsession/LXDE-pi/autostart
にスクリプトを入れて、複数の動画を連続再生しています。

参考にさせていただいたのは、
http://www.cenolan.com/2013/03/looping-video-playlist-omxplayer-raspberry-pi/

毎日順調に再生されていたのですが、
同じコンテンツだと飽きてくるので、今回違う動画ファイルを入れようと思って、
電源を切ったときに、ミスったようです。

実は、上記の設定だと、必ず自動再生されてしまうので、
メンテや動画ファイルの交換には必ず、ほかの端末からSSHなどでコンソールに入るしか方法が無くなりますが、そうなると、ネットワーク環境が必要になります。

今回は、全くネットワークを使わない設定にしたかったので、
USBポートに特定のデバイスをつないだ時だけ、自動再生されない設定にしていました。

USBポートに「DELL のキーボードを検出したとき」という設定です。

普段は、ネットワークもなし、キーボードもマウスもなし。
全くラズパイ本体だけをモニターに繋いでて、
メンテナンスの際にDELL製のキーボードをつなぐと自動再生されない。

で、キーボードを繋いで、コンソールを出して、
「autostart」のファイル名を一時的に変更して、再起動させると、X-Windowが起動する。

ここで、再起動の際に、なぜか X-Window は起動するけど、「pi」のユーザーで、ログインパスワード待ちのウインドウが開いて、正規のパスワードを入れても、ログインできない状態になってしましった。

普通は自動ログイン設定なので、パスワード待ちなんてありえないのに。

試しにわざと間違ったパスワードを入れてみると、「パスワードが間違ってる。」というメッセージがでるので、入れたパスワード自体は正しい。

でも、X は触れない。デスクトップ背景の画像も表示されているのに。

これにはかなりはまった。

とりあえず、CTRL+ALT+F1 でコンソールを出して、raspi-config でCUI ログインに変更したら、CUI ログインはできたけど、日本語が通らない。

この状態で、startx でX-Window を起動したら、TimeOut とか言いやがって、起動しない。

と思っていたら、一旦タイムアウトしてるのでのに、何かのキーを触ったらX が起動した!

ログインもできている。

でも、根本的な原因は解消されていなくて、自動起動させたら、ログインパスワード待ちのまま。

色々ネットを彷徨ったら、
https://www.raspberrypi.org/forums/viewtopic.php?t=180859
このページに助けていただいた。

「`~/.Xauthority` の権限をlsコマンドなどで確認してもし`pi`以外のものだったら`pi`にしてログインし直しして直らないか.」

ちょうど偶然 X が起動している状態になったので、ファイルマネージャーで権限を確認したら、「root」になっている。なんでじゃ?

これを、
「sudo chown pi.pi ~pi/.Xauthority」
で「pi」に変更したら、正常に戻った。

助かりました。

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アンプで再生したいんですよね。



2018年10月21日日曜日

au で SIMロック解除したのに MVNO のSIM を認識しない

au の端末を買って、My au から SIMロック解除をしました。
auショップでやってもらうと3000円(と思う。)が必要ですが、
My au から自分で解除すると無料ですからね。
手順も簡単です。
あっという間に解除出来ちゃいました。

で、今解除したすぐの端末に、用意しておいたMVNOのSIMを入れると、
なんと、「ロック中ですの認識できません。」みたいなメッセージが流れれて、
APNの設定に入れません。

それは多分、SIMロック解除の情報が端末に反映されていないからです。

SIMロック解除した端末の、
「設定」→「システム」→「端末情報」→「機器の状態」→「SIMのステータス」→「SIMカードステータス」とたどると、
一番下に、「SIMステータス更新」というのがあるので、
これを押してしばらくたつと、SIMロックステータスが「許可されています」に変わると思います。

そうなれば、MVNOのSIMが認識されて、APNの設定に入れるようになります。


2018年1月13日土曜日

VBA のユーザー関数の名前の怪

今更ながらですが、同じVBA でも Access と Excel では微妙に違いますね。

今回陥ったのは、ユーザー関数の名前の付け方です。

今までAccess で使っていたユーザー関数をそのままExcel に流用しようとしました。

Access ではこんな感じ。
----------------------------------------------------
Function aaa1( V_1 as String) as String
     aaa1 = "答えは = " & V_1
End Function
----------------------------------------------------

めっちゃ単純化していますけど、まあこんな感じで、ちゃんと運用しています。

これをそのまま Excel にコピーしました。
そして、ワークシート上で使うと、そのセルには、
#REF!
というエラーが表示されています。

これはかなりはまりました。

関数の処理内容はいたって簡単なのに、なぜ?

しかも混乱に拍車をかけたのが、
Excel でも、プロシージャの中で使うと問題なく答えが返ってきます。

なぜ?なぜ?なぜ?なぜ?

ここでふと気づきました。
エラーが「#REF!」ってことは、参照先のセルが不正。
ってことは、これは関数を呼んでいるのではなく、セルを参照している?

ということは、aaa1 というのはユーザー関数とは思われていなくて、
R1C17576 のセルを参照していて、その後に()が付いているので、参照不可。

ということで、関数名を「aaa_1」とかのアルファベットのあとにすぐ数字が来ないような名前にしたら、問題なく処理できました。






2018年1月7日日曜日

Raspberry Pi ZERO W の MPEG-2 ライセンス購入

Pi ZERO でも音楽やMPEG-4 なら結構快適にKODIが動作するんですが、以前に録りためた、DVDのISOファイルを再生するとかなり厳しい状態になります。

この解消方法は、MPEG-2 のライセンスを購入することで、動画再生支援ハードウェアを活用することができるということで、早速ライセンスを購入してみました。

手続き自体は簡単で、
http://www.raspberrypi.com/mpeg-2-license-key/
から購入できます。

値段はユーロ建てで、2.4ユーロ、私の時で日本円にして、311円でした。
これくらいなら、気軽に買えますね。

購入ページによると、手続き後72時間以内に、ライセンスキーがメールで送られてくるとのことです。
が、私の場合、そうはいきませんでした。
まあ、私に非があるといえばそうなんですが、
購入手続きの際に、Pi ZERO のシリアルナンバーを送らなければならないんです。
これは16桁の英数字で構成されていて、その確認方法もちゃんと説明されているので、簡単に確認できます。
ただ、前の方の桁は全部「0」だったので、これを省略して7桁だけ送ってしまいました。

すると、24時間後ぐらいに「そのシリアルナンバーは異常です。」みたいなメールが返ってきて、「このメールに正しいシリアルナンバーを書いて返信しろ」みたいなことが書いてあるので、今度はきちんと「0」の部分も含めて16桁書いて送りました。

ところが、送りなおした後72時間経過しても、キーが送られてきません。
私の中学生並みのたどたどしい英語で、「なんでやねん!」みたいなことを書いて再度送っても、なんの返事もありません。

かなり頭に来たけど、英語なのでどうしようないので、仕方なく、再度購入手続きをして、311円ほどをもう一度払おうかと思っていたら、
やっとライセンスキーが送られてきました。

最初の購入手続きが11月25日で、キーを入手出来たのが12月1日となってしまいました。
ま、手抜きコードを送った自分が悪いんですけどね。

キーをPi ZERO に入れて、早速ISO ファイルを再生したら、なんと!スムーズに動くじゃないですか~。
こりゃ便利です。
Pi ZERO に、昔から多くのISO ファイルを格納してきたUSBの外付けHDD を接続して、快適に映画鑑賞しています。