掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SetForegroundWindow でアクティブにならない場合には? (ID:111747)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えっと…質問する側に(汗) API の SetForegroundWindow がどうにも有効でない時の解決方法を どなたかご存知ないでしょうか?。症状が再現する最小のコード… とか思ったんですけど…いまいち原因が分からないので再現しなかったら ゴメンナサイ。ボタン押下2回目でアクティブにならないと思います。 …なんかボタン押下がまずいのかなぁ…ってどうしようもないし… 下のコードではエクセル使ってますが、複数の Form を利用した プログラムで Show しても Hide しても何も変わらないというので 困ってます。.NET ならプロパティに TopMost があるのでまだなんとか …で API の SetWindowPos で TopMost 設定…前面には出てくるん ですが、やっぱりアクティブにならない。苦肉の策として Public Sub SetForegroundApp(ByVal HandleX As Long) SetWindowPos HandleX, conHwndTopmost, 0, 0, 0, 0, conSwpNoSize + conSwpNoMove SendKeys "%{TAB}", True SetWindowPos HandleX, conHwndNoTopmost, 0, 0, 0, 0, conSwpNoSize + conSwpNoMove End Sub …とかしてるんですが…よい方法がありましたら御教え下さい。 '///////////////////////////////////////////////////////////////////////////////////////// [VB6.0(SP5) Win2000pro(SP4)] Option Explicit Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long) As Long Private mXLApp As Excel.Application Private Sub Command1_Click() ' ウィンドウをアクティブに設定 wResult = SetForegroundWindow(mXLApp.hWnd) ' DoEvents wResult = SetForegroundWindow(Me.hWnd) End Sub Private Sub Form_Load() Set mXLApp = CreateObject("Excel.Application") mXLApp.Workbooks.Add mXLApp.Visible = True Command1_Click End Sub Private Sub Form_Unload(Cancel As Integer) mXLApp.Quit Set mXLApp = Nothing End Sub '///////////////////////////////////////////////////////////////////////////////////////// '参考 'Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, _ ' ByVal hWndInsertAfter As Long, _ ' ByVal x As Long, ByVal y As Long, _ ' ByVal cx As Long, ByVal cy As Long, _ ' ByVal wFlags As Long _ ' ) As Long 'Const conHwndTopmost = -1 'Const conHwndNoTopmost = -2 'Const conSwpNoSize = &H1 'Const conSwpNoMove = &H2
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.