|
h-tom です。
>どんな動作イメージなのかちょっと判らないですが、差し支えなかったら公開し
>ていただけると幸いです。
マクロ生成版vbsです。テンポラリフォルダにマクロを生成します。
wscript.exe(or cscript.exe) アカウント名 フォルダ名
と指定してください。フォルダ名はなくても可能。
//-------------------------
Option Explicit
Dim WshArgs
Dim WshShell
Dim WshFso
Dim Acount
Dim Folder
Dim MacroFile
Dim MacroName
Dim HidemaruMail
Acount = ""
Folder = ""
'引数の取得 1個:アカウントのみ 2個:アカウント、フォルダ 3個以上は無視
Set WshArgs = WScript.Arguments
if WshArgs.Count = 1 then
Acount = WshArgs(0)
elseif WshArgs.Count > 1 then
Acount = WshArgs(0)
folder = WshArgs(1)
end if
Set WshArgs = Nothing
'フォルダ名はマクロにする都合上、"\"-->"\\"に変換
if instr(folder, "\\") = 0 and instr(folder, "\") > 0 then
folder = Replace(folder, "\", "\\")
end if
'秀丸メールの場所を取得
Set Wshshell = WScript.CreateObject("WScript.Shell")
HidemaruMail = WshShell.RegRead("HKCU\Software\Hidemaruo\TuruKame\Config\Tur
uKameDir") & "TuruKame.exe"
'アカウント設定があれば、マクロを作成し起動。
if Acount <> "" then
'テンポラリにマクロを作成
MacroName = WshShell.ExpandEnvironmentStrings("%TMP%") & "\OpenFolder.mac"
Set WshFso = CreateObject("Scripting.FileSystemObject")
Set MacroFile = WshFso.OpenTextFile(MacroName, 2, True)
MacroFile.WriteLine "loaddll ""tkinfo.dll"";"
MacroFile.WriteLine "#n = dllfunc(""SelectFolder"", """ & Acount & """,
""" & folder & """);"
MacroFile.WriteLine "endmacro;"
MacroFile.Close
Set MacroFile = Nothing
Set WshFso = Nothing
'秀丸メール起動
Wshshell.run HidemaruMail & " /x " & MacroName
end if
Set Wshshell = Nothing
WScript.Quit
//-------------------------
iniファイルを作るってのは、各種エスケープ(WSH、秀丸マクロ)が面倒
だからです。フォルダの指定で、"\\"に変換しなくてすむし。
ファイルの出力部を
MacroName = WshShell.ExpandEnvironmentStrings("%TMP%") & "\OpenFolder.ini"
MacroFile.WriteLine "[history]"
MacroFile.WriteLine "CurrentAccount=" & Acount
MacroFile.WriteLine "CurrentFolder=" & folder
にして、以下のマクロを実行するようにすればいいと思いますが、実行して
ないのでうまくいくかは不明。
//起動時に指定するマクロ
loaddll "tkinfo.dll";
$ini = getenv("TMP") + "\\OpenFolder.ini";
if(existfile($ini)){
$CurrentFolder = getinistr($ini, "history", "CurrentFolder");
$CurrentAccount = getinistr($ini, "history", "CurrentAccount");
if($CurrentAccount != ""){
#n = dllfunc("SelectFolder", $CurrentAccount, $CurrentFolder);
}
}
//-------------------------
|
|