mirrorman - 画面上でocx登録 のソース抜粋
前回のソース抜粋。
おきまり3点セット
ドロップされたかを拾います
ドロップされていればレジストリ削除
regsvr32.exeは管理者権限で実行されないと0x80040200というエラーになるので、
ShellExecuteで "runas" を付けておくと実行時にユーザ確認が行われます。
問い合わせ。「はい」のボタン以外は終了します。
システムフォルダと各ファイルを取得します。
コピーして、regsvr32.exeを実行します。
mirroManの画面ではRunメソッドでxdoc2txt登録.jsの終了を待ち合わせ、
おきまり3点セット
wsh = new ActiveXObject("WScript.Shell");
ssh = new ActiveXObject("Shell.Application");
sfs = new ActiveXObject("Scripting.FileSystemObject");
ドロップされたかを拾います
arg = WScript.Arguments;
ドロップされていればレジストリ削除
if(arg.length)Vistaの場合、
WScript.Quit(
ssh.ShellExecute("regsvr32.exe"," /u xdoc2txt.ocx","","runas"));
regsvr32.exeは管理者権限で実行されないと0x80040200というエラーになるので、
ShellExecuteで "runas" を付けておくと実行時にユーザ確認が行われます。
問い合わせ。「はい」のボタン以外は終了します。
if(6 != wsh.popup(
"xdoc2txtをレジストリに登録しますか?\n\n"+
"(レジストリから削除したい場合、"+ WScript.ScriptFullName +
"にxdoc2txt.ocxをドラッグドロップしてください)",0,WScript.ScriptName,36))
WScript.Quit();
システムフォルダと各ファイルを取得します。
sy32 = ssh.NameSpace(37);
xdoc = ssh.NameSpace(
sfs.GetParentFolderName(
WScript.ScriptFullName)).ParseName("xdoc2txt.ocx");
zlib = ssh.NameSpace(
sfs.GetParentFolderName(
WScript.ScriptFullName)).ParseName("zlib.dll");
if(!zlib) WScript.Quit(WScript.Echo("zlib.dllファイルがありません"));
コピーして、regsvr32.exeを実行します。
sy32.CopyHere(xdoc);
sy32.CopyHere(zlib);
wsh.CurrentDirectory = ssh.NameSpace(37).Self.Path;
ssh.ShellExecute("regsvr32.exe","xdoc2txt.ocx","","runas");
mirroManの画面ではRunメソッドでxdoc2txt登録.jsの終了を待ち合わせ、
wsh.Run(".\\ap\\d2txt130r2\\OCX\\xdoc2txt登録.js",10,true);その後reloadItmLst()で
return reloadItmLst(1);
return location.reload(true);しています。