「ファイルのプロパティ」の版間の差分
ナビゲーションに移動
検索に移動
空行の除去 |
|||
| (2人の利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
アクティブなドキュメントのプロパティを表示します。 | アクティブなドキュメントのプロパティを表示します。 | ||
== Mery で表示する == | == Mery で表示する == | ||
* 確認ダイアログ(OK/キャンセル)に表示し、親フォルダを開く | * 確認ダイアログ(OK/キャンセル)に表示し、親フォルダを開く | ||
* 警告メッセージボックス上に表示する | * 警告メッセージボックス上に表示する | ||
| 10行目: | 7行目: | ||
※警告とアウトプットはソースコード内でコメントアウトしてあります。 | ※警告とアウトプットはソースコード内でコメントアウトしてあります。 | ||
<syntaxhighlight lang="javascript"> | |||
< | |||
#title = "ファイルのプロパティ" | #title = "ファイルのプロパティ" | ||
#tooltip = "ファイルのプロパティを表示し、親フォルダを開く" | #tooltip = "ファイルのプロパティを表示し、親フォルダを開く" | ||
| 71行目: | 67行目: | ||
+ dd.toLocaleTimeString(); | + dd.toLocaleTimeString(); | ||
} | } | ||
</ | </syntaxhighlight> | ||
== プロパティダイアログを開く == | == プロパティダイアログを開く == | ||
表示されるまでにちょっとタイムラグがありますが、エクスプローラの '''本物の''' プロパティダイアログを呼び出します。<br> | 表示されるまでにちょっとタイムラグがありますが、エクスプローラの '''本物の''' プロパティダイアログを呼び出します。<br> | ||
※動作確認は Windows XP でしかしていません。 | ※動作確認は Windows XP でしかしていません。 | ||
<syntaxhighlight lang="javascript"> | |||
< | |||
#title = "ファイルのプロパティ" | #title = "ファイルのプロパティ" | ||
#tooltip = "ファイルのプロパティダイアログを表示する" | #tooltip = "ファイルのプロパティダイアログを表示する" | ||
| 99行目: | 92行目: | ||
// "プロパティ(&R)" の部分はエクスプローラの右クリックメニューのとおりの文字列にし、アクセラレータのアルファベットの前に & をつける | // "プロパティ(&R)" の部分はエクスプローラの右クリックメニューのとおりの文字列にし、アクセラレータのアルファベットの前に & をつける | ||
} | } | ||
</ | </syntaxhighlight> | ||
1行ですませるなら | 1行ですませるなら | ||
< | <syntaxhighlight lang="javascript"> | ||
new ActiveXObject("Shell.Application").NameSpace(document.FullName.slice(0,-document.Name.length)).ParseName(document.Name).InvokeVerb("プロパティ(&R)"); | if (document.Name) new ActiveXObject("Shell.Application").NameSpace(document.FullName.slice(0,-document.Name.length)).ParseName(document.Name).InvokeVerb("プロパティ(&R)"); | ||
</ | </syntaxhighlight> | ||
2024年9月9日 (月) 10:12時点における最新版
アクティブなドキュメントのプロパティを表示します。
Mery で表示する[編集]
- 確認ダイアログ(OK/キャンセル)に表示し、親フォルダを開く
- 警告メッセージボックス上に表示する
- アウトプットバーに表示する
※警告とアウトプットはソースコード内でコメントアウトしてあります。
#title = "ファイルのプロパティ"
#tooltip = "ファイルのプロパティを表示し、親フォルダを開く"
/**
* ファイルのプロパティを表示し、親フォルダを開く
*/
var path = document.FullName;
if ( ! path ) {
Status = " ドキュメントが保存されていません";
}
else {
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var f = fso.GetFile( path );
var n = "\n";
var tab = "\t";
var d = path + n;
var folder = path.slice( 0, - document.Name.length ) + n;
var file = document.Name + n;
var t = "種類:" + tab + f.Type + n;
var s = "サイズ:" + tab
+ f.Size.toString().replace( /(\d)(?=(?:\d{3})+$)/g ,"$1," )
+ " バイト" + n;
var c = "作成日時:" + tab + DateTime( f.DateCreated ) + tab + n;
var m = "更新日時:" + tab + DateTime( f.DateLastModified ) + n;
// インデックス属性と暗号化属性は取得できない
var fa = f.Attributes;
var rhsac = ( fa & 1 ? "R" : "" ) // 読み取り専用属性
+ ( fa & 2 ? "H" : "" ) // 隠し属性
+ ( fa & 4 ? "S" : "" ) // システム属性
+ ( fa & 32 ? "A" : "" ) // アーカイブ属性
+ ( fa & 128 ? "C" : "" ); // 圧縮属性
var a = "属性:" + tab + ( rhsac.length ? rhsac : 0 ) + n;
var q = n + "フォルダを開きますか?";
// ※確認ダイアログに表示する
// フォルダを開きますか? → [OK] なら親フォルダを開く
if ( Confirm( folder + file + n + t + s + c + m + a + q ) )
new ActiveXObject( "WScript.Shell" ).Run( 'explorer /select, "' + path + '"' );
// ※メッセージボックス(警告ダイアログ)に表示する
// Alert( folder + file + n + t + s + c + m + a );
// ※アウトプットバーに表示する
// OutputBar.Writeln( d + s + c + m );
}
/**
* 日時を "YYYY/MM/DD hh:mm:ss" で返す
*/
function DateTime( date ) {
var dd = new Date( date );
// 1ケタの数字をゼロ埋めして2ケタで返す
var pad = function( str ) {
return str.replace( /[0-9]+/g , function( $0 ) {
return $0.length < 2 ? "0" + $0 : $0;
} ) }
return dd.getFullYear() + "/" + pad( ( dd.getMonth() + 1 ) + "/" + dd.getDate() ) +" "
+ dd.toLocaleTimeString();
}
プロパティダイアログを開く[編集]
表示されるまでにちょっとタイムラグがありますが、エクスプローラの 本物の プロパティダイアログを呼び出します。
※動作確認は Windows XP でしかしていません。
#title = "ファイルのプロパティ"
#tooltip = "ファイルのプロパティダイアログを表示する"
/**
* ファイルのプロパティダイアログを開く
*/
var path = document.FullName;
var filename = document.Name;
if ( ! path ) {
Status = " ドキュメントが保存されていません";
}
else {
var shell = new ActiveXObject( "Shell.Application" );
shell.NameSpace( path.slice( 0, - filename.length ) )
.ParseName( filename )
.InvokeVerb( "プロパティ(&R)" );
// "プロパティ(&R)" の部分はエクスプローラの右クリックメニューのとおりの文字列にし、アクセラレータのアルファベットの前に & をつける
}
1行ですませるなら
if (document.Name) new ActiveXObject("Shell.Application").NameSpace(document.FullName.slice(0,-document.Name.length)).ParseName(document.Name).InvokeVerb("プロパティ(&R)");
スポンサーリンク