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

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

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

Re[4]: キーコード送信


(過去ログ 23 を表示中)

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

■10240 / inTopicNo.1)  キーコード送信
  
□投稿者/ zin (1回)-(2007/11/14(Wed) 14:55:43)

分類:[VB.NET/VB2005] 

SendMessageで書き直したいのですが、どのように書き直せばよいのか教えてください。
(VB2005です)↓

'キーコード送信
Dim DownUp As Integer = 0
Dim Down As Integer = 1
Dim Up As Integer = 2
Private Sub KBD(ByVal KEY_CODE As Byte, ByVal 状態 As Integer, ByVal ms As Integer)
Sleep(ms)
If 状態 = 1 Then
Call keybd_event(KEY_CODE, 0, 0, 0)
ElseIf 状態 = 2 Then
Call keybd_event(KEY_CODE, 0, &H2, 0)
ElseIf 状態 = 0 Then
Call keybd_event(KEY_CODE, 0, 0, 0)
Call keybd_event(KEY_CODE, 0, &H2, 0)
Else
End If
End Sub
引用返信 編集キー/
■10265 / inTopicNo.2)  Re[1]: キーコード送信
□投稿者/ カンタービレ (48回)-(2007/11/14(Wed) 22:13:40)
わざわざSendMessageにする理由が分かりませんケド・・・?
元々API使ってらっしゃるので、細かいとこは抜きマス。

基本はkeybd_eventの呼んでいるところを置き換えでしょうか。
SendMessage(hWnd, msg, wParam, lParam)
hWnd : アクティブなコントロール(ウィンドウ)のhWnd(Handle)を渡す。
msg : WM_KEYDOWN = &H0100
: WM_KEYUP = &H0101
wParam : 仮想キーコード
lParam : キーデータ(0でもいいかも)

.NETならSystem.Windows.Forms.Sendkeysじゃダメなんでしょうか。
引用返信 編集キー/
■10301 / inTopicNo.3)  Re[2]: キーコード送信
□投稿者/ zin (2回)-(2007/11/15(Thu) 10:43:48)
No10265 (カンタービレ さん) に返信

返信ありがとうございます。
先ほど置き換えてみたのですが、動きませんでした。
初心者なので、置き換え方が間違っていたかもしれません。
上記を完全に置き換えると、どんな感じになるのでしょうか?

お恥ずかしいのですが、アドバイスお願いします。
引用返信 編集キー/
■10314 / inTopicNo.4)  Re[3]: キーコード送信
□投稿者/ カンタービレ (54回)-(2007/11/15(Thu) 14:45:19)
> 先ほど置き換えてみたのですが、動きませんでした。
> 初心者なので、置き換え方が間違っていたかもしれません。
> 上記を完全に置き換えると、どんな感じになるのでしょうか?
> 
完全って・・・今の内容で完全なんて無理デス。
元々したいコト、なんでしょうか?
元々どういうキーコードがどこに送信される前提のプログラムなんでしょうか?

そして今回もどう置き換えたか、読んでも分かりませんよネ?
どう動かなかったのか、エラー出てないのか・・・。

書き込まれた内容だけで推測するにはあまりに乏しいデスよ。
そもそもSendMessageに置き換えること自体がいいのかも分かりません。
なんでSendMessageじゃないといけないのかも理由を明確にしましょう。

引用返信 編集キー/
■10322 / inTopicNo.5)  Re[3]: キーコード送信
□投稿者/ とっちゃん (216回)-(2007/11/15(Thu) 17:12:57)
とっちゃん さんの Web サイト
No10301 (zin さん) に返信
> 上記を完全に置き換えると、どんな感じになるのでしょうか?
>
keybd_event ってAPIのですよね?
であれば、置き換えは不可能というか代替手段そのものがありません。

keybd_event API は、キーボード上のキーを押したということを
ソフトウェア的にエミュレーションするAPIです。
そのため、どのキー(KEY_CODEに当たる部分)を押した、離した
ということを実際にキーボードを押す代わりに機械的に行うようにする
というAPIです。

.NET Framework には類似の機能として、System.Windows.Forms.SendKeys という
クラスのSendメソッドで代用することができますが、
残念ながら、このクラスには、キーを押すだけ、キーを離すだけという
仕組みが用意されていません。

そのため、現状のコードを別のAPIなどを使って完全に置き換えることは不可能となります。

ようするに、何をしたいのかが明確になっていないとどうにもならんということですw

引用返信 編集キー/
■10339 / inTopicNo.6)  Re[4]: キーコード送信
□投稿者/ ほーく (3回)-(2007/11/15(Thu) 20:37:09)
一応・・・
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200711/07110025.txt
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -