Last Update: 2002/05/17
2001年11月
2930311234
567891011
12131415161718
19202122232425
262728293012

2001年11月01日

会社からの更新てすと。

うまくいくといいなぁ。

・・・って、こんだけの内容でUPするのもなんなんで。

買った。

探偵レボリューション 3巻 森本里菜

風の大陸 第二十一部 地の書 竹河聖

・・・続き・・・

てすと成功。

これで、更新できない言訳がひとつ減ったぞ(滝汗)

AURIC。

2001/10/23の話の続き。

登録更新の手続きも、解除の手続きもしてない状態なんだけど。 まだ、接続はできてるみたい。 ここを見ても、 連絡をしなかった場合どうなるかが書かれていないのがちょっと怖いかな。

まぁ、とりあえずほっぽってみよう。

2001年11月06日

VBSearchTool。

ってのが、VB Magazine2000年10月号で紹介されていた。 ・・・のを、ココの掲示板でお馴染み*1のOratorさんに某所で教えてもらったのだが。

さすがに、サンプルプログラムなだけあって、実用としてはびみょ〜に使いにくいのね。 ってことで、またまた自作することにしたんだけど*2

いやぁ、VBのアドインって初めて作るけど、なかなか面白いわ。 とりあえずTips的なことがわかったら、ここに随時書いていくことにでもしようか。

とゆーかいきなり壁にぶち当たった。 IDEのキーボードイベントやらマウスイベントやらって通知する方法がないのね(T-T) だから、このサンプル使いにくくなっちゃったのか。。。

なんとか回避手段はないものだろーか。


*1: とゆーか私の行くところことごとくで常連さん
*2: こーやってどんどこやりかけのプロジェクトが増えていくのね(大汗)

2001年11月07日

買った。

結構前に買ったのに書き忘れてたよ。

グイン・サーガ 81巻 魔界の刻印 栗本薫

ついにグインとレムスが再会した。 初期の頃からレムスファンだったのでヤンダルが乗り移ってる状態はショックだったんだけど、 レムス自身の自我は(まだ)崩壊してないって知って結構嬉しかったり。 ・・・まぁ、性格はずいぶん変わったけどね。

さて、次はグインとナリスかな。。。

2001年11月08日

戯言。

昨日の日記を更新し忘れてた。 アップしとこう。

・・・って、今日書いちゃうと昨日の日記がトップページにこないんだよなぁ。。。

2001年11月09日

あ。

2001/11/07の日記を更新してなかったのって、グイン新刊の副題がわからなかったからだったのね。

グイン・サーガ 81巻 ○○ 栗本薫

とか書かれてるぢゃん。

う〜む。あまりにもお間抜けなんで直しておいたけど。。。(しくしく)

2001年11月11日

初めて。

私と同じりぶちゃん*1を車内で使ってる人を見た。 ちょっと感動。

・・・ってことを、その別りぶのすぐ横で書いてみたり(^^;;


*1: Libretto L1/L2。どっちかまでは判別できず(あたりまえ)

2001年11月13日

VB Tips。

VBでアドインを作成するとき、カレントプロシージャの位置を求める方法。

Private mVBInstance As VBIDE.VBE '有効な値が入ってると仮定

Private Sub GetCurrentProcedurePosition(ByRef StartLine As Long, ByRef EndLine As Long)
  Dim CurrentLine   As Long
  Dim ProcName      As String
  Dim ProcKind      As vbext_ProcKind
  Dim ProcLineCount As Long

  With mVBInstance.ActiveCodePane
    ' カーソル位置を取得
    ' ※ StartLine以外はいらないので 0 を渡す
    Call .GetSelection(CurrentLine, 0, 0, 0)

    ' 指定行に定義されているプロシージャ名を取得
    ' ※ ProcOfLineの第二引数にはプロシージャの種類が入ってくる
    ProcName = .CodeModule.ProcOfLine(CurrentLine, ProcKind)

    ' プロシージャの先頭行を取得
    StartLine = .CodeModule.ProcStartLine(ProcName, ProcKind)

    ' プロシージャの行数を取得
    ProcLineCount = .CodeModule.ProcCountLines(ProcName, ProcKind)

    ' プロシージャの最終行を求める
    EndLine = StartLine + ProcLineCount - 1
  End With
End Sub

2001年11月14日

VB Tips。

昨日に引き続いてアドイン関連。 ちょっと反則ワザに近いが、アドインを使用しているIDEのウィンドウハンドルを取得する方法。

Private mVBInstance As VBIDE.VBE '有効な値が入ってると仮定

Private Function GetIDEhWnd() As Long
  GetIDEhWnd = FindWindow("wndclass_desked_gsk", mVBInstance.MainWindow.Caption)
End Function

"wndclass_desked_gsk"は私の環境*1で SPY++を使って調べた結果なので、他環境では違う値になるかも?


*1: Win2K+VB6SP5 and Win95SE+VB6SPなし

2001年11月15日

カウンタ。

なんか、落ちてるね。 どーしよ(T-T)

また、新しいの探すかなぁ。。。

VB Tips。

便利(だと思う)ショートカットキーを並べてみた。 幾つかメジャーなのもあるけど、意外と知られていないんじゃないかなってのを挙げたつもり。

[F7]

コードウィンドウを表示する。

[Shift]+[F7]

オブジェクトウィンドウを表示する。

[Ctrl]+[R]

プロジェクトウィンドウを表示する。 上記二つと組み合わせると、キーボード操作のみで任意のウィンドウが開けるようになる。

[Shift]+[F2]

現在のカーソル位置にある変数・定数・関数等の定義位置へ移動する。

[Ctrl]+[Shift]+[F2]

元の位置へ移動する。 上の[Shift]+[F2]と組み合わせると、「関数選択→定義位置へ→元へ戻る」のような動作が簡単にできる。

[Ctrl]+[F2]

オブジェクトボックス*1へ移動する。

[Ctrl]+[F3]

現在のカーソル位置にある単語で検索をする。


*1: コードウィンドウの上にあるコントロールの一覧コンボボックスのこと

2001年11月16日

祝!カウンタ復活。

1.5日ほど落ちてたみたいだけど、今日見てみたら無事復活してた。 その間のログが取れていないのがショックだけど、ま、しょーがないでしょ。

それはそうと、カウンタ復活後、統計ページの動きがおかしいのが気になるな。。。 *1

・・・とか書いたけど、もう直ってるみたいね。よかったよかった。

Oracle Tips。

現在オープン中のカーソルの情報は V$OPEN_CURSOR で見ることができる。

SQL> SELECT Count(*) FROM V$OPEN_CURSOR;

*1: って書いたところで、ココ見てる人には関係ないんだけどね(^^;;

2001年11月17日

今日は一日寝てた。

・・・じ、充実した良い一日・・・、だったなぁ(虚勢)

2001年11月18日

買った。

X 17巻 CLAMP

・・・あれ?過去にっき検索しんたんだけど、16巻を買ってる記録が無い。 買い逃してるんだろーか。。。 部屋の本棚にも15巻までしか並んでないし。

八雲立つ 16巻 樹なつみ

2001/06/05にも書いてるんだけど、やっぱり絵が下手になってる気がする。 しかも、一箇所だけじゃなく全編通してず〜っと。 画風が変わったとかゆーんじゃなく、デッサンがむちゃくちゃになってるんだよね。

どーしたんだろ、ホントに。

VBSearchTool。

2001/11/06に、

IDEのキーボードイベントやらマウスイベントやらって通知する方法がないのね(T-T) なんとか回避手段はないものだろーか。

って書いて以来、実際の検索機能はほっぽってこの件についていろいろ試してみている。

最初は

アドインってActiveX DLLでしょ?(たぶん)
ってことは同じプロセス内で動くんだよね(あやふや)
ってことはローカルフックのフックプロシージャ書いても大丈夫だよね(自信ゼロ)

なんて、妄想200%な考えを基にローカルフックの手法で試してたんだけど、やり方がまずいのか前提がまずいのか *1、 うまくいかず玉砕。

仕方がないんで、VCでDLL作って*2フックプロシージャ置いてシステムフックするよーにしてみたんだけど。 今度は、ちゃんとフックされてキーイベントが発生♪ま、とーぜんといえばとーぜんなんだろーけど、ちょっと感動。

・・・したのもつかの間、VBIDE.VBEなオブジェクトに対していろいろやろうとしたらオートメーションエラーが出てしまった。 このオブジェクトたちに触らなければいいんだけど、それじゃあんまり意味無いしねぇ。 惜しいところまでは来てるんだけど、これ以上は私ではどーしようもないっぽい。

誰か解決手段おせーて(懇願)

VBってゆーかVCってゆーかWindows Programingな疑問。

システムフック時のフックプロシージャ内でSendMessageするのってやっぱり危険なのかなぁ。。。 今作ってるシステムフック用DLLがこんな感じのソースなんだけど。 上にも書いたオートメーションエラーの問題ってこのDLL側に原因があるのかな〜なんて思ってみちゃったりしてるのだ。

// MomoHook.cpp

#include <windows.h>
#include "MomoHook.h"

#pragma data_seg(".MomoHook")
  HHOOK m_hHook = NULL;
  HWND  m_hWnd  = NULL;
  UINT  m_msg   = NULL;
#pragma data_seg()

static HINSTANCE m_hInst = NULL;

int WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, PVOID pvReserved)
{
  m_hInst = hInst;
  return TRUE;
}

BOOL CALLBACK MomoSetWindowsHook(HWND hwnd, UINT msg, int idHook, DWORD dwThreadId)
{
  //すでにフックされてれば失敗
  if(m_hHook != NULL)
    return FALSE;

  //ハンドルを登録
  m_hWnd = hwnd;
  m_msg = msg;

  //フック開始
  m_hHook = ::SetWindowsHookEx(idHook, (HOOKPROC)CallWndProc, m_hInst, dwThreadId);

  //フックハンドルが取得できていなければ失敗
  if(!m_hHook)
    return FALSE;

  return TRUE;
}

BOOL CALLBACK MomoUnhookWindowsHook(void)
{
  BOOL rtn = FALSE;

  if(m_hHook != NULL){
    rtn = ::UnhookWindowsHookEx(m_hHook);
    m_hHook = NULL;
  }

  return rtn;
}

LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
  if(nCode < 0)
    return ::CallNextHookEx(m_hHook, nCode, wParam, lParam);

  return ::SendMessage(m_hWnd, m_msg, wParam, lParam);
}

*1: フックされてなかったっぽいんで、前提がまずかったんだろーな。
*2: 初体験♪

2001年11月19日

買った。

東京クレイジーパラダイス 18巻 仲村佳樹

なんか刊行ペース早いな〜とか感じてたんだけど。 過去にっき見たらそうでもないのね。 普通に3ヶ月毎に出てるみたい。

とりあえず、延っっ々と続いてたメガフロートでの戦いが終わって、 コメディ色が復活してきたんでうれしいかな。

2001年11月21日

VBのコメント。

新しいプロジェクトを始めるたびに、フォーマットが変わってしまう。 どーにかならんもんかな。。。

ももそふと。

ちょっと作りかけてた、VBのアドインなんだけど、 この問題が解決しないんで嫌気がさして止めてしまった(^^;; ・・・ので、ず〜っとやりたかったももめもの作り直しを今更ながら始めてみた。

とは言っても、C++で作るのは断念しちゃった(^^;; やっぱり慣れない言語だと思うように作れないね。 ・・・って毛嫌いしてると、いつまでたってもスキルアップしないのはわかってるんだけど(T-T)

ま、なんにせよ、例によって例のごとくVBでサクっと作ってしまうことにした。 いちおーメモ機能の充実を図ろうかと思ってる。

さて、今度こそ公開できるレベルまで作りこめるといいなぁ。。。

2001年11月26日

買った。

魔法陣グルグル 14巻 衛藤ヒロユキ

う〜ん。まだ続いてたんだねぇ。ほそぼそと。

んで、ひさしぶりに全巻読み直してみたんだけど、全っっ然ストーリー進んでないんだね。実は。 このままだとあと5〜10年は連載しないと終わらなそう。 それまでガンガンが廃刊せずに残ってるんだろーか?(- -)

AMAKUSA1637 2巻 赤石路代

赤石せんせ自ら「ずっとあたためてた作品」とゆーだけあって、赤石作品では一番のお気に入りになりそうな気配。 ま、エンディングしだいかな。。。

DESERT STORM 赤石路代

「サイレント・アイ」と「永遠かもしれない」の番外編を収録した短編集。

・・・とか書きつつ、一番気に入ってるのは上記二つではない「いつか黄昏に出会う」だったり。

2001年11月27日

終わらない。。。

帰りの電車の中で、溜まったメールの整理をしていたのだが。 振り分け条件の追加して、再振り分けをしたらいつまでたっても終わりゃしない。 最寄の駅まで帰ってきたのにりぶれっと閉じられないので、しかたなくホームに残ってこーやってにっき書いて時間つぶしてる。

あ〜あ。早く終わらないかなぁ。。。

・・・。

・・・・・・。

・・・・・・・・・。

ん〜。まだ終わらない。ネタ尽きちゃったよ。 えっと、えっと・・・何書こう・・・。

あ、そうそ。 今作ってる新ももめも――あ、名称変更は止めたの。メモ機能が充実する(予定)だからね。――は、 とりあえず版をVer.2.00として暫定公開しようかなーって思ってる。 多分、来月頭くらいになるかな。 設定画面が付いてない&iniファイルの設定をほとんど無視しちゃう版だろーけどね。

・・・って書いてるうちに終わったみたいだから、これ以上自分の首を絞めるよーなことを書くのは止めとこう・・・(- -)

2001年11月30日

買った。

イマドキ! 全5巻 渡瀬遊宇

作中にパソコンがらみのネタが出てくると、どーしてもダメ出ししてしまう。 こーゆーのも職業病ってゆーのかしら。

ほーむ。 | いぬ。 | さる。 | きじ。 || せんげつ。 | らいげつ。
ももたろ<info@momo-lab.net>