Curl Global Community

Full Version: CurlでExcelを開く際に多重起動をしてしまう
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
こんばんわ
CurlからMicrosoftExcelを展開する方法について質問です。

下記プログラムでExcelを開くことには成功しているのですが、
Excelが多重起動されてしまい困っています。(Excelウィンドウも多数開かれます)
たとえば、リンクを押下すると下記プログラムが実行されると
タスクマネージャのプロセスに「Excel.exe」がひとつ起動されます。
押下する度にプロセスが起動されるため、PCの処理が重くなることを懸念しています。
最終的には、一つのプロセス(一つのExcelウィンドウ)内で複数のExcelが立ち上がると嬉しいのですが
別のプログラムでの起動、プログラムの追記等、何か方法は無いでしょうか。
皆さんのお知恵を拝借したいです。
宜しくお願い致します。
【サンプルプログラム】
{spawn-host-process
"C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE",
{StringArray "C:\\sample.xls"}
}
【環境】
CurlRTE : Curl8.0
OS : windows7
START を使うのではどうでしょう

Code:
{spawn-host-shell "START c:\test.xls"}
これでどうでしょうか
Code:
{spawn-host-shell "start C:\\sample.xls"}

C:\Documents and Settings のような、空白が含まれたパスにエクセルファイルがあると、
単純に Url.full-file-name を渡すだけではうまくいきません。

空白文字をエンコードする必要があると思うのですが、どうすればよいでしょうか?
ダブルクォートで囲めばいけるかなと思ったのですが、コマンドプロンプトが開くだけでうまくいかず・・・
と思ったら、START コマンドでは、ダブルクォートでパスを渡す場合は、「タイトル」が必要とのこと。

下記コードでいけました

Code:
{define-proc public {execute-excel excel-url:Url}:void
    {if-non-null {excel-url.resolve } then
        {spawn-host-shell
            "START " & " \"title\"    \"" & excel-url.full-filename &  "\"",
            suppress-console-window? = true
        }
    }
  }


これでどうでしょうか