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

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

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

キーボード操作に関する質問

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

■85535 / inTopicNo.1)  キーボード操作に関する質問
  
□投稿者/ たこ兵 (1回)-(2017/11/03(Fri) 21:00:38)

分類:[.NET 全般] 


OBSというキャプチャソフトでF9キーに録画開始のショートカットキーを割り当てています。

これをVB.NETを使って、操作したいと考えています。

キーボードの操作に関しては
https://dobon.net/vb/dotnet/vb6/sendkeys.html

SendKeys.Send("{F9}")

で行うことができるはずです。
しかし、これを実行してもうまくいきません。
どうもデフォルトの状態だとフォーム内でしかキーが有効になっていないようです。
https://dobon.net/vb/dotnet/form/keypreview.html

このページに他のフォームが受け取れるコードが書かれてあり、
試してみましたが、他のソフトウェアでは受け取ることができませんでした。

一体、どうすればうまくいきますか?

あと、ボタンを押す時間なども調整できるのでしょうか?

よろしくお願いいたします。





引用返信 編集キー/
■85536 / inTopicNo.2)  Re[1]: キーボード操作に関する質問
□投稿者/ Azulean (886回)-(2017/11/03(Fri) 21:20:38)
No85535 (たこ兵 さん) に返信
> しかし、これを実行してもうまくいきません。
> どうもデフォルトの状態だとフォーム内でしかキーが有効になっていないようです。

このコードを呼んだときに、アクティブなウィンドウ(フォーム)に対して送信すると捉えてください。
たとえば、あなたのプログラムの Button1 をクリックしたときのイベントにそのコードを書いている場合、あなたのプログラムがアクティブになっていますので、あなたのプログラムに送られます。

参照されているページに「補足」で書いてあることも調べてください。
https://dobon.net/vb/dotnet/vb6/sendkeys.html
引用返信 編集キー/
■85537 / inTopicNo.3)  Re[2]: キーボード操作に関する質問
□投稿者/ たこ兵 (2回)-(2017/11/03(Fri) 21:56:55)
No85536 (Azulean さん) に返信

ありがとうございます。
OBSに関してですが、
ウインドウがアクティブになっていなくとも
F9のショートカットキーを押せば動作するのですが
VBのコードの場合には、アクティブにしないといけないのでしょうか?
アクティブにせずとも動作させることはできないでしょうか?
 
引用返信 編集キー/
■85538 / inTopicNo.4)  Re[3]: キーボード操作に関する質問
□投稿者/ Azulean (887回)-(2017/11/03(Fri) 22:51:02)
2017/11/03(Fri) 22:53:10 編集(投稿者)

No85537 (たこ兵 さん) に返信
> OBSに関してですが、
> ウインドウがアクティブになっていなくとも
> F9のショートカットキーを押せば動作するのですが
> VBのコードの場合には、アクティブにしないといけないのでしょうか?
> アクティブにせずとも動作させることはできないでしょうか?

そのキャプチャソフトの実装と、あなたが書いているコードに依存する話なので、第三者にコメントは難しいかと。
いろいろと実験してなぜ期待通りにならないのかを探っていくことが必要となるでしょう。
引用返信 編集キー/
■85539 / inTopicNo.5)  Re[4]: キーボード操作に関する質問
□投稿者/ たこ兵 (4回)-(2017/11/03(Fri) 23:12:51)
No85538 (Azulean さん) に返信

すいません、言い忘れましたが、
以前、VBAで作った
Application.SendKeys "{F9 5}"

というコードだとうまく動作しました
VB.NETだとどうすれば良いですか?

http://hanatyan.sakura.ne.jp/patio/read.cgi?no=245

このページにあるAPIも使ってみましたが
うまくいきませんでした。
 
引用返信 編集キー/
■85541 / inTopicNo.6)  Re[5]: キーボード操作に関する質問
□投稿者/ たこ兵 (5回)-(2017/11/04(Sat) 09:57:23)


OBSのウインドウハンドルを取得しウインドウをアクティブ化してみましたが
なぜかうまくいきませんでした。
メモ帳へのキー入力ならうまくいくので、プログラム自体は間違っていないようなのですが・・・

VBAのコードだとできるのであれば
VB.NETでできないはずはないと思うのですが・・・
どなたかご教授下さい。
 
引用返信 編集キー/
■85546 / inTopicNo.7)  Re[6]: キーボード操作に関する質問
□投稿者/ たこ兵 (6回)-(2017/11/04(Sat) 15:28:53)
keybd_eventでうまくいきました。

keybd_eventと SendKeys.Sendは一体何が違うのでしょうか・・・???
 
引用返信 編集キー/
■85552 / inTopicNo.8)  Re[7]: キーボード操作に関する質問
□投稿者/ Azulean (888回)-(2017/11/05(Sun) 16:27:42)
No85546 (たこ兵 さん) に返信
> keybd_eventと SendKeys.Sendは一体何が違うのでしょうか・・・???

SendKeys.Send はデフォルトでフックプロシージャーを使ったキー入力の動作となっているようです。
keybd_event とは仕組みが違います。

下記のページの「メモ」にあるように、app.config に SendInput を使うように指示すれば、SendKeys でも動くかもしれませんね。
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.sendkeys.send%28v=vs.100%29.aspx
引用返信 編集キー/
■85573 / inTopicNo.9)  Re[8]: キーボード操作に関する質問
□投稿者/ たこ兵 (7回)-(2017/11/07(Tue) 09:40:53)


app.configの方は試していませんが
非常に勉強になりました。
ありがとうございます。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ