DOBON.NET DOBON.NETプログラミング掲示板過去ログ

How to SETFOCUS to 起動したアプリケーション

環境/言語:[WIN2000 VB.NET2003]
分類:[.NET]

「外部アプリケーションを起動して、ウィンドウの位置とサイズを変更する」
http://dobon.net/vb/dotnet/process/movewindow.html
を参照して、ウィンドウの位置とサイズを変われます。

但し、既に起動したアプリケーションは、最前面にならないです。
ほかはなにか方法がありますか?(SETFOCUSの機能みたい)

よろしく。
■No4747に返信(johnさんの記事)
> 「外部アプリケーションを起動して、ウィンドウの位置とサイズを変更する」
> http://dobon.net/vb/dotnet/process/movewindow.html
> を参照して、ウィンドウの位置とサイズを変われます。
>
> 但し、既に起動したアプリケーションは、最前面にならないです。
> ほかはなにか方法がありますか?(SETFOCUSの機能みたい)
>
> よろしく。
>
johnさん、こんにちは
すいません、内容なしで送信してしまいましたm(__)m

えと、単にアクティブにしたいだけなら
SetForeGroundWindow

常に最前面に表示など、Zオーダーも変更したければ
SetWindowPos
を調べてみてください。
ちなみにSetWindowPosなら位置、サイズ変更もできるのでMoveWindowも必要なくなります。
■No4750に返信(ゆさんの記事)
> johnさん、こんにちは
> すいません、内容なしで送信してしまいましたm(__)m
>
> えと、単にアクティブにしたいだけなら
> SetForeGroundWindow
>
> 常に最前面に表示など、Zオーダーも変更したければ
> SetWindowPos
> を調べてみてください。
> ちなみにSetWindowPosなら位置、サイズ変更もできるのでMoveWindowも必要なくなります。



返事ありがとう。

いまは、いろいろやってみます。まだいけないです。
多分、SetWindowPosの書き方の問題です。

ソースは↓、


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
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOSIZE = &H1
Public Const SWP_SHOWWINDOW = &H100
Public Const HWND_TOPMOST = -1

Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem5.Click

Dim ps() As System.Diagnostics.Process=system.Diagnostics.Process.GetProcesses()
Dim p As System.Diagnostics.Process
For Each p In ps
If p.ProcessName = "KTtoroku" Then
SetWindowPos(???????, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)
Exit Sub
End If
Next

    Shell("C:\KTtoroku.exe", AppWinStyle.NormalFocus)

End Sub

パラメータhwndの書き方はわからないです。

> パラメータhwndの書き方はわからないです。
MoveWindowと同じで、ウィンドハンドルです。
?.MainWindowHandle
で、大丈夫かと思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/151winshow/winshow.html

↑を参照して、できました!

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板