title image


Smiley Danke an alle
Es funktz. Danke an alle die mir hier in den letzten 2 Tagen geholfen haben. Ich habe es jetzt so weit. Zwar erst mal nur im groben und noch recht statisch, aber das was mir wichtig war funktz. jetzt. Super, super. DANKE !!!







Option Explicit





' API zum ermitteln der Anwendung die gecheckt werden soll

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long



' *****************************************************************************************************************

' taken from the www

' http://support.microsoft.com/default.aspx?kbid=231844



' SUMMARY

' In many situations you may want to know if an application is blocked. For example when you automate

' Microsoft Internet Explorer, you want to know whether Internet Explorer stops responding.

'

' This article describes how to detect whether an automated instance of Internet Explorer stops responding.

' Although the code is written for Internet Explorer and Visual Basic, you can also use the following

' instructions for other applications.

'

' The code uses the Win32 API SendMessageTimeout function to determine whether the target application responds

' and then the API call TerminateProcess to kill the hung instance of Internet Explorer.

'

' MORE Information

' There is no clear definition of an application hanging. Typically the application is "busy" with some processing.

' However from a user's perspective, the application has stopped responding.

'

' The idea is to periodically detect if the application is still responding in a timer and depending on application

' logic, the target application can be killed or other necessary action can be taken. The following steps demonstrate

' this. The code assumes that Internet Explorer is installed on the target machine



'API Constants

Const SMTO_BLOCK = &H1

Const SMTO_ABORTIFHUNG = &H2

Const WM_NULL = &H0

Const WM_CLOSE = &H10

Const PROCESS_ALL_ACCESS = &H1F0FFF



'API functions

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Private Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long



Private modObjIE As Object

Private modlngWndIE As Long

' *****************************************************************************************************************





Dim lg_AppNr As Long 'Application Number

Dim lngReturnValue As Long 'Return Value von SendMessageTimeout

Dim lngResult As Long 'Result Value von SendMessageTimeout



Private Sub Timer1_Timer()

    

    lg_AppNr = FindWindow(vbNullString, "NetSend")

    lngReturnValue = SendMessageTimeout(lg_AppNr, WM_NULL, 0&, 0&, SMTO_ABORTIFHUNG And SMTO_BLOCK, 1000, lngResult)

    

    If lngReturnValue Then

        Image1.Visible = False

    Else

        Image1.Visible = True

    End If



    











End Sub





Code eingefügt mit Syntaxhighlighter 2.1




 



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: