「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:3
昨日:0
総数:1225
現在:6


MacroによるUserProfileの変更

ページOpenOffice.org FAQの登録ページ
投稿者new_OOo3
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-06-06 18:39:28 (日)
OS
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

お世話になります。

立て続けの質問で恐縮です。
下図に示しますUser Profileを以下のmacroにて変更したいと考えております。

00userprofile_option.png
************[ Macro Code ]********************
Sub test_UserProfileData
	'Look at file <<OOo-Profile/3/user/registry/data>> /org/openoffice/UserProfile.xcu, XML-node "Data":
	Const oNodePath$ = "/org.openoffice.UserProfile/Data"
	On Error Goto oBad
	'Read UserProfile
		oNode = readUserProfile(oNodePath$)
		oSnval = oNode.getByName("sn")
		oGnval = oNode.getByName("givenname")
		oIval = oNode.getByName("initials")
			oAns = msgbox("Current User Profiles are following; " & Chr$(10) & _
						"LastName => " & oGnval & Chr$(10) & _
						"FirstName => " & oSnval & Chr$(10) & _
						"Initial => " & oIval & Chr$(10) & _
						"Do you want to modify the user profiles really ?", 4, "[ Current User Profile ]")
			If oAns=6 then
				oNode2 = modifyUserProfile(oNodePath$)
					oNode2.setPropertyValue("sn","Macro")
					oNode2.setPropertyValue("givenname","new_OOo3")
					oNode2.setPropertyValue("initials","oo")
				'Confirm User Profile
					oNode = readUserProfile(oNodePath$)
						oSnval = oNode.getByName("sn")
						oGnval = oNode.getByName("givenname")
						oIval = oNode.getByName("initials")
					msgbox("LastName => " & oGnval & Chr$(10) & _
						"FirstName => " & oSnval & Chr$(10) & _
						"Initial => " & oIval, 0, "[ User Profile ]")
			else
				Exit Sub
			End If
			Exit  Sub
	oBad: 
			mErr = Error
			eline = Erl
			msgbox("Line : " & eline & Chr$(10) & mErr & Chr$(10) &" : i = " & i, 0,"Error Message" )
End Sub
'[ Function1 ]
Function readUserProfile(oNodePath$)
	Dim oConfigProvider, oNode, args(0) As new com.sun.star.beans.PropertyValue
  		oConfigProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider")		 'ReadOnly
  			args(0).Name = "nodepath"
  			args(0).Value = oNodePath
  		readUserProfile =  oConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", args())	
End Function
'[ Function2 ]
Function modifyUserProfile(sNodePath$)		' Not to be Changed function name
	Dim aConfigProvider, oNode, args(0) As new com.sun.star.beans.PropertyValue
  		aConfigProvider = createUnoService("com.sun.star.configuration.AdministrationProvider")		'modify
  		args(0).Name = "nodepath"
  		args(0).Value = sNodePath
  		modifyUserProfile = aConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", args())	'modify
End Function
*****************************************************************~

しかしながら、上記macroを実行したところ、Errorは生じないのですがUser Profileが変更されません。
つきましてはMacroにてUser Profileを変更する方法をご教示頂けます様お願いします。


OOoForumのサンプル

M.Kamataki (2010-06-06 22:13:35 (日))

以下のページのサンプルが参考になりそうです。

How to access or change the user's profile
http://www.oooforum.org/forum/viewtopic.phtml?t=21107

ChangeUserProfile() の oConfigData_UserProfile.c = "Narnia" が、Country欄の変更のようですね。

簡単に記述すると

ike@九州 (2010-06-07 12:03:43 (月))

Dim aNodePath(0) as new com.sun.star.beans.PropertyValue
oConProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider") 
aNodePath(0).Name = "nodepath" 
aNodePath(0).Value = "org.openoffice.UserProfile/Data"
oContent = oConProvider.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationUpdateAccess", aNodePath()) 
'会社名 oContent.o 
'イニシャル oContent.initials
'姓
oContent.givenname = "ike"
'名
oContent.sn = "@九州"
oContent.commitChanges()

要は commitChanges() 、以前何処かで はにゃ?さん が指摘されてました。
サンプルで保持してます おほほほ

Re: 簡単に記述すると

M.Kamataki (2010-06-07 14:25:03 (月))

>要は commitChanges() 、以前何処かで はにゃ?さん が指摘されてました。

faq/5/106「Hiddenドキュメントを閉じた後に開くドキュメントが縮小Windowになる」ですね。こちらも 〜.xcu ファイルの書き換えに伴う処理でした。

解決しました。ありがとうございます。

new_OOo3 (2010-06-07 18:15:34 (月))

M.Kamataki 様、ike@九州 様

ご回答ありがとうございます。
ご回答頂いた通りに修正した結果下図の様にUser Profileを変更することができました。

02userprofile_modify1.png
02userprofile_modify2.png
お名前:
題名:


添付ファイル: file02userprofile_modify2.png 689件 [詳細] file02userprofile_modify1.png 685件 [詳細] file00userprofile_option.png 695件 [詳細]