
こんにちは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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSP+Servletでのページングの常識
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
JavaScriptにおいてコンピュー...
-
「Excel VBA」 Webクエリ マク...
-
getParameter と getAttribut...
-
PHP8でWarning:Undefined varia...
-
VBAでステータスバーの情報取得...
-
ListViewで複数選択された項目...
-
郵便番号検索APIにてget Elemen...
-
Excel VBA でログインしてい...
-
モニタの物理解像度を得る(Win3...
-
RegQueryValueExwでエラー
-
既存のアプリのsyslistview32か...
-
JAVAでWindowsのアカウント名を...
-
COMポート 名前を取得する方法
-
Spreadの選択行の取得について
-
VBA Shapesの座標からセル位置...
-
Google Apps Script で、Web上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
PHP8でWarning:Undefined varia...
-
count(*)で取得した値をJAVAの...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
JSP+Servletでのページングの常識
-
データ数をカウントしたいのですが
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
getParameter と getAttribut...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
郵便番号検索APIにてget Elemen...
-
DataGridView 複数選択で行番...
-
URIでのページの移動について
-
Spreadの選択行の取得について
-
指定のURLのタイトルを取得...
-
EXCELのリストボックスを選択し...
-
ListViewで複数選択された項目...
おすすめ情報