
VB.NETでSetForegroundWindowでウインドウを最前面に出来ないため、AllowSetForegroundWindowを使用するようにしましたが、解決できません。
コードは大体次のようになっています。
Dim hProcess As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess()
AllowSetForegroundWindow(hProcess.Id)
Dim hWnd As IntPtr = FindWindow("XXX", "YYYYY")
SetForegroundWindow(hWnd)
環境は次のとおりです。
OS: Windows 7 Pro. 64bit SP1
VB.NET: 2010 Express
解決方法をご教示頂きたく、よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VB.NETにはAppActivateメソッドがあるので、[WIN32API]SetForegroundWindowを利用しないでも大丈夫だと思います。
それでも前面にすることが出来ない場合は、何か別の要素で前面にすることが出来ない理由があると思うので、公開されている情報だけでの解決は難しいと思います。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'電卓起動
Dim hProcessCalc As Diagnostics.Process = Process.Start("calc.exe")
'電卓がユーザー入力の待機状態まで待機
hProcessCalc.WaitForInputIdle()
'電卓を前面にする
Call AppActivate(hProcessCalc.Id)
'3秒待機
Call Threading.Thread.Sleep(3000)
'自身を前面にする
Dim hProcessOwn As Diagnostics.Process = Diagnostics.Process.GetCurrentProcess()
Call AppActivate(hProcessOwn.Id)
End Sub
この回答への補足
早速の回答ありがとうございます。
この問題のアプリケーションでIEを制御して表示させたウィンドウを最前面にしたいのです。
問題のウィンドウを起動しておいて、このウィンドウを起動する部分を削除したこれと同じコードによるアプリからは最前面に出来ています。
よろしくお願いします。
No.1
- 回答日時:
この回答への補足
早速の回答ありがとうございます。
重要な説明が欠落していたようです。
最前面にするのは、自身のフォームではなく別アプリケーションのウィンドウです。
よろしく」お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Process.Startで起動したアプリを最大化したいです。VB.NET
Visual Basic(VBA)
-
フォームの最前面が効かない
Visual Basic(VBA)
-
チェックボックスを操作できないようにしたいです VB.NET
Visual Basic(VBA)
-
-
4
非アクティブのウィンドウを最前面に呼び出したい。
C言語・C++・C#
-
5
(UWSC) 「#32770」の意味わかりますか?
その他(プログラミング・Web制作)
-
6
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
7
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
8
AppActivate関数について
Visual Basic(VBA)
-
9
VB初心者。小数点以下の表示でつまづいています(涙
Visual Basic(VBA)
-
10
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
11
他アプリケーション’(ウィンドウ)のハンドル取得方法
Visual Basic(VBA)
-
12
コンボボックスでドロップダウンリストにしたときに・・・・
Visual Basic(VBA)
-
13
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
14
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
15
フォームを最前面に表示したいです。
Visual Basic(VBA)
-
16
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
17
非アクティブな画面を操作する方法について
Visual Basic(VBA)
-
18
VB.NETでアクティブなformを知りたい
Visual Basic(VBA)
-
19
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
20
CloseとDisposeの違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
コマンドプロンプト実行後に画...
-
ODBCでMoveNextがうまく動作し...
-
(String args[])というメッソ...
-
JSPで<SELECT>の中にDBから持っ...
-
0歳児の指しゃぶりに関して
-
EXCEL VBAの構造体検索について
-
引数で日付を2つ与え、その間の...
-
StrGrdIOのSaveToFileメソッド...
-
CALLされていないメソッドを見...
-
DBunitの期待値についての質問...
-
オーバーロードの「あいまい」...
-
vbaエクセルマクロ RemoveDupli...
-
変数名の付け方
-
(vba)他のアプリケーションの右...
-
複数の変数を宣言する時、同時...
-
PHPExcel使用で2枚目のシートを...
-
vb.netでFAXを送信する方法
-
オブジェクトレベルとメタレベル
-
恋愛
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
boolean型のフィールドとゲッタ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
eclipse-Tomcatでのデバッグに...
-
CALLされていないメソッドを見...
-
FEM解析の読み方は?
-
エクセルVBAにおけるON TIMEメ...
-
Application.Wait の参照設定
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
drawStringで文字間隔の調整
おすすめ情報