2022年7月9日土曜日

Mac mini (mid 2011)でHDMIから音が出ない

 iTunesで視聴中に"GarageBand"というアプリを誤って起動したらHDMIの音が突然切れました。イニシャライズと称して何をしてくれた?
このアプリは古いらしくて、最新版は現在使用中のOSにはinstallできません。

メニューバーのスピーカ・アイコンがHDMI選択時にグレーアウトしている状態です。

色々やったのですが復旧できない。

sub-driveのsierraを起動するとHDMIから音が出るのでhardwareの故障ではないです。

1) HDMIを抜き差し

2) 再起動

3) Command+option+P+Rを押しながら再起動

4) OSを再installしてsecurity update

5) ライブラリ-> preferencesのAudioの中身を削除して再起動

6) plistの更新日付をみて新しそうなものを削除して再起動

7) アプリケーション -> ユーティリティのAudio Midi設定を開く
  HDMIを選択するとマスターが0になっていて変更できない

8) GarageBandを削除する

全然ダメ。困った。SSDを新しく買ってOSを再installするか?

最近、やけにiTunesの反応が遅いので古いOSにする?
って、今はhigh Sierraしかinstallできないか。
でも、今回、OSを再インストールしたら少し早くなった気がする。

暫く前にiTunes Storeにアクセスできなくなったので、いよいよ切られたかと思ったのですが、またaccessできる様になってますね。

まだ暫く使えるかな。

Mac mini M1に買い換えようかと思ったのですけど、SSDを内蔵で増設できないし、そうこうしているうちに円高でえらく高くなってしまった。暫く買えない...。

2022年6月11日土曜日

Power Automata Desktop 始めました

 VBAによるMS Edgeのscrapingができない※ためPower Platformを試してみることにしました。

(※一応、MSWedbdriverとTinySeleniumBasicとJSONcomberterを使って対応しているのですけれど、標準機能だけでできないのかなと)

出来そうなのはPower BIとPower Automata Desktopか。
Power BIは会社がlicense契約していない模様。
Power Automata Desktopはlicenseに含まれていると表示されるけど別アプリですね。
まあ、しゃあないか。

program時にいくつか悩んだので覚書です。

1) booleanの取り扱い

 変数の型宣言ができず、自動判定されるようです。

 演算で型が合わないとerrorになって実行開始すらできません。
 演算結果を入力した変数をmessage boxで表示すると

 True False

 なのですけれど、これを値に記入するとstringと判定されます。

 変数をtrueとかfalseに設定するには、

 %True% %False%

 を値に記入すれば所望の動作が得られました。

2) null stringの取り扱い

 stringをnullに設定するのに、値が空欄だと怒られます。
 こちらは値に

 %""%

 を記入すれば所望の動作が得られました。

3) 要素の存在確認

 actionに"Webに次が含まれる場合"というのがあります。
 条件として、要素を含む/含まない、テキストを含む/含まない が選択できます。
 テキストの場合は良いのですが、要素の場合は、partsに要素のURLも含まれて表示されます。
 試してみると別のWeb Pageでもとりあえず有無判定できるのですが、気持ち悪い。
 うまくいかないときもあり、何をもって含まれると判断しているのかよく分かりません。
 そこで、"WebページでJavaScript関数を実行します"を用いて結果を変数に返すことにしました。

 function ExecuteScript() {
  return (document.getElementById("XXX") != NULL);
 }

とかですね。

 ちなみに、"Webページのボタンを押す"(actionにないけどrecordで生成される)みたいなやつも要素にURLが含まれており、別pageで実行してもうまくいかないので、JavaScriptを使用しました。(今回うまくいかなったのはreload)

4) code

 desktopアプリでないものとはprogram画面が異なりますね。統一環境ではなさそう。
 desktopアプリではprogramしたactionを選択(複数可)してcopyし、memoなどにpasteするとtext codeが貼り付けられます。
 逆も同様で、text codeをcopyしてdesktopアプリに貼りつけるとactionになります。
 いちいちactionを配置するより、textでcodingして貼り付けたほうが楽じゃね?
 文字の大きさとかも変えられるし。(desktopアプリだと文字が小さすぎて読みにくい)

-----

さて、所感を。

値を設定する時に変数を選択すると変数名が%で囲われるのですが、変数ごとに%で囲うのではなく、全体を%で囲うことになっており、%% 内は演算となる仕様のようです。

であれば、1)は%%内に演算結果を書けばよいはず。
ということで、%1=1%とか%1=0%とか書いてみたらTrueとかFalseとかになりました。
で、もう一歩進めて%ture%とか%false%とか書いてみたらうまくいった次第です。

2)は、net検索すると、入力値を設定しない入力変数を設定する方法がhitしました。
これだと実行時に入力boxが表示されて空のままOKしないといけないので面倒です。
これも、1)と同様に行けんじゃね?
と思い%null%と書いてみたのですが"変数nullが存在しません"と怒られました。
それでは演算結果をnull stringにするには?
%""%で良いですね。%’’%のほうが素直なのか?

しかし、Web pageの要素をどう判定しているのかよくわからず。
"Webページの要素の詳細を取得します"も、選択肢が”Own Text”, "Title", "source link", "HRef","exists"しかないです。
結局、javascriptで最初から書けばよいんじゃないか、とか思いました。

さて、次は出力をどうするかが課題です。
Excelだと楽だったのですけれど。ExcelからPADを実行して結果を受け取れるのだろうか?
逆に、PADからExcelのVBAを起動して値を渡すのはできそう。でも前者もやりたい。
最終的には結果をまとめてWeb pageに表示したい。BIならできるのかな?

今回は以上です。

2022年6月5日日曜日

DEMIO レトロフィットキット装着

地図が古くなって、更新するにもSDカードの再購入が必要とのこと。

メーカのマップの更新は1年毎だし、新東名もオープンしたのでAndroid Autoを使えるようにすることにしました。

最初にディーラーの人と話をした時には、トンネルとか都心とか電波の入りにくいところに行くと自車位置がウンチャラと言われたような気がしますが、調べてみると車の自車位置情報(車速パルスなどから算出)を受け取っているようなので、トンネルでも問題なさそう。

当初、精度向上のための自車位置演算ユニットとかあったはずなのですが、今回調べたら製造中止になっていました。このため、レトロフィットキットとETC2.0の配線変更のみを行うことにしました。

取り付けは自分で、ということで、ディーラの人に取り付けのマニュアルをいただきました。が、内装の取り外しとかは、別マニュアル参照みたいなことが書いてあり、ネットを参照しながら各部の取り外しを行いました。

マニュアルに作業開始前に準備しておくものの一覧が記載されており、プラスドライバー、マイナスドライバー、ラチェット、トルクドライバーなどとなっています。

マイナスドライバーは内装取り外しのスクレーパーがあれば不要。ラチェットはディスプレイを外すのに10mmのものが必要でした。レンチだとダッシュボードと干渉するので厳しいです。トルクレンチはバッテリー接続用に10mmのレンチが必要ですが、トルクは書いてありません。

ビビり防止用のスポンジテープはたくさんついてくるのでマニュアル以上にいろいろ使っても大丈夫。レトロフィットキットは結束バンドが足りないですが、USBケーブル側に余裕があるのでトータルでは間に合います。適当に締めておけば大丈夫か。

取り外しはディスプレイ以外は大したことがなかったです。運転席の裏側の配線をする体勢づくりが一番大変で体が痛くなりました。

最後にチェック表があって、バッテリーを取り外した場合の復帰手順を行ったか、に対しての手順が書いてないです。ネットで調べるとパワーウィンドウとかハンドルとかアイドリングストップとかの初期化が必要のようです。アイドリングストップの初期化はバッテリーとセンサーを取り外す必要があり、たまたまオイル交換があったので、ディーラーでやってもらいました。

で、取り付け後なのですけれど、

従来は車のパワーオフでUSBの接続が切れていたものが、切れなくなりました。パワーオン前にスマホを繋いでしまうとAndroid Autoがうまく起動しません。パワーオンしてからスマホを繋ぐとうまく起動します。調べてみてもパワーオフでUSBを切断するような設定は見つけられませんでした。

あと、高速を走行中(従来の高速を含む)に、標準のカーナビ?が割り込んできて"この先に一時停止があります"とか言ってきます。

経路選択で高速使用有無の経路を選択できるとよいのですけれど、経路オプションで設定するしかなくてちょっと面倒だと思います。

試しに新しくできた第2東名(伊勢原~松田)を走ってみたところ良好です。(トンネル内って4Gが入るのですね)

スマホホルダーが欲しい今日この頃。

2022年4月24日日曜日

Cura 5.0.0

 Curaの5.0.0のβ版の連絡が来たのでinstall。

installしたら3D-printerが登録されている!?

4の時は毎回登録し直しだったのに。

先日Ultimakerのaccountを登録をして設定をbackupしたためか?

しかし、サインインはされていない。

よく分かりませんけど楽なので良しとしましょう。

2021年12月28日火曜日

TSUTATA宅配レンタルの登録情報の確認の画面が開けない

 年末に帰省するので、TSUTAYA DISCASの配送先の住所を変更しようかなと。

まずMACのSafariで宅配レンタルのマイメニューから登録情報の確認を選択すると、tsiteのログインの画面?に飛ばされて何もできず。

それならとWindowsのEdgeから試しても同じ症状。ただしpop up blockのalart表示あり。
しかし、block解除しても同じ症状でダメでした。

macもsafariのpop up blockを解除設定をしても変わらず。

やむを得ずスマホから試したところ難なくメニューが表示されて配送先を変更できました。

う~ん。ではwindowsで一度宅配レンタルをログアウトして、再度yahoo IDで再ログインしたところ、無事に登録上の確認画面が開けました。MACのsafariも同様でした。

またもや、くだらないところで時間を取られました。


2021年8月21日土曜日

VBSでのclipbord内容の取得がうまくいかない

先日、以下の方法で取得可能と書きました。

    ’clipboard操作用objectを作成
    Set objHTML = CreateObject("htmlfile")
    'clipboardの内容を取得する
    strTEXT = objHTML.ParentWindow.clipboardData.GetData("text")

が、作成したtoolを他の人に使ってもらったところうまくいかず。
原因を調査したところclipboardの内容を取得できていませんでした。
(errorにもならないのが厄介)

netで調べていくとセキュリティ設定について言及されているものを発見。

IEのインターネットオプションでセキュリティのインターネットのレベルのカスタマイズで、スクリプトのスクリプトによる貼り付け処理の許可を有効にする。

しかしながら会社のセキュリティ設定で、この項目を有効にすることができません。

ではなぜ自分のPCではclipbord内容を取得できているのか?

以前に何かのtoolを作成したときに以下の設定をしていたのを思い出しました。

IEのインターネットオプションでセキュリティの信頼済みサイトのサイトに、about:blankを加える。(下の「このゾーンのサイトには~」のcheckを一度外して追加)

この設定を他の人にも行ってもらったところtoolが動くようになりました。

about:blankは中身の何もないpageを示しており、setしたobjHTMLが空っぽなので、この設定で信頼済みサイトとして認識されるようです。

2021年8月7日土曜日

VBSでIEを最前面に出す

 VBAだと

    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True

で最前面に表示されるのですけど、VBSだとなぜか背面に表示されます。

APIの「SetForegroundWindow」が使えそうなのですが、VBSで使える?

trickyではありますが、Excel4.0からcallすると使えるようです。

    'windowactiveにする(APIを使う)
    With CreateObject("Excel.Application")
        Call .ExecuteExcel4Macro("CALL(""user32"", ""SetForegroundWindow"", ""JJ"", " & objIE.hWnd & ")")
    End With

    戻り値はtrue/falseのようですけど、”JJ”を”LJ”にするとerrorになります。

    変数=戻り値、にしてもerrorになる?

ですが、windowが前面に出てきません。

調べていくと「SetForegroundWindowWindows95、およびWindows98では正常に機能しますが、Windows2000WindowsXPにおいてはタスクバーで点滅し、ウィンドウが隠れてしまいます。」とな。orz

では、「SetWindowPos」ではどうでしょう。

    'windowactiveにする(APIを使う)
    With CreateObject("Excel.Application")
        Call .ExecuteExcel4Macro("
CALL(""user32"",""SetWindowPos"",""JJJJJJJJ""," & objIE.hWnd & ",0,0,0,0,0,3)")
    End With

hWndの直後の0は「Zオーダーのトップに置く」らしいのですが、うまくいきません。
-1が「ウィンドウ表示リストのトップに置く(非アクティブになっても常にトップ位置を保持する)」であり、これはうまくいきました。しかし常にtopに居座られるのは邪魔。
-2は「トップ指定されたウィンドウの直後に置く」となってますが「解除」となっているものもあり、これを噛ませるたら所望の動作にできました。

よって、最終的なcodeは以下になります。

    'windowactiveにする(APIを使う)
    With CreateObject("Excel.Application")
        Call .ExecuteExcel4Macro("
CALL(""user32"",""SetWindowPos"",""JJJJJJJJ""," & objIE.hWnd & ",-1,0,0,0,0,3)")
        Call .ExecuteExcel4Macro("CALL(""user32"",""SetWindowPos"",""JJJJJJJJ""," & objIE.hWnd & ",-2,0,0,0,0,3)")
    End With

Excel.Application objectの生成に時間が掛かるのが玉に瑕ではありますが。
あ~、ExcelがinstallされていないPCではダメだという問題もありますね。