バックグラウンドで実行したい小さなチェッカーアプリを作成しています。特定のプロセスが実行されていることを確認する単純なタイマーがありますが、これを Alt-Tab スイッチャーから非表示にしたいので、タスクリストが可能ですそれも。Microsoft のコードに遭遇しましたが、それは 2003 年のものであり、最新バージョンの VB.Net では動作しなくなりました。次のエラーが表示されます。
OwnerhWnd = GetWindow(Me.hWnd, GW_OWNER)
私はそれをオンラインで調べ、人々が言ったことのいくつかに従いましたが、役に立ちませんでした. 多くの人が Me.Handle を使用して他の人に提案しましたが、これも機能しませんでした。同じエラーが発生し続けるだけです:
A first chance exception of type 'System.DllNotFoundException' occurred in Checkr.exe
提供されるコードは次のとおりです。
Public Class Form1
Declare Function ShowWindow Lib "User" (ByVal hWnd As Integer,
ByVal nCmdShow As Integer) As Integer
Declare Function GetWindow Lib "User" (ByVal hWnd As Integer,
ByVal wCmd As Integer) As Integer
Const SW_HIDE = 0
Const GW_OWNER = 4
Sub Form_Load ()
Dim OwnerhWnd As Integer
Dim ret As Integer
' Make sure the form is invisible:
form1.Visible = False
' Set interval for timer for 5 seconds, and make sure it is enabled:
timer1.Interval = 5000
timer1.Enabled = True
' Grab the background or owner window:
OwnerhWnd = GetWindow(Me.hWnd, GW_OWNER)
' Hide from task list:
ret = ShowWindow(OwnerhWnd, SW_HIDE)
End Sub
Sub Timer1_Timer ()
Dim ret As Integer
' Display a message box:
ret = MsgBox("Visible by Alt+Tab. Cancel to Quit", 1, "Invisible Form")
' If cancel clicked, end the program:
If ret = 2 Then
timer1.Enabled = False
Unload Me
End
End If
End Sub
元の Microsoft の記事は、こちらから参照できます。