C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: array.indexofメソッドについて


(過去ログ 78 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■46309 / inTopicNo.1)  array.indexofメソッドについて
  
□投稿者/ たぬき (54回)-(2010/01/29(Fri) 20:52:13)

分類:[.NET 全般] 

いつもお世話になっております、たぬきです。

今回もどうしても分からない事があり、質問させてもらいます。

内容は、IndexOfメソッドにより、格納された文字と同じ文字を検索し、そのインデックス値を取得というものなのですが、戻り値は-1(一致文字なし)しか返ってきません。↓にコードを書きます。
 Dim h As Integer = GetForegroundWindow()
 GetWindowText(h, w, Len(w))
  '配列winの中に同じタイトルがあるか比較
  If win.Contains(w) = False Then
   t = (win.IndexOf(w))
   Debug.Print(t)
 End If

配列winには、別に取得していたウィンドウタイトルが格納されています。wを、"notepad"などにすると、"notepade"がwinに格納されていれば、インデックス値はちゃんと取得できるのですが・・・なにかIndexOfメソッドの使い方がまずいのでしょうか?!
教えて下さい。。。
引用返信 編集キー/
■46311 / inTopicNo.2)  Re[1]: array.indexofメソッドについて
□投稿者/ ぽぴ王子 (484回)-(2010/01/29(Fri) 21:01:08)
ぽぴ王子 さんの Web サイト
No46309 (たぬき さん) に返信
> いつもお世話になっております、たぬきです。
> 
> 今回もどうしても分からない事があり、質問させてもらいます。
> 
> 内容は、IndexOfメソッドにより、格納された文字と同じ文字を検索し、そのインデックス値を取得というものなのですが、戻り値は-1(一致文字なし)しか返ってきません。↓にコードを書きます。
>  Dim h As Integer = GetForegroundWindow()
>  GetWindowText(h, w, Len(w))
>   '配列winの中に同じタイトルがあるか比較
>   If win.Contains(w) = False Then
>    t = (win.IndexOf(w))
>    Debug.Print(t)
>  End If
> 
> 配列winには、別に取得していたウィンドウタイトルが格納されています。wを、"notepad"などにすると、"notepade"がwinに格納されていれば、インデックス値はちゃんと取得できるのですが・・・なにかIndexOfメソッドの使い方がまずいのでしょうか?!
> 教えて下さい。。。

・w と win の型は何ですか?
・win.Contains(w) だと、見つからない場合に False を返すのではないかと思いますが
 見つからない場合は IndexOf(w) も -1 しか返ってこないように思えます
・ソースコードを掲載する場合は「図表モード」を選択した方がいいですね

引用返信 編集キー/
■46312 / inTopicNo.3)  Re[1]: array.indexofメソッドについて
□投稿者/ .SHO (1176回)-(2010/01/29(Fri) 21:03:29)
No46309 (たぬき さん) に返信

> wを、"notepad"などにすると、"notepade"がwinに格納されていれば…

だったら、wに何が入っているか、winに何が入っているかを確認すれば
解決しそうですが。

引用返信 編集キー/
■46316 / inTopicNo.4)  Re[1]: array.indexofメソッドについて
□投稿者/ よねKEN (436回)-(2010/01/29(Fri) 21:23:56)
2010/01/29(Fri) 21:27:14 編集(投稿者)

GetWindowTextメソッドの呼び出しの直後に

w = w.TrimEnd(vbNullChar)

と記述するとひょっとするとうまく行くかもしれません。

これで解決するなら、Array.IndexOfメソッドの使い方の問題ではなく、
Windows API(だろうと思われる)のGetWindowTextの使い方の問題だと思いますので、
参考までのWindows APIのヘルプのURLを貼っておきます。

GetWindowText関数
http://msdn.microsoft.com/ja-jp/library/cc364815.aspx

ところで、以下の質問で出てくるコードに似てますね。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=46229

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -