WIA を使用してブラウザーからスキャナーを操作する C# で記述された ActiveX コントロールがあります。ブラウザ ウィンドウの下に WIA CommonDialog が表示されることを除いて、すべて正常に動作します。ブラウザの上に表示するにはどうすればよいですか?
wiaDialog = new WIA.CommonDialog();
wiaImage = wiaDialog.ShowAcquireImage(WiaDeviceType.ScannerDeviceType, WiaImageIntent.UnspecifiedIntent, WiaImageBias.MaximizeQuality, wiaFormatJPEG, false, false, false);
[編集]
私を正しい軌道に乗せてくれた Noseratio に感謝します。ダイアログをポップアップする前にタイマーを介して呼び出される BringWindowToTop を使用するという提案は、まったく機能しません。代わりに使用する関数は SetForegroundWindow です。コードは次のとおりです (スキャン ダイアログを開く前に System.Timer.Timer から呼び出されます)。
public static void scanDialogToTop(Object caller, EventArgs theArgs) {
scanner.theTimer.Stop();
foreach (Process p in Process.GetProcesses()) {
if (p.MainWindowTitle.StartsWith("Scan using")) {
SetForegroundWindow(p.MainWindowHandle);
break;
}
}
}
より完全な議論については、この記事を参照してください。