2004年初頭頃の話だが今でも通用するかも。
サーバプロセスからJET以外でどうにかしたい場合、Excelは起動時に「ウィンドウが表示可能か」を調べるので、(たぶんサーバプロセスのオーナーの権限で)ログインしていないと表示対象のデスクトップが検出できないので起動しない(と言いながらJETでもダメかもしれない)。
直接プロセスを起動するんでなくても、COMでオブジェクトを取得しようとするとOLEサーバとしてExcelのプロセスが起動するので、同じようにログインが必要だと思う。
Excelを普段からよく使う人は大抵気付いていると思うが、ファイルを複数開かないように多重機動の制御を行うのだがファイル名だけをキーにして制御しているらしいので、違うディレクトリでも同じファイル名だとうまく起動しない。まあつまり、時間でファイル名を生成するとか時間+乱数で生成するとかしないといかんよと。
っていうかサーバ側でExcelファイルとか危険だ。そのファイルがセキュアかどうかわかんねえし。入力としてExcelファイルが望ましいケースがあるとは思えないし。一覧性が欲しいにしてもグリッドを使うアプリケーションを仕立てればいいじゃん。まあ最悪、クライアント側でExcelからXMLに変換してからゴニョるならいいかも。
それにしてもExcelがいいっていう人はExcelを使いこなしているんだろうか。
追記:使いこなす=メニューの配置で迷うことがなく、ショートカットキーで出来る操作はショートカットキーで行い、関数で迷うこともない、くらいか。まあマクロは要らんやろが。かれこれ10年以上表計算ソフトを使ってるけど、まだ空気になりきれてないっす。DOSのLotus123がよかったような記憶があるが、もう覚えてないな。
これだけ。テストもknown bugsの一部を除いて殆どグリーン。
Index: thread_pthread.ci =================================================================== --- thread_pthread.ci (revision 13787) +++ thread_pthread.ci (working copy) @@ -331,8 +331,13 @@ int priority = 0 - th->priority; int max, min; pthread_getschedparam(th->thread_id, &policy, &sp); +#ifdef _POSIX_PRIORITY_SCHEDULING max = sched_get_priority_max(policy); min = sched_get_priority_min(policy); +#else + max = 0; + min = 0; +#endif if (min < priority) { priority = max;
素晴らしい。
にしても疑問なのは、なんでリンカでこけるかだが、とりあえず調べる気なし。