Pentium G4560の場合
i9-9900の場合
i7-3770Tの場合
しかし、急にWindowsUpdateがいくつか見つかり再起動すると、
この画面は、簡易表示です
しかし、急にWindowsUpdateがいくつか見つかり再起動すると、
色々できる(ハズ
EXEからアイコンを取り出す方法をさがしていたら、PowerShellでもできるらしい。
※Ver6からはSystem.Drawing.Iconが無い様だ。Windows10はVer5だから動くけど。
しかし、文法が ソースっぽさとコマンドラインが混ざってる(メンドクサイ
例えば、PowerShellの窓を開き
元ネタ:https://suzuzusu.hatenablog.com/entry/2016/10/14/043726
###########################################################
# アイコンを抽出して保存
###########################################################
function ExtractionIcon(
$Path, # 抽出する .exe のフルパス
$OutFile # 出力する .ico のフルパス
){
# アセンブリロード
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName System.IO
$str1 = "ExtractionIcon :Path=`"$Path`", :OutFile=`"$OutFile`""
$str1
# アイコンデータ抽出
$IconData = [System.Drawing.Icon]::ExtractAssociatedIcon( $Path )
# 出力用ファイルストリーム
$FS = New-Object System.IO.FileStream( $OutFile, [System.IO.FileMode]::Create )
# 保存
$IconData.Save( $fs )
$fs.Close()
# オブジェクトの始末
$fs.Dispose()
$IconData.Dispose()
}
と貼り付けると、
窓が開いている間だけ使える。(便利
しかし、この関数を呼び出す時はコマンドプロンプトっぽく
> ExtractionIcon "C:\Program Files (x86)\Sarad\DiCE\dice.exe" "a:\aaa\aaa.ico"
と打つ。
関数の中では、関数っぽく呼び出すのだから・・・
コマンドプロンプトから1コマンドづつ打って動作を確かめた後、
関数化する際には
のが面倒だな。
後、Windowsでパパっと使う都合上、デスクトップに貼る場合、
Join-Path $env:UserProfile\Desktop "sample.ico"
で済ましたいがOneDriveをインストしてしまうと、アンスコしてもパスが変わってしまうから
Join-Path [System.Environment]::GetFolderPath("Desktop") "sample.ico"
と書かないと動かないPCも出てくる。
更に、コマンドラインのパラメータの区切りは空白文字なのは常識なので
コマンドのパラメータにコマンドを使うと、 どっちのパラメータなのか判らなくなる。
〇 コマンド (コマンド パラメータ1 パラメータ2) パラメータ3
× コマンド コマンド パラメータ1 パラメータ2 パラメータ3
だから、パラメータにコマンドの戻り値を使うなら、PowerShellでは()で括る仕様になっている。
先のEXEからアイコンを取り出すコマンドをコマンドラインから呼び出すには
ExtractionIcon "C:\Program.....\xxx.exe" (Join-Path [System.Environment]::GetFolderPath("Desktop") "sample.ico")
となってしまう。
最後に、今のPowerShellはRestrictedで、スクリプトファイルは実行不可で、
一時的に許可するなら
> pwsh.exe -ExecutionPolicy RemoteSigned xxxx.ps1
ps1のショートカットの場合も
powershell -ExecutionPolicy RemoteSigned -File ${元の内容}
となる。
ま、当然何でもできるから危なっかしい。
いくらPS1を実行不可にしても気の利いたショートカットを作られたら・・・
結局、MSが作ると、
しかし、使い物になる様にバージョンアップすると
これは定説だな。
多分、こんな感じかな
な感じで使えばいいかな
ExcelでVBAエディタは ALT + F11 で開いていたが、
暫く振りに使ったら無反応だった。
仕様が変わったのかな?思ったら
NVIDEA GeForce Expressの中で「 ALT + F11 」をフックしていたせいだった。
普通は自分の画面上でしか 自分の ショートカットは有効にならないが
ゲームの画面をキャプチャ等をするには、
デスクトップ内で 自分の ショートカット を有効にする方法(ジャーナルだったかん?)を使うしかない。
このため「ゲーム内のオーバーレイ」で登録してある「ショートカット」は全てのアプリの 「ショートカット」 より優先されるのだ。
対処法で一番確実なのは
もし、Excelの操作をキャプチャで使ってるなら、
かな。
MDNにフォルダをドロップして中身をリストアップするサンプルを見つけた。
FireFoxではうまく動くが、ChromeやEdgeでは・・・・・・・・・
code: 0
message: "A URI supplied to the API was malformed, or the resulting Data URL has exceeded the URL length limitations for Data URLs."
name: "EncodingError"
が出てしまう。
「APIに提供されたURIの形式が正しくないか、結果のデータURLがデータURLのURL長の制限を超えています。」
ってファイル名のせい?
しかし、C:¥aaaでも同じ結果だった。
原因は判らないけど、コードをアップしてみると・・・何故かうまくいく(アップ先)。
どうやら、httpなURLなパスにあるHTMLファイルをブラウザで開いている場合はOKらしい。
微妙だ。どっちかと云えば、
得体のしれないのURLの画面のページに自分のPCのフォルダをドラッグするのは・・・
と思う。
後、先の参考URLの注釈通りにreadEntries
は、100個までしか読んでくれない。
forEachはPromiseを返さないので、非同期処理を抱えてる部分を含めて、
ローカル関数に書き換えたが forEachの最終ループで再起すると
ここは、forEachをmapにして暗黙の同期化を発動する。
ついでにmapの戻り値から readEntries が空っぽを渡たさなかった場合のみ再起するようにした。
readEntries
も非同期っぽいから、ローカル関数のままか。
フォルダに203個ファイルがあっても全部書き出してくれたから、
多分大丈夫。
メデタシ、メデタシ。(かな?
あ、HTMLのINPUTタグでwebkitdirectory を指定すると
フォルダも選択できるらしい。
こっちの方が良さそう。
でも、非標準らしい。
なぜかスマホ・スタンドが付いてくる。キーボード裏側に単3電池1個を入れる。傍にUSBドングルを格納する様な窪みがあるが本機はBluetoothで3台切り替えられるキーボードだから、共用の裏蓋なんだろう。他社の3台切り替えキーボードも物色していたので、これもUSBドングルついてると思い込んでいた。
当然だけど、
そんな訳でこれからのマザボには
が欲しいね。
※何年も使ってると有線マウスとか捨ててしまった。
オンラインマニュアルを探してみると箱の中に印刷してあるものと全く同じだった。
キーボード全体の強度が弱目で強く押すとたわむのでキータッチが少しネバい感じ。
かるくキーを押すのがいい。
気持ちTK-FDM063の方がガッシリして打ちやすい。
最初は「Fn」を押しながら「Tab」を押してBluetoothのペアリングをすれば普通に使える。
但し接続先をコロコロ切り替えて使う場合は
右上の「B1」「 B2 」「 B3」のどれかを押すと接続先が変わる仕組みなので、
※「B1」のBのBluetoothマークの意味。フォントが無かった。
「B1」「 B2 」「 B3」 を一度も押していなければ
最初の1台目は「B1」になる。
2台目を繋ぐときは先に 「 B2 」を押してからペアリング動作を行う。
※「B2」を押さずに ペアリング すると、先に「B1」として登録した接続先の設定が上書きしまう。
※最初は取説を読まずに3台ペアリングするれば順に「B1」「B2」「B3」に自動的に振り分けられると思った。
これで、 「B1」「 B2 」 を押す度に接続先を変えられる。
3台目を繋ぐときは先に 「 B3 」を押してからペアリング動作を行う。
そのうち、気持ちが変わって「 B1」「 B2 」「 B3」 の接続先を変えたい場合、例えば、「B1」でペアリングしたけど「B3」で接続する様にしたい場合は、一旦「B1」の接続先からペアリングを削除した後に、「 B3」を押し、再ペアリングすることになる。
勿論、 「 B1」「 B2 」「 B3」 のどれも同じ接続先にしてもいいハズだけど、意味は無い。
しかし、 「 B1」「 B2 」「 B3」 で接続先を切り替えると云うことは、
切替元からはもう接続中ではなく「以前ペアリングしたキーボード」的な状態になり、
切替先の方も「以前ペアリングしたキーボードの電源がいきなりONになった!」的な感じなのでアタフタしかねない。
ちゃんとキーボード入力を受け付けるまでちょっと時間がかかる機器もあるだろうから、
急がずに右上のLEDが消えるまで待った方がいい様な気がする。
あとスマホなどその辺にポィっと置きっぱなしで画面を見ていない機器に接続しっぱなしにしておくと
うっかり接続先がスマホになってて「スタート」キーを押してもPCは無反応!
どうなんてるの状態の裏で、
スマホのGoogleアシスタントとの話がどんどん進んで妙なことになっている可能性が高い。(大笑
最後に、「Fn」キーを押しながら「PrinScreen」「ScrollLock」「Pause/Break」キーを押す必要があるので、これらを多用する人(プログラムのマニュアル作成、EXCEL、VisualBasic等)向けではない。
ボクはドレもあてはまるので、★3つかな。
というのも、多くのBluetoothキーボードはキートップが薄っぺらで格安ノートPCみたいなものが多いから、他よりはだいぶマシなんだよね。
表をTABLEタグ風のテキストをEXCELに貼ると、それっぽい表になる。
でも安易に
TD付の行リスト.push("<td>" + data1 + "</td><td>" + ... + "</td");
・・・
TD付の行リスト.push("<td>" + data1 + "</td><td>" + ... + "</td");
var str="<table><tr>" +TD付の行リスト.join("</tr><tr>") + "</tr></table>");
window.clipboardData.setData("Text" , str);
な感じで作ってしまったら、行の背景色を交互に変えるのがめんどくさくなってしまった。
TD付の行リスト.push("<td>" + data1 + "</td><td>" + ... + "</td");
・・・
TD付の行リスト.push("<td>" + data1 + "</td><td>" + ... + "</td");
var p = "<table><tr ${bgColorRow}>" +TD付の行リスト.join("</tr><tr>") + "</tr></table>";
// 行の背景色(${bgColorRow})を交互に変える
var i=0;
var str= p.replaceAll(/\$\{bgColorRow\}/g, function(pat){
i++;
return (i%2)? '': 'bgcolor="lightgrey"';
}));
window.clipboardData.setData("Text" , str);
でもいいけど、10,000行をJoinした後にReplaceAllは重すぎる様な気がした。
暫く電源を入れていなかった6台のPCはいつまで経っても21H1へのアップデートに失敗し続けたので、
※電源を入れていない間にWindowsUpdateの累積アップデート(LCU)の管理が変わりエラる問題を解決するハズのスタック更新パッケージ(SSU)のインストールにも失敗する(賞味期限が切れた?)現象が改善できない状況でした。
以下のWindows 10 のダウンロードのページの
https:/
【ツールを今すぐダウンロード】のMediaCreationTool21H1.exeを使用した。
本来はWindows10をインストールするツールで既にインストール済みのPCでも使用可能だ。
注意点
これで古いCore2DuOやメモリ2GBのスティックPCでも21H1にアップグレードできました。
大方の場合
For Each item in collection
debug.print(item .xxx)
Next
で済むけど、何番目なのか知りたい時があるが、
Dim index As Integer=0
For Each item in collection
debug.print($"{index}:{item .xxx}") ' あ、indexを+1しないといけない
index += 1 ’改造中に消えたり、ココを通らなくなるとメンドィ
Next
パッと見、ゴチャったコードになってしまう。
Enumerable.Select メソッドでcollectiomの各要素をindex付のテンポラリィなクラスに差替えられるので、
for each の in で使ってみると・・・
For Each entry In collection.Select(Function(item, index) New With {item, index})
Debug.Print($"{entry.index}:{entry.item.xxx}")
Next
entryは collectionの要素であるitemとindexのプロパティを持ち、entry.indexには、0から始まる整数が、entry.itemにはcollectionの各要素が入る。
また、EnumerableにはSelectのほかにもDistinct、Where、OrderByやUnionまであるから、SQL風に書こうとすればできないこともないかもしれない。
単位を分と秒にするとまともなグラフを作れないのはエクセルの仕様ですか?
~とあるTwitter から~
ブチギレそうです。
そうなのかな?と思ってやってみたら、見事にハマった。
単に棒グラフを作成すると、このデータの場合は自動的に横軸の目盛りが「43秒」毎に配置されてしまう。原因は単位が60進数を考慮してない設計のせいで、適当スギる値になっているせいだ。
単位の主はセルに「0:1:0」と入力して書式を「数値」にすると、「0.0006944444」になるが、
長いので「0.000695」が良いだろう。補助線も「0.00139」ぐらいが良いだろう。※適当だけど!
では変更を加えよう!
その「1分26秒」辺りを右クリックし【軸の書式設定】を選択し、右のプロパティっぽい画面の「単位」の「主(J)」を「0.000695」に「補助(I)」を「0.000139」にする。
一通りの操作はこんな感じ。
これで、いい感じになるっぽい。
ま、適当にやっつけたダケなので、本当は「ちゃんとした簡単な方法」があるんだろうなぁ~(棒読み
※ 実は最初のグラフが余りにも醜いので、最初から書式(mm”分”ss”秒”)に変えてある。初期書式は(hh”時”mm”分”ss”秒”)だ。