質問: それぞれ特定のプロファイルを持つmicrosoftoutlook 2010の複数のインスタンスを実行するにはどうすればよいですか? 2つのメールプロファイルがあります。1つのプロファイルには1つのexchange2010アカウントがあり、もう1つのプロファイルには1つのimapアカウントがあります。それぞれについてoutlookのインスタンスを開きたい。exchangeプロファイルに対してoutlook.exe /profile myexchangeprofileを実行し、imapプロファイルに対してoutlook.exe /profile myimapprofileを実行すると、それぞれmyexchangeprofileを持つoutlookの2つのインスタンスが取得されます。実際、最初にロードするプロファイルは、個別の実行で指定するプロファイルに関係なく、常にロードされるプロファイルです。
回答: extraoutlookはうまく機能するので、実際にはコマンドラインのインターフェイスを作成しました。現在、22のexchangeプロファイルを同時に開き、ローカルバックアップを保持するためにそれらのostファイルを更新するために使用しています。autoitでコンパイルされたコード https://www.autoitscript.com/site/autoit/ プログラムには4つのオプションがあります 単一のプロファイルを実行します(一度に単一のプロファイルを実行します) 自動開始を追加します(プロファイル、ユーザーを追加し、iniファイルに渡します) 自動起動を実行します(複数のoutlookインスタンスを連続して開きます) 自動クローズの実行(outlookのすべてのインスタンスを閉じます) コード:;************************************************************ #requireadmin #include <msgboxconstants.au3> #include <guiconstants.au3> #include <string.au3> #include <guiconstantsex.au3> #include <windowsconstants.au3> #include <misc.au3> global $font = 'verdana' global $outlook = 'c:\program files (x86)\microsoft office\office14\outlook.exe' ;office 2010 global $extraoutlook = @systemdir & "\extraoutlook.exe" global $process = "outlook.exe" global $inifile = "outlookprofiles.ini" global $radio[4] fileinstall("extraoutlook.exe",@systemdir & "\extraoutlook.exe",0) if not fileexists (@scriptdir & '\' & $inifile) then iniwrite($inifile, "start","count","0") iniwrite($inifile, "profile","1","") iniwrite($inifile, "user","1","") iniwrite($inifile, "pass","1","") else _start() endif _start() func _start() $winmain = guicreate('outlook', 180,215 ) guisetfont(7,300,'' ,$font) $input1 = guictrlcreateinput('profile',5,15,165,25) $input2 = guictrlcreateinput('user',5,45,165,25) $input3 = guictrlcreateinput('password',5,75,165,25) $radio[0] = guictrlcreateradio("", 5, 105, 15, 15) $radio[1] = guictrlcreateradio("", 5, 125, 15, 15) $radio[2] = guictrlcreateradio("", 5, 145, 15, 15) $radio[3] = guictrlcreateradio("", 5, 165, 15, 15) $label = guictrlcreatelabel("start outlook profile", 25, 105,150,25); $label = guictrlcreatelabel("add to autostart", 25, 125,150,25) $label = guictrlcreatelabel("run autostart", 25, 145,150,25) $label = guictrlcreatelabel("run autoclose", 25, 165,150,25) $buttonok = guictrlcreatebutton('ok', 5,190,80,20) $buttoncancel = guictrlcreatebutton('cancel', 90,190,80,20) guictrlsetstate($radio[0],$gui_checked) guictrlsetstate($input2,$gui_disable) guictrlsetstate($input3,$gui_disable) guisetstate(@sw_show) local $count = iniread($inifile,"start","count","") local $a = 1 local $msg = guigetmsg() while $a = 1 ;infinite loop switch guigetmsg() case $buttonok if _ischecked($radio[1]) then iniwrite ($inifile,"profile",$count +1,guictrlread($input1)) iniwrite ($inifile,"user",$count +1,guictrlread($input2)) iniwrite ($inifile,"pass",$count +1,guictrlread($input3)) iniwrite ($inifile,"start","count",$count +1) msgbox(64,"new profile added","profile name: " & guictrlread($input1) & @crlf & "user: " & guictrlread($input2) & @crlf & "password: " & guictrlread($input3),10) else if _ischecked($radio[0]) then if guictrlread($input1) <> "profile" then run(@comspec & " /c " & $extraoutlook & " " & '"' & $outlook & '"' & " " & "/profile " & $input1, "", @sw_hide) else msgbox(64,"","please enter a valid profile name.",5) endif else if _ischecked($radio[2]) then _autostart() else if _ischecked($radio[3]) then _autoclose() endif endif endif endif case $radio[0] guictrlsetstate($input1,$gui_enable) guictrlsetstate($input2,$gui_disable) guictrlsetstate($input3,$gui_disable) case $radio[1] guictrlsetstate($input1,$gui_enable) guictrlsetstate($input2,$gui_enable) guictrlsetstate($input3,$gui_enable) case $radio[2] guictrlsetstate($input1,$gui_disable) guictrlsetstate($input2,$gui_disable) guictrlsetstate($input3,$gui_disable) case $radio[3] guictrlsetstate($input1,$gui_disable) guictrlsetstate($input2,$gui_disable) guictrlsetstate($input3,$gui_disable) case $buttoncancel ; exit the loop. exit endswitch wend endfunc func _ischecked($idcontrolid) return bitand(guictrlread($idcontrolid), $gui_checked) = $gui_checked endfunc func _autostart() local $a = 1 while $a > 0 if iniread($inifile,"profile",$a,"") <> "" then run(@comspec & " /c " & $extraoutlook & " " & '"' & $outlook & '"' & " " & "/profile " & iniread($inifile,"profile",$a,""), "", @sw_hide) sleep (15000) ;msgbox(0,"",iniread($inifile,"profile",$a,""),3) send("{down}") send("{down}") send(iniread($inifile,"user",$a,"")) send("{tab}") send(iniread($inifile,"pass",$a,""),1) send("{tab}") send("{tab}") send("{enter}") sleep (25000) ; $a = $a +1 else exit endif wend endfunc func _autoclose() $a = 1 do if processexists($process) then processclose($process) else exit endif sleep(1000) $a = $a +1 until $a = 64 endfunc ;************************************************************