別々に機能するスクリプトを組み合わせるのに苦労しています...
基本的に、次のようなバッチスクリプトがあります。
START "" "mpc-hc64.exe" "video.avi"
これにより、私のビデオがメディアプレーヤーで開きます。ここまでは順調ですね。それから私はSOとSEで、cmd/batを介して設定された位置でウィンドウを開く方法について読んで、 AutoHotkey (ドキュメント: here )。そこで、実行可能ファイルを含むZipをダウンロードし、AHKスクリプトを作成しました。
Run mpc-hc64.exe
WinWait, Media Player Classic Home Cinema
WinActivate
WinMove A,, 960, 0, A_ScreenWidth-960, A_ScreenHeight-29
このcmd/batを実行すると、画面の右側にメディアプレーヤーが開きます。
AutoHotkeyU32.exe "script 1.ahk"
そして今、私は上記のすべてを1つのバッチに結合する必要があります。それを実行すると、メディアプレーヤーと画面の右側にビデオファイルが開きます。 enyoneは助けることができますか?
私は方法を見つけました(公式の不和AHKシャネルで):
#Persistent
mpc := "C:\T4\mpc-hc 1.7.16 x64\mpc-hc64.exe"
avi := "C:\T1\scripts\avi.avi"
Run, % """" mpc """ """ avi """", , , pid
WinWaitActive, % "ahk_pid " pid
WinGet, mpc_hwnd, ID, % "ahk_pid " pid
SetTimer, CheckWindowPosition, 100
CheckWindowPosition:
if(!WinExist("ahk_pid " pid)) {
ExitApp
}
WinGetPos, x, y, width, height, % "ahk_pid " pid
WinGet, hwnd, ID, % "ahk_pid " pid
if(DllCall("GetParent", "Ptr", hwnd, "UInt", 3) = 0 && DllCall("GetAncestor", "Ptr", hwnd, "UInt", 3) = mpc_hwnd) {
if(x != 960 || y != 0 || width != A_ScreenWidth - 960 || height != A_ScreenHeight - 29) {
WinMove, % "ahk_pid " pid, , 960, 0, % A_ScreenWidth - 960, % A_ScreenHeight - 29
}
}
return
パラメータを使用してコマンドライン引数をスクリプトに渡すことはできますか?
以下ではこのコードをテストしませんでしたが、基本的な概念は、.batファイルと.ahkファイルの両方でコマンドライン変数を使用して、ユーザーがコマンドラインで入力した内容をキャプチャし、それをパススルーして実行することです。
コマンドライン
C:\>launch video.avi
launch.bat
@echo off
AutoHotkeyU32.exe "script 1.ahk" %1
スクリプト1.ahk
Run mpc-hc64.exe %1%
WinWait, Media Player Classic Home Cinema
WinActivate
WinMove A,, 960, 0, A_ScreenWidth-960, A_ScreenHeight-29