Home of site/JavaScript Macro[General]

Macroの杜(JavaScript編)

< 戻る 【 General 】

GSys-)[Calc]Login UserName
【Picture】実行結果

JavaScriptマクロでは、java.lang.System クラスを用いて、
ログインユーザ名を取得する事ができます。

参考サイト
SE学院 / Java / システムプロパティ

//Login User Name(1)
importClass(Packages.java.lang.System);
importClass(Packages.javax.swing.JOptionPane);
try{
	prop = System.getProperty("user.name");
	oDisp = prop
}catch(e){
	//Error Handling
	errorname = e.name;
	errormsg = e.message;
	oDisp= errorname + "\n" + errormsg;
}finally{
	JOptionPane.showMessageDialog(null, oDisp);
	System.gc();
}
一方、Javaクラスではなく、

	com.sun.star.util.PathSubstitutionサービス

を利用する方法は以下です。

//Login User Name(2)
importClass(Packages.javax.swing.JOptionPane);
importClass(Packages.java.lang.System);

importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.util.PathSubstitution);
importClass(Packages.com.sun.star.util.XStringSubstitution);

try{
	ctx = XSCRIPTCONTEXT.getComponentContext();

	// create an UNO service object
	smgr = ctx.getServiceManager();
	sdh = smgr.createInstanceWithContext("com.sun.star.util.PathSubstitution", ctx);
	xUnoSrv = UnoRuntime.queryInterface(XStringSubstitution, sdh);
	oUserUrl = xUnoSrv.substituteVariables("$(username)", true);
	
	oDisp = oUserUrl;
}catch(e){
	//Error Handling
	errorname = e.name;
	errormsg = e.message;
	oDisp= errorname + "\n" + errormsg;
}finally{
	JOptionPane.showMessageDialog(null, oDisp);
	sdh = null
	xUnoSrv = null
	System.gc();
}

inserted by FC2 system