2007/01/18

Recent entries from same category

  1. おそろしや、おそろしや...(JavaでByRef?) Hatena
  2. BOOLはBooleanにしてboolにあらず Hatena

はてな
なんか寝つけないので、もひとつ愚痴...
最近、お仕事でJava使ってます。

といってもJavaの画面上にはActiveX(Ocx)が張りついてます。しかもそのActiveXって.NETで出来てるんです。どんなシステムなのかと...苦笑
まぁそれが言いたいのでなく、COMやATLをJavaアプリで動かすので、Javaのメインスレッドを食われない用に、STAやATLで作ったOcxは別スレッド起こして実行してます。
なんかこういう場合にも、メインスレッドを汚ない(出来ればCOMなんか関与しない)ようなコードが、簡単に書けないものか...

非常にメンドイです。

そうそう今日職場で休憩時間にMSから出てるPowerShellっていう管理者用(?)シェルを試してみました。
感想としては、まさしく...「コマンドプロンプトに.NETという毛を生やした」というのが相応しく(いや、変な意味でなく)、私にとってはPowerとまでは行きませんが、違う物としてみれば使える代物なのかもしれません。

ただ、exeもパス内のものが実行出来るのですが、「startコマンド」が使えない。私にはダメージが大きすぎる。
私は仕事中はだいたい70〜80%をコマンドプロンプトの中で生活しますから、たまにエクスプローラを開くときなんかは、「メニューから...」なんて事はしないんですよね。「cd」してエクスプローラが開きたくなったら
C:\foo\bar\> start .
ってやるんです。
この「startコマンド」がないと、まるで周りからはPCド素人に見えてしまうんですよ。私...

マイクロソフトさん、私を助ける意味でもPowerShellに「startコマンド」を付けて下され...


マイクロソフトで思い出しました...
今日IronPythonを試しました。以前に少し触った事はあったのですが、MSエバンジェリストのブログで、「IronPythonを使ったMSAgentのサンプル」を見つけたので、試してみたんです。
ほう...確かに動く。


...で?
これってpythonのwin32com使ってもおんなじやん...
まぁアセンブリ参照みてモジュールベースのコーディングが出来るのかもしれないんですが、pythonって呼出フック出来るから、結局似たようなコードになるんじゃ...
ちなみにExcelを操作するpythonのコードは...
import win32com.client
xlApp=win32com.client.Dispatch("Excel.Application")
xlApp.Visible=1
xlApp.WorkBooks.Add()
sheet=xlApp.Sheets(1)
sheet.Cells(1, 1).Value="Hello Python"
こんな感じ?じゃぁ、「.NET」である必要って何?

あと余談ですが、MSAgentってSTAでしか動かないんすね。おまけにイベントシンク(IAgentNotifySink/IAgentNotifySinkEx)ってInvoke呼出してくれないし...泣
汎用ディスパッチシンクを呼ばせるには、IDispatchを継承してQueryInterfaceで嘘を返してあげればいいの?
#GetTypeInfoCountもGetTypeInfoも呼ばれない、IAgentNotifySinkを継承してないインスタンスをRegisterメソッドに渡すとエラー出るし...


さぁいい加減に寝ないと、死ぬぞ...

WriteBacks

お久しぶり~。無事そうで(苦笑)なにより。

> なんかこういう場合にも、メインスレッドを汚ない
プロセス分けてDCOMとか…

> 「startコマンド」がないと、まるで周りからはPCド素人
startが無いと死ぬのは私も一緒です。いっそstart.exeを書いたほうが良いかも。

> こんな感じ?じゃぁ、「.NET」である必要って何?
.NETである意味はタダ一つ。他の.NETで書かれたコードがシームレスに利用できるんですよ。

Posted by KoRoN at 2007/01/18 (Thu) 10:58:42

Re: お久しぶり~

> お久しぶり~。無事そうで(苦笑)なにより。
無事っすが、自由時間は確実になくなりました。

>> なんかこういう場合にも、メインスレッドを汚ない
>プロセス分けてDCOMとか…
う〜ん、なんといいますか...
ようは、選べないのです。
このソフト上で動くCOMを...www

>> 「startコマンド」がないと、まるで周りからはPCド素人
> startが無いと死ぬのは私も一緒です。いっそstart.exeを書いたほうが良いかも。
ShellExecute一発なんかなぁ...

>> こんな感じ?じゃぁ、「.NET」である必要って何?
>.NETである意味はタダ一つ。他の.NETで書かれたコードがシームレスに利用できるんですよ。
そうだろうねぇ。特にWindows.Formsとか...。
デモ選びに失敗したと言う所?苦笑

Posted by mattn at 2007/01/21 (Sun) 01:39:47

TrackBack ping me at
Post a comment

writeback message: Ready to post a comment.