DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
No35672 の記事
■35672
/ )
Re[1]: AppActiveが正常に機能しない。
□投稿者/ 魔界の仮面弁士
大御所(1589回)-(2025/04/10(Thu) 16:08:04)
■
No35671
に返信(日研迷琉さんの記事)
> ActiveFmName = IIf(IsNothing(ActiveForm.Name), "", ActiveForm.Name)
これについては
ActiveFmName = If(ActiveForm?.Name, "")
と書くべきかと。
IIf だと As Object になってしまいますので、Option Strict On との相性も悪いですよね。
> アプリケーションからカーソルが離れるとPCにもって入力項目にカーソルを移動しなければなりません。
「PCにもって」という動作が何を指しているのか、
ちょっとよくわからなかったのですが、ここでいう「カーソル」とは
マウスカーソルの物理的な位置ではなく、アクティブウィンドウに対する
入力位置のキャレットのことを指しているものと推察しました。
キーボードデバイスとして扱わるタイプのリーダーであれば、
RawInput API (WM_INPUT メッセージ + RegisterRawInputDevices)や
SharpDX.RawInput を使うことで、アプリケーションが前面に無く
非アクティブであった場合の入力も拾うことができます。
複数のキーボードデバイスがあった場合に、それぞれの入力を別々に拾うこともできます。
ただし、キー入力エミュレーションのリーダーの場合は使えない可能性があります。
https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=res&namber=35479&rev=&page=0&no=0
> 自身がアクティブでない場合に自身をアクティブにするロジックを考えたのですが
無線バーコードリーダによる入力が行われていなくても、
タイマーで強制的にアクティブ化しようとしていますか?
それはシステムの操作的に問題があるような…。
> タスクバーが点滅するだけでアクティブになってくれません。(VSのデバック起動では動作します。)
たとえば、何かキー入力を行っている最中にアクティブウィンドウを勝手に変更されたり、
ウィンドウを切り替えたばかりなのに、勝手に別のウィンドウに変更されたりすると
都合が悪いため、そういう時にはタスクバーを点滅させて通知する仕様になっています。
このあたりの事情は、下記で説明されています。
https://bit.ly/foregroundWindow
上記に書かれた、ウィンドウをフォアグラウンドに表示できる条件を満たしていれば
AppActivate で点滅することなく切り替わるかと思います。
なお上記 URL には一応、強制的にアクティブ化するためのコードも提示されています。
(過去記事のアーカイブなので、サンプルコードが崩れてしまっていますが…)
とはいえ上記のサンプルだけでも厳密には不十分で、さらにあらかじめ、
ForegroundLockTimeout を 0 にしておかなければならないケースもあります。
こちらは KB886217 で解説されています。
https://bit.ly/MSKB886217
なお、「SPI_GETFOREGROUNDLOCKTIMEOUT」を使うことで、
一時的にこのパラメーター(ForegroundLockTimeout)を変更することもできます。
以下蛇足。今となって不要な情報ですが。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=63230&KLOG=107
http://bbs.wankuma.com/index.cgi?mode=al2&namber=63230&page=20&KLOG=107
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
返信
削除キー/
編集
削除
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-