Code for final

ふぁいなる向けのコード置き場です。すでにコードじゃないこともいっぱい。

pngファイルの右クリックメニューから消えた"写真の編集"を復活させる方法

いつぞやのWindowsアップデートからWindowsのフォトアプリが新しくなりました。
それとともにpngファイルを右クリックしたときに表示されていた"写真の編集"がおなくなりました。
画像をトリミングしたりするときに地味に便利で多用していたので困ったのですが、解決したので記録しときます。

レジストリとかをいじってなんとかしようと思っていましたが、もっと簡単な方法がありました。
新しいフォトアプリの設定画面に"フォトレガシの取得"ボタンがあるのでそれをクリックして、フォトレガシに関連付けすれば元通りになりました!

※すでに取得したあとなので開くになっています。

手順がわからない方は以下に丁寧に画面付きで解説されているので参照ください。
www.fmworld.net

ブラウザのパスワード保存が禁止されている環境で自動でログインする方法

ブラウザのパスワード保存って便利ですけど組織のポリシーで保存が禁止されている環境ってありますよね。
しかもそんな環境に限ってSSOされないとか。

そんな環境でも快適に作業するために以下の自動ログインスクリプトを作ってしまいましょう。
同じことはvbsでもできますが、vbはほかの言語と違いすぎてすぐ忘れるのでjs(jscript)です。

var id = "userid";
var pass = "password";
var url = "https://xxxx.com/login";

var shell = new ActiveXObject("WScript.Shell");
var edgePath =
  '"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"';

shell.Exec(edgePath + " " + url);

// ブラウザ起動するまで待機(時間は環境に合わせて調整)
WScript.Sleep("2000");

// 画面に合わせてカスタマイズ
shell.SendKeys(id + "{TAB}");

shell.SendKeys(pass + "{TAB}");

shell.SendKeys("{Enter}");

上記のコードをjsファイルとして保存してダブルクリックで自動ログインできます。

※パスワードをファイルに保存するので必ずローカルに保存しましょう。くれぐれもサーバに置かないようにしてください。バレたら怒られますよ

Electron + Vue 3 + TypeScript + Element Plusで出たVSCodeの謎のエラーを解消する方法

作りたいアプリが思いついたのでvscodeで久々にElectronの環境を構築してみました。
いまはもうElectronはバージョン22で、Vue.js 3.0で、Vue CLIを使った構築も非推奨になってるんですね。。
とはいえ慣れた環境がしっくりくるのでVue CLIで構築しました。
memoを残しといてよかった。

以下の方法で2023年現在でも構築できました。

final.hateblo.jp

ただし、Node.jsは現時点の推奨版の18.xだとElectron Builderは以下のv3 alpha版を使わないと動かなかったです。

github.com

UIフレームワークはVue3に対応したシンプルなElement Plusを使用することにしました。

element-plus.org

ちなみにVue CLIプラグインにElement Plusのやつがありましたが、メンテされておらず動かなかったので、普通に公式の手順通りnpmでいれました。

で、環境構築できたものの、謎のエラーに苛まれました。
以下のようにelタグのところでエラーになるんです。

Argument of type '{ [x: string]: any; }' is not assignable to parameter of type 'App<any> & Partial<{ readonly type: EpPropMergeType<StringConstructor, "" | "default" | "text" | "success" | "warning" | "info" | "primary" | "danger", unknown>; ... 12 more ...; readonly autofocus: boolean; }> & Omit<...>'.
  Type '{ [x: string]: any; }' is missing the following properties from type 'App<any>': version, config, use, mixin, and 11 more.

これはtypescriptのエラーで実際動かす分には問題ないですが、コード書いているときに気になって集中できません。

で、いろいろ調べたのですが、なかなかわからなくてChatGPTにも聞きましたが、ググれと言われました。

最終的に調べまくってtsconfig.jsonが原因とわかりました。
以下のところの"element-plus/global"を削除すると解決しました!

{
  "compilerOptions": {
    "types": ["webpack-env", "element-plus/global"],

"element-plus/global"のTypeScriptの定義ファイルはあったのでなにが問題かいまだによくわかってないですが、解決してスッキリです。