|
> マクロからrunで別のアプリケーションを起動したときに、ウィンドウのフォーカス
> を秀丸エディタのままにしておくことは出来ますか?
Iranoanさんコメントありがとうございます。
setactivehidemaruでする方法の場合、もしかしたらタスクバー上で点滅するだ
けうまくいかないことがあるかもしれないです。
Windowsによって、一度入力を得たプロセスは外部からは簡単には切替られない
ようになっていて、場合によってはタスクバー上で点滅するだけになってしまう
かもしれません。
WindowsAPIのShellExecute相当の呼び出しで、表示フラグを指定することができ
れば、最初のウィンドウの表示状態を決めることができるかもしれません。
参考:ShellExecuteのフラグの意味
http://msdn.microsoft.com/ja-jp/library/cc422072.aspx
ただ、起動されたプロセスがその指示に対応している必要があって、必ずしもで
きるかどうかはわからないです。
例えば最小化してアクティブにしない場合、ShellExecuteのSW_SHOWMINNOACTIVE
(数値で7)を使います。
ShellExecute相当の呼び出しを行う方法は幾つかあります。
●vbsの場合
set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "notepad.exe","","","",7
秀丸からこれを呼び出す場合、
openbyshell "C:\\Folder\\test.vbs";
としてvbsを呼び出せます。
●マクロだけの場合(V8以降)
vbs相当の呼び出しがマクロからもできます。
#objShell = createobject("Shell.Application");
callmethod #objShell, "ShellExecute", "notepad.exe", "", "", "", 7;
…と、今試してみたら64bit版においては最後の数値が64bitで渡しているせい
でうまくできませんでした。64bit版は次のβ版で修正させていただきます。
●ショートカットを経由する場合
任意のショートカットをどこかに作って、プロパティで「実行時の大きさ」を
「最小化」にするとSW_SHOWMINNOACTIVE相当になるようです。
秀丸から呼び出す場合、
openbyshell "C:\\Folder\\test.lnk";
としてショートカットを呼び出せます。
これ相当のフラグはrunexでも今のところ指定できません。
一応runexの「表示フラグ」がそれに相当しますが、ウィンドウを表示するかど
うかだけしか指定できませんでした。
これらの数値も指定できるように検討させていただきます。
参考:ShellExecuteのフラグの数値
SW_HIDE 0
SW_SHOWNORMAL 1
SW_SHOWMINIMIZED 2
SW_SHOWMAXIMIZED 3
SW_MAXIMIZE 3
SW_SHOWNOACTIVATE 4
SW_SHOW 5
SW_MINIMIZE 6
SW_SHOWMINNOACTIVE 7
SW_SHOWNA 8
SW_RESTORE 9
SW_SHOWDEFAULT 10
SW_FORCEMINIMIZE 11
|
|