vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
An die Profis !! 
Autor: luet
Datum: 23.02.02 15:32

Hallo ,
möchte mit folgendem Code Verzeichnisse auf Änderung überwachen, aber
wenn ich das Programm über Command5 beende bekomme ich die Fehlermeldung
" VB6.exe verursachte einen Fehler " .
Ich suche den Fehler seit Stunden ? Hilfe

Source : Form

Private Sub Command2_Click()
Command5.Enabled = True
Threadbeenden = True
Command2.Enabled = False
End Sub


Private Sub Command5_Click()
Unload Me
End Sub

Private Sub Dir1_Change()
Command2.Enabled = True
Command5.Enabled = False
While ThreadIsRunning
Threadbeenden = True
Wend
hWatchTh = CreateThread(ByVal 0&, 0, AddressOf ThreadExecute, ByVal 0&, CREATE_SUSPENDED, WatchThID)
SetThreadPriority hWatchTh, THREAD_PRIORITY_NORMAL
Threadbeenden = False
File1.Path = Dir1.Path
watchpath = Dir1.Path
ResumeThread hWatchTh
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub Form_Load()
ThreadIsRunning = False
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Not Command5.Enabled Then Cancel = 1
End Sub


Source : Modul

Public Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4
Public Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2
Public Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1
Public Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10
Public Const FILE_NOTIFY_CHANGE_SECURITY = &H100
Public Const FILE_NOTIFY_CHANGE_SIZE = &H8

Public Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function FindNextChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
Public Declare Function FindCloseChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Public Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long
Public Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long
Public Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
Public Declare Sub ExitThread Lib "kernel32" (ByVal dwExitCode As Long)
Public Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long

Public Const CREATE_SUSPENDED = &H4
Public Const THREAD_PRIORITY_IDLE = -15
Public Const THREAD_PRIORITY_TIME_CRITICAL = 15
Public Const THREAD_PRIORITY_NORMAL = 0
Public Const INVALID_HANDLE_VALUE = -1

Public hWatchTh&, WatchThID&
Public Threadbeenden As Boolean, ThreadIsRunning As Boolean
Public watchpath As String
Public changehandle&


Public Function ThreadExecute(p As Long) As Long
ThreadIsRunning = True
changehandle = FindFirstChangeNotification(watchpath, False, FILE_NOTIFY_CHANGE_FILE_NAME)
If changehandle <> INVALID_HANDLE_VALUE Then
While Not Threadbeenden
If WaitForSingleObject(changehandle, 50) = 0 Then Form1.File1.Refresh
FindNextChangeNotification changehandle
Wend
FindCloseChangeNotification changehandle
End If
ThreadIsRunning = False

End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
An die Profis !!108luet23.02.02 15:32
Re: An die Profis !!121TekoW23.02.02 19:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel