more...
トップ
最終更新日:2006.01.08
アカウント毎のショートカット保存/復元方法のヒント

このコンテンツは、1台のPCで複数アカウントを利用している場合に、アカウントごとに保存されないスキルのショートカットを、どうにかしてアカウントごとに保存してしまおうというコンテンツです。
少しPCにくわしい人向け…ですが…
※この方法は、レジストリを操作するため、わりと危険です!
※以下の説明を読んでわからない方はやらないでください。
※設定は自己責任でお願いします!
※わたしはWindows2000でしか確認してませんが、XPでもいけそうな気がします…自己責任でっ!
※あえて詳しく書いていない部分もあります。お察しください。
※現時点では動きますが、将来的にずっと動くとは限りません。
※しつこいですがすべて自己責任でっ!
Windowsのショートカットと、スキルのショートカットで言葉がややこしくなるので、このページでは、Windowsのショートカットを「ショートカット」、ラグナロクのスキルのショートカットを「スキルショートカット」と記述します。
それでは、どうやって保存/復元をするか、大まかに説明します。
0. まずデスクトップに(デスクトップじゃなくてもいいですが)、アカウントごとに起動用のバッチファイルを作ります。
1. アカウントごとのショートカットからクライアントを起動します
2. その際に、レジストリにスキルショートカットを書き込みます。
3. ゲームします(笑)
4. クライアントを終了したら、レジストリにあるスキルショートカットの情報を待避させます。
5. 1.にもどる
…と、これだけです。
ラグナロクのスキルショートカットの情報は、レジストリに保存されています。
具体的には、[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem]以下に保存されてます。
上の4番でやっていることは、レジストリエディタで[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem]以下を[書き出し]するような感じです。
同じく2番でやるのは、[取り込み]になります。
今回は、起動するたびにレジストリエディタを操作するわけにもいかないので、バッチファイルでレジストリエディタをコマンドラインから使ってみようと思います。
レジストリエディタのコマンドラインオプション
取り込み
regedit /s ファイル名
書き出し
regedit /e ファイル名 ツリー名
というわけで、バッチファイルの基本的な流れは、
regedit /s hoge.reg ←レジストリに書き込む
"Ragnarok Online.lnk" ←クライアントを起動する
pause ←先に進まないようにここでストップさせておく(ゲームを終了したら先に進む)
regedit /e hoge.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem"
↑レジストリをファイルに書き込む
となります。
以上で簡単な(わかりづらい)説明は終了です。
ここからは、それを応用した(?)ものです。
 
もうちょっと便利に

スキルショートカットとは直接関係ないんですが、[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok]にあるIDというキーに値を入れておくと、keepにチェックを入れていれば毎回IDを入力する手間も省くことができます。
IDは毎回書き出す必要はないので、レジストリエディタで[書き出し]して作ります。
IDを書き出した例
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok]
"ID"="mizukiXXXXRO"
そして、先ほどのバッチファイルを少し修正します。
regedit /s hoge.id.reg ←IDも書き込む
regedit /s hoge.reg
"Ragnarok Online.lnk"
pause
regedit /e hoge.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem"
2アカウントぐらいなら、上の5行のバッチファイルを2個書けばいいんですが、複数アカウントになってくると、毎回同じモノを書くのもバカらしくなってきます^^;
そこで共通できる部分は共通して書いてみます。
set account=%1 ←環境変数に引数を代入する
regedit /s %account%.id.reg
regedit /s %account%.reg
"Ragnarok Online.lnk"
pause
regedit /e %account%.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem"
このバッチファイルをたとえば_sc_save.batとすると、mizuki1111RO.batの中身は、
@echo off ←echo offしなくてもいいけど^^;
_sc_save.bat 1111 ←引数をレジストリファイル名にする
となり、1111.id.regにIDを書き出したモノ、1111.regにスキルショートカットを書き出したモノを保存しておけばよいことになります。
それっぽくなってきましたが、このままだとデスクトップにファイルがいっぱいできて、大変なことになってしまいますので、フォルダをつくってその中に置いてみます。
そして、バッチファイルのショートカットをデスクトップに作って、アイコンをラグナロクの逆毛君に変更すると、よりいっそうそれらしく見えます(笑)
以上で、アカウント毎のショートカット保存/復元方法のヒントは終了です。
「なんでファイルをダウンロードさせてくれないんだ!」と思う方もいるかもしれませんが、PCごとに設定が違うかもしれないのと、レジストリをいじっているので、なにかあったときに責任をもてないため、こういうカタチで紹介させて頂くことにしました。
複数アカウントをお持ちでスキルショートカットが保存されなくてお悩みの方に、少しでも役に立てば幸いです。
 
おまけ

最後に、おまけでわたしが普段使ってるバッチファイルを紹介します。
わたしはデスクトップにsc_dataというフォルダをつくり、さらにその下にsc_backupを作っています。
ショートカットに変更があったときだけ、sc_backup以下にファイルを移動してから書き出すという処理を入れています。

_sc_save.bat
@echo off
set account=%1
if %1.==. GOTO ERROR
echo アカウントIDを設定します。
regedit /s %account%.id.reg
echo ショートカット情報を設定します。
regedit /s %account%.reg
echo クライアントを起動します。
"Ragnarok Online.lnk"
echo クライアントを終了させてから、続行してください。
pause
echo:
:EXPORT
set sc_temp=%DATE:~2%
set sc_date=%sc_temp:/=%
set sc_temp=%TIME:~0,5%
set sc_temp=%sc_temp::=%
set sc_time=%sc_temp: =0%
echo ショートカット情報をエクスポートします。
regedit /e %account%.reg.temp "HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem"
echo ファイルを比較しています。
fc %account%.reg %account%.reg.temp > NUL
IF ERRORLEVEL 1 GOTO DIFF
del %account%.reg.temp
echo ショートカット情報に変更はありません。
GOTO END
:DIFF
echo ショートカット情報に変更が検出されました。
echo ショートカット情報を保存します。
echo 保存しない場合はCtrl+Cで終了してください。
pause
echo:
move %account%.reg sc_backup\%account%.reg.%sc_date%_%sc_time%
move %account%.reg.temp %account%.reg
echo ショートカット情報の保存が完了しました。
GOTO END
:ERROR
echo パラメータが指定されていません。
GOTO END
:END
pause

mizuki1111RO.bat(別アカウントも数字部分が違うだけ)
@echo off
_sc_save.bat 1111

1111.id.reg(別アカウントも数字部分が違うだけ)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok]
"ID"="mizuki1111RO"

1111.reg(別アカウントも数字部分が違うだけ)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem]

[HKEY_LOCAL_MACHINE\SOFTWARE\Gravity Soft\Ragnarok\ShortcutItem\thor]
"SITEM021"="1361"
"S_SKILL_USE_LEVEL021"=dword:00000000
"SITEM121"="1504"
"S_SKILL_USE_LEVEL121"=dword:00000000
"SITEM221"="517"
"S_SKILL_USE_LEVEL221"=dword:00000000
"SITEM321"="506"
"S_SKILL_USE_LEVEL321"=dword:00000000
"SITEM421"="##MC_CARTREVOLUTION"
"S_SKILL_USE_LEVEL421"=dword:00000000
"SITEM521"="##BS_HAMMERFALL"
"S_SKILL_USE_LEVEL521"=dword:00000000
"SITEM621"="##BS_ADRENALINE"
"S_SKILL_USE_LEVEL621"=dword:00000005
"SITEM721"="##MC_LOUD"
"S_SKILL_USE_LEVEL721"=dword:00000000
"SITEM821"="601"
(自動生成のため以下略)
[▲このページの先頭へ]
WPA v0.2 Copyright (C) 2004 mizuki. All rights reserved.