![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちはVB学習を始めて2週間になりました。
Webの記事などを参考にしていますがバージョンによって記述が変わって苦戦しています。
今回ご質問したい内容です。
ボタンを押すとメモ帳が起動されているか調べてそのウィンドウタイトルを得る
ウィンドウタイトルで検索してハンドルを取得してそのままそのハンドルで逆に
ウィンドウタイトルを得ています(無意味な処理ですが学習用という事で)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Integer, ByVal lpString As String, ByVal nMaxCount As Integer) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ECHandle As Integer
Dim Titlename As String
Titlename = vbNullString
ECHandle = FindWindow(vbNullString, "無題 - メモ帳")
GetWindowText(ECHandle, Titlename, 255)
Label5.Text = Titlename
If ECHandle = 0 Then
Label4.Text = "取得できない"
Else
Label4.Text = "取得出来た" & ECHandle & Titlename
End If
End Sub
結果はというと Titlename が空っぽのままでタイトルが取得できません
どのような原因が考えられますでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
VB.NETではなく旧世代VBのサンプルを使っているからです。
(Declareが出鱈目)http://www.pinvoke.net/search.aspx?search=GetWin …
> VB学習を始めて2週間
であれば、Win APIではなく.NETの勉強をしましょう。
System.Diagnostics.Process クラスとか。
ご回答有難うございます
(Declareが出鱈)の一文のおかげで解決しました。
>であれば、Win APIではなく.NETの勉強をしましょう。
ごもっとも
しかしながらこれが今出されている課題なのでご質問させていただきました。
なお、以下のページを参考にしました
http://akademeia.info/index.php?VB.NET%2F%A5%C6% …
じぶんの英語スキルは酷過ぎるので教えていただいた所有名どころみたいですが
さっぱり読めませんでしたm(_ _)m
No.2
- 回答日時:
コードの書き方に色々問題はありますが、投稿されたコードをいかして取得するなら
Titlename = vbNullString
の部分を
Titlename = New String(" "c, 255)
に変更すれば、取得することができますが、Win32 API 関数の宣言方法や
ハンドルの取得の仕方等色々問題があるので、さらに勉強された方がいいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
VB.NETで DataRow()を利用して...
-
データ数をカウントしたいのですが
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
JavaScriptでWindowsログオンID...
-
JSP+Servletでのページングの常識
-
利用者側のMACアドレスを取得し...
-
Flexgridで選択行の列の値を取...
-
JFreeChartの折れ線グラフの太...
-
コンボボックス表示文字列を取...
-
asp.netでtextboxの値を取得
-
JavaScriptにおいてコンピュー...
-
Struts2 <s:select>タグの値取...
-
getParameter と getAttribut...
-
IFRAME内のURLを取得したです。
-
EXCELのリストボックスを選択し...
-
ExcelでNTPサーバーから時刻を...
-
エクセルVBAで複数選択できるよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
データ数をカウントしたいのですが
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
ListView 項目の選択/選択解除...
-
Flexgridで選択行の列の値を取...
-
getParameter と getAttribut...
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
JavaScriptでWindowsログオンID...
-
時間を分に変換するプログラム
-
エクセルVBAで複数選択できるよ...
-
Spreadの選択行の取得について
-
JavaScriptにおいてコンピュー...
-
コンボボックス表示文字列を取...
-
VBA リストボックス内の値を複...
-
利用者側のMACアドレスを取得し...
-
「Excel VBA」 Webクエリ マク...
-
Yahoo! JAPANのID取得について
おすすめ情報