MultiShortcutの制作

2020-02-15 portfolio booth csharp oss vrchat windows

OGP

背景

知人の話を聞いたところ、 どうやら複数のアプリケーションを同時に起動したい需要は有るようだ。

僕個人としては「バッチファイルを書けば良いのでは」と思ったが、 どうやら万人がバッチファイルを書けるわけではないらしい。

既存ランチャーソフトウェアも複数紹介してみたが、 所謂「フリーソフト」を使ったことがない層な様で、 取り扱いに困っている様だった。 (Vector/フリーソフト100/窓の杜や、フリーソフト収録雑誌の文化は何処へ…。)

新規性 (?)

下手に煩雑にすると、既存のランチャーと同様となる。 本アプリケーションの動作はなるべく単純な物のみにしようと考えた。

以下の点を重視する。

  • 非常駐
  • GUI/設定レス

非常駐

主記憶装置は貴重なハードウェア資源であり、常駐は多くの場合悪だ。 (近年潤沢なメモリを前提としたアプリケーションが増えているが) 避けられない場合を除き作るべきではないだろう。

キーショートカットのフックに関しては、Windowsのショートカット仕様を使う。

GUI/設定レス

決して筆者がGUIやコンフィグパーサーを作るのが面倒なわけではない。 GUIや設定を作る程複雑なアプリケーションにするべきではないと考える為だ。

操作方法

本アプリケーションのリリースをzip展開すると以下のようなツリーになる。

- Sample
  - +3s notepad.exe (ショートカット)
  - mspaint.exe (ショートカット)
- Set1
  - DropShortcutHere
- MultiShortcut(CreateShortcut).exe

MultiShortcut(CreateShortcut).exeは 起動時に同一ディレクトリ内ディレクトリの存在をスキャンし、 各ディレクトリに対して、 ディレクトリ名を自身のシェル引数に受け取るショートカットを作成する。

- Sample
  - +3s notepad.exe (ショートカット)
  - mspaint.exe (ショートカット)
- Set1
  - DropShortcutHere
- MultiShortcut(CreateShortcut).exe
- Sample (ショートカット)
- Set1 (ショートカット)

ショートカットが叩かれた時、 アプリケーションは引数にあるディレクトリ内をショートカットをスキャン、 実行する。

遅延起動 (2020-02-19追加)

重量級アプリケーションを複数同時に起動しようとすると、 IOがSequencialではなくなり、ヘッドが忙しくなる事が予想される。 (どうやら最近のストレージにはヘッドがついていないようだが、 IO Controllerにも優しくしてあげよう。)

+[指定秒数]s がファイル名先頭にある場合、指定秒数後に起動する。

所感

本当は自身のショートカットも入れ子に出来るようにしたかったが、 ループ検知の適切な実装を思いつかなかった為、現状入れ子を禁止している。

何か良い方法はないだろうか。

Special thanks

Idea, Logo: @FUMI23_VRC

Relevant Topics

VRChat RejoinToolの制作

2019-08-03 portfolio booth csharp oss vrchat windows

VRChatのログをパースしゲーム内インスタンス操作を簡便化するソフトウェア Read More

MacBook 2017にTripleBoot環境を整えた話

2019-12-31 note debian macbook pc windows

WindowsとLinuxとmacOS、それぞれの検証環境がほしくなった為取り組み Read More

GBA Brainfuckの制作

2019-11-27 portfolio c game oss

GAMEBOY ADVANCEでBrainfuckを書きたくなった為制作 Read More

GSI4Dの制作

2018-11-08 portfolio javascript oss userscript

検索結果から自分の気に入らないサイトを除去するUserScript Read More


Recent Posts

PSXITA on PC

2022-03-26 2022-03-30 note arch pc

PS4向けArch LinuxのPCへのインストール Read More

MDR-100A メンテナンス

2020-07-09 note audio device repair

ヘッドホンから異音がした為、いじった Read More

Realme X2 Proの導入

2020-07-09 note android device smartphone

安く速いスマートフォンを導入した Read More

独自ページからHugoへ乗り換え

2020-06-30 note hugo web

自前フレームワークからHugoへの乗り換え。その利点と欠点。 Read More

AutoImageCompresserの制作

2020-02-22 portfolio booth csharp oss vrchat windows

軽快なファイル同期 (スクリーンショット想定) の為の画像圧縮デーモン Read More