添付ファイルの情報



[添付ファイル一覧] [全ページの添付ファイル一覧]

fileChangeFontSize.js
格納ファイル名:attach/4D6163726F2FC5EAB9C62F323039_4368616E6765466F6E7453697A652E6A73
ページ:Macro/投稿/209
格納ファイル名:attach/4D6163726F2FC5EAB9C62F323039_4368616E6765466F6E7453697A652E6A73
MD5ハッシュ値:28d3abab0f50d1c45a540645dc8e81f7
サイズ:3.3KB (3390 bytes)
Content-type:application/octet-stream
登録日時:2012/08/06 04:25:06
アクセス数:396
MD5ハッシュ値:28d3abab0f50d1c45a540645dc8e81f7
fileChangeFontSize.js
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
/* (Tab=4)
 [概要]
	フォントサイズを変更します。
	デフォルトは sDefaultFontSize の値です。本マクロのファイル名に
	"FontSize=nn" (nnは数字) という文字列が含まれていれば、それを
	フォントサイズとして使用します。(大文字・小文字は区別されません。)
		例: "ChangeFontSize=16.js" → サイズを16に。
 [制限]
	実行中に、他のアプリケーションをアクティブにすると誤動作します。
 [変更履歴]
	2012/07/24	Win7対応(?)。但しCtrlキーを押していると誤動作する。(Altキーは大丈夫かも?)
	2010/01/06	新規
*/
 
// フォントサイズのデフォルト値
var sDefaultFontSize = "10";
 
 
Main();
 
function Main()
{
    var WshShell = new ActiveXObject("WScript.Shell");
    var sSELFCALLID = "/CallByMyself";        // 誤実行防止用の識別子
    var sMacroPath;
    var sFontSize;
    var n;
    
    if( typeof Editor != "undefined" ){
        // サクラエディタからマクロ実行された。
        
        sMacroPath = Editor.ExpandParameter("$M");
        if( sMacroPath == "" ) return;        // [名前を指定してマクロ実行...] の場合
        
        // 本ファイル名に "FontSize=nn" が含まれていれば、フォントサイズとして使用。
        sFontSize = sDefaultFontSize;
        if( sMacroPath.match( /.*FontSize=([0-9]+)[^\\]*$/i ) != null ){
            n = parseInt( RegExp.$1 );
            if( (n >= 8) && (n <= 72) ){
                sFontSize = RegExp.$1;
            }
        }
        
        // フォントサイズをクリップボードへコピー (プロセス終了まで待つ)
        //	WshShell.Run( "mshta.exe \"javascript:clipboardData.setData('text', '"
        //		+ sFontSize + "'); close();\"", 0, true );
        //	↑マクロで実行すると遅かった。(wscriptでの実行だとOK)
        WshShell.Run( "mshta.exe \"about:<hta:application windowstate=minimize />"
            + "<script>clipboardData.setData('text', '" + sFontSize + "'); close();</script>\""
            , 0, true );
        
        // wscript で本ファイルを実行
        WshShell.Run( 'wscript.exe "' + sMacroPath + '" ' + sSELFCALLID );
        
        // フォント設定のダイアログ
        Editor.SelectFont();
        
    }else{
        // 本マクロから wscript で実行された。
        
        var WshArgs = WScript.Arguments;
        if( (typeof WshArgs == "undefined")||(WshArgs.length == 0)||(WshArgs(0) != sSELFCALLID) ){
            WScript.Echo( "このスクリプトはサクラエディタのマクロ用です。" );
            return;
        }
        
        // 少し待つ
        WScript.Sleep( 20 );        // とりあえず20ms
        
        //2012/07/24 Win7では誤動作する。
        // 例えばAlt+Tab はタスクスイッチャーの動作になってしまう。(WinXPではOKだった。)
        // おとなしく単純に Alt+S や Enter にする。但し Alt や Ctrl が押されているとうまく動作しない。
        //		// SendKeys() はModifierキーが押されていたり、IMEがONだとうまく動作しない。
        //		//   Ctrlが押されていると Alt+S → Alt+Ctrl+S で[サイズ(S)]にフォーカス移動しない。
        //		//   Shiftが押されていると "1" → "!" になる。IMEがONだと全角入力になる。
        //		// Modifierキーはなるべく最初から押下状態に、数字入力はペーストとした。
        //		
        //		// %=ALT, ^=CTRL, +=SHIFT
        //		// [サイズ(S)] にフォーカス移動
        //		WshShell.SendKeys( "%^+{TAB}%^+{TAB}%^+{TAB}%^+{TAB}" );	// Alt+Ctrl+Shift +Tab
        //		// クリップボードからペースト (Altを押しているとだめらしい。ShiftはOKだった)
        //		WshShell.SendKeys( "^v" );				// Ctrl +V
        //		// [OK]
        //		WshShell.SendKeys( "%^+{ENTER}" );		// Alt+Ctrl+Shift +Enter
        
        // %=ALT, ^=CTRL, +=SHIFT
        // [サイズ(S)] にフォーカス移動
        WshShell.SendKeys( "%s" );                // Alt +S
        // クリップボードからペースト
        WshShell.SendKeys( "^v" );                // Ctrl +V
        // [OK]
        WshShell.SendKeys( "{ENTER}" );            // Enter
    }
}




    


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS