ウィンドウの位置とサイズを拡張子で指定
ナビゲーションに移動
検索に移動
http://www.haijin-boys.com/index.php?fuseaction=discussions.replies&discussion_id=2460 で Nakajima さんが要望していた「起動オプションでウィンドウの表示位置を指定」 のマクロによる実装です。表示位置はマクロファイルにハードコーディングするので、 厳密には要望どおりではありません。
(下のマクロを SetWindowPos.js として保存した場合) mery.exe "%1" /mf "マクロのパス\SetWindowPos.js" と /mfオプション を開くファイル名の後ろにつけることが重要。
ウィンドウの操作に Win32 APIを使うので SFC mini が必須です。 Vista 以降の OS をお使いの方は Vector で公開されている正式版 Ver 1.0.1 で はなく sourceforge にある 1.0.5 βをインストールしてください。 http://sourceforge.jp/projects/sfcmini/
#tile="ウインドウの位置とサイズを拡張子別に指定" (function(){ if(Editor.EnableTab && Editor.Documents.Count>1) { // タブ表示モードで起動済みなら位置・サイズは変更しないほうがよい。 Quit(); // 強制的に SDI モードにするなら非推奨の ExecuteCommandByID を使う // var MEID_WINDOW_COMBINE = 2190; // Editor.ExecuteCommandByID(MEID_WINDOW_COMBINE); } try { var FindWindow = new ActiveXObject("SfcMini.DynaCall"); var SetWindowPos = new ActiveXObject("SfcMini.DynaCall"); FindWindow.Declare("user32", "FindWindowA"); SetWindowPos.Declare("user32","SetWindowPos") ; }catch(e){ Status = "SFC miniが無いため、APIアクセスができません"; Quit(); } var filename = Editor.ActiveDocument.FullName; var editmark = (Editor.ActiveDocument.Saved)?"":" *"; var arr = filename.split("."); var ext = (arr.length)?arr[arr.length - 1]:""; switch (ext.toLowerCase()){ /* 拡張子別の設定をここに書く */ case "txt": var pos={"left":200,"top":200,"width":800,"height":600}; break; //case "js","vbs":/* vbsとごっちゃになってた */ case "js": case "vb": var pos={"left":100,"top":100,"width":1200,"height":600}; break; default: var pos={"left":100,"top":100,"width":800,"height":600}; } try{ var hWndDoc = FindWindow(0, filename + editmark + " - Mery"); SetWindowPos(hWndDoc, 0, pos["left"], pos["top"], pos["width"], pos["height"], 64); } catch(e) { Status = "API実行エラー"; } })();
スポンサーリンク