foobar2000.ahk
foobar2000の設定メモ
タイトルバー邪魔だなー消したいなーと思いつつも軽く調べた程度だと
そういったコンポーネントや方法がなかった…
と思ったらあった!普通にあった!
しかし正直よくわからないので起動時にAutohotkeyを使うことにした
#Persistent #NoTrayIcon #SingleInstance Force #NoEnv SetBatchLines, -1 ListLines, Off SetWorkingDir, %A_ScriptDir% Foobar2000("..\..\foobar2000\foobar2000.exe") Foobar2000( FilePath){ static foobar2000 SplitPath, FilePath, FileName, WorkingDir Process, Exist, %FileName% If ErrorLevel { foobar2000 := ErrorLevel Menu, foobar, Add, &Default, CmdPatternB Menu, foobar, Add, &Shuffle (tracks), CmdPatternB Menu, foobar, Add, &Repeat (track), CmdPatternB Menu, foobar, Add Menu, foobar, Add, &Next, CmdPatternA Menu, foobar, Add, Pr&ev, CmdPatternA Menu, foobar, Add, &PlayPause, CmdPatternA Menu, foobar, Show } Else { Run, %FilePath% ,%WorkingDir%,, foobar2000 WinWait, ahk_pid %foobar2000% WinGetPos,,, Width, Height, ahk_pid %foobar2000% WinSet, Style, -0xC40000, ahk_pid %foobar2000% WinSet, Region, R15-15 W%Width% H%Height% 0-0, ahk_pid %foobar2000% WinMinimize, ahk_pid %foobar2000% WinActivate, ahk_pid %foobar2000% } SetTimer, Foobar2000Region, 500 Return CmdPatternA: Run, % FilePath A_Space """" "/" RegExReplace( A_ThisMenuItem, "&") """" Return CmdPatternB: Run, % FilePath A_Space """" "/command:" RegExReplace( A_ThisMenuItem, "&") """" Return CmdPatternC: Run, % FilePath A_Space """" "/playing_command:" RegExReplace( A_ThisMenuItem, "&") """" Return Foobar2000Region: IfWinNotExist, ahk_pid %foobar2000%,,,, ExitApp WinGetPos,,, Width, Height, ahk_pid %foobar2000% WinSet, Region, R15-15 W%Width% H%Height% 0-0, ahk_pid %foobar2000% Return }
スクリプトのワーキングディレクトリを指定してfoobar2000を相対パスで指定できるようにする
相対パスを入力し
パスをファイル名とフォルダパスに分け
foobar2000.exeが起動していなければ、さきほど分けたフォルダパスをワーキングディレクトリとして指定しfoobar2000を起動
foobar2000の起動を待ち、ウインドウサイズを取得
タイトルバーを非表示、リサイズボーダーを消し
角に丸みを付けるよう表示領域を変更して、foobar2000を最小化した後にアクティブにする
最後の2プロセスは自分の環境だとfoobar2000のタイトルバーを非表示にする際に表示がおかしくなるため再描写させている
既にfoobar2000が起動されている場合はメニューを表示
最後にfoobar2000を終了するとこのスクリプトを終了させる、リサイズした際に表示領域を変更させるタイマーをセット