性格いい人が優勝

こんばんわ。。また投稿しますebifuraiです。

今回、はこのページ
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

のウィンドウハンドル、キャプションの取得について教えて頂きたいのです。ここのページのソースコードを貼り付けてVB6で走らせたのですが、vbnullstringのところで

コンパイルエラー:プロシージャの外では無効です。

と出ます。果たしてVB6でのNull文字はどう記述したらいいのでしょうか?またこのプログラムでキャプションの一部をヒットさせるという事はできるのでしょうか?

まだVB初心者なので意味が良くわかりません。勉強しなきゃと思うのですが、WindowsAPIがらみでいい書籍とかないでしょうか?

A 回答 (3件)

コードを拝見しましたが...


vbnullstringが、どうのこうのと言う前に、下記のコードがプロシージャ外となっているでしょ?
だからエラーになっているんですよ?
ってことなんで、処理したいイベント処理内に、コードを記述してください。
Dim hwindow As Long

hwindow = FindWindow(vbNullString, "無題 - メモ帳")
If hwindow <> 0 Then
hwindow = FindWindowEx(hwindow, 0, "edit", vbNullString)
End If
If hwindow = 0 Then MsgBox "エラー"
MsgBox hwindow

この回答への補足

コマンドボタンを付けてそこに配置したら今度は、

GetOS()

のところで何か引っ掛かってしまいました。色々と調べてみた結果
・GetOS()の何かが足らない
・ソースコードが1999年(10年前以上)のものである

という事がわかりました。つまりソースコードとしては古過ぎるという事です。これは一体どう解釈すればいいのでしょうか?あきらめて他のソースを参考にした方がいいのか、APIについてもっと勉強した方がいいのか、あるいはGetOSのソースコードを探してきたほうが良いのか
ご教授お願いします。

普通のアプリケーションには興味がなくてAPIを叩いて使う様な気がします。私のVisualBasicの用途は

補足日時:2008/12/03 03:47
    • good
    • 0

ご質問の中のURLを丹念に熟読しましょう


このページの前のセクションに 関数GetOSの説明があるようですが ・・・

VB6の入門書を手元に準備してこれをマスターしてからの課題のように思います
    • good
    • 0
この回答へのお礼

ありがとうございます。まだ右も左もわからないebifurai55ですが、VB練習中です。何かあったら頼ります^^

ではでは

お礼日時:2009/01/25 17:58

どのようなコードをお書きなのでしょう?



エラーの出ているコードを公開しても支障の無い範囲で投稿してみましょう
そのエラーが起きる状態への必要最小手順もご提示ください

> プロシージャの外 ・・・
とあるので DeclareなどのAPI宣言部に記述されているのでしょうか?

この回答への補足

>> プロシージャの外 ・・・
>とあるので DeclareなどのAPI宣言部に記述されているのでしょうか?


はい、そうですDeclareにFunctionと共に記述されております。
コードを挙げると字数エラーになりそうなので、ソースコードあげました
http://www.interq.or.jp/dragon/crw/GetCaptionNam …

ちなみにこのソースコードは消される可能性もあります

※必要最低手順。

とりあえずソースコードをコピーしてプログラムをテストコンパイルすると発生します。
僕が望む事は、

・タイトルバーのキャプションでウィンドウをアクティブにする。
・キャプションの右にあるアプリケーション名だけでヒットする。
・クラスでヒットしてもいい
・その返り血でキーボード操作をエミュレートする。
・できれば外部プログラムも実行する様にする

最後のは蛇足ですが、それができれば大体用は事足ります。
精進が足らないのかもしれませんが、よろしくおねがいします。

補足日時:2008/12/03 01:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています