こんにちは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ランキング
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
VBA:小数点以下の数字を取得で...
-
ListView 項目の選択/選択解除...
-
データ数をカウントしたいのですが
-
VBAでActiveDirectoryのユーザ...
-
EXCELのリストボックスを選択し...
-
VB2010 ウィンドウタイ...
-
既存のアプリのsyslistview32か...
-
NTPサーバから時刻を取得する
-
エクセルVBAで範囲内での位置取...
-
コンボボックス表示文字列を取...
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
GetLongPathName関数について
-
SJIS日本語ファイル名をEUC-JP...
-
IPアドレスの取得
-
エクセルVBAで複数選択できるよ...
-
ASP(vbscript)におけるクライア...
-
like演算子内に変数って使えな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
ListView 項目の選択/選択解除...
-
データ数をカウントしたいのですが
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
Flexgridで選択行の列の値を取...
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
getParameter と getAttribut...
-
JSP+Servletでのページングの常識
-
JavaScriptでWindowsログオンID...
-
利用者側のMACアドレスを取得し...
-
Spreadの選択行の取得について
-
Excel VBA でログインしてい...
-
コンボボックス表示文字列を取...
-
C言語におけるコンピュータ名・...
-
「Excel VBA」 Webクエリ マク...
-
VBScriptで数値にコンマを付け...
-
エクセルVBAで複数選択できるよ...
おすすめ情報