Hi Michel,
To provide an example, here is a simple program, which monitors a hot folder: every 5000 milliseconds (Interval property of the Timer) it counts files with pdf extension, makes simple calculations and shows statistics.
Kasyan
--------------------------------------------
Dim myPagesMax As Integer
Dim myPagesRekl As Integer
Dim myTop As Single
Dim myLeft As Single
Dim myFolderName As String
Private Sub Command1_Click()
Timer1.Enabled = True
Command1.Enabled = False
Command2.Enabled = True
Command3.Enabled = False
End Sub
Private Function CountFiles() As Integer
Set fsoRef = CreateObject("Scripting.FileSystemObject")
If Not fsoRef.FolderExists(myFolderName) Then
MsgBox ("Ïàïêà " & myFolderName & " íå ñóùåñòâóåò!"), vbCritical, "Îøèáêà"
Timer1.Enabled = False
Command1.Enabled = True
Command2.Enabled = False
CountFiles = 0
Exit Function
Unload Me
Else
Set folderRef = fsoRef.GetFolder(myFolderName)
i = 0
For Each f In folderRef.Files
If UCase(Right(f.Name, 4)) = ".PDF" Then
i = i + 1
End If
Next
CountFiles = i
End If
End Function
Private Sub Command2_Click()
Timer1.Enabled = False
Command1.Enabled = True
Command2.Enabled = False
Command3.Enabled = True
Label1.Caption = ""
Label4.Caption = ""
Label6.Caption = ""
Label12.Caption = ""
ProgressBar1.Value = 0
End Sub
Private Sub Command3_Click()
myFolderName = InputBox("Ââåäèòå ïóòü ê ïàïêå äëÿ PDF ôàéëîâ òåêóùåãî íîìåðà", "Âûáîð ïàïêè", myFolderName)
If myFolderName = "" Then Exit Sub ' leaves sub if the variable i is null
Form1.Caption = CurrentIssue
End Sub
Private Sub Form_Load()
Command2.Enabled = False
myTop = GetSetting("PdfCounter", "Settings", "Top", 0)
myLeft = GetSetting("PdfCounter", "Settings", "Left", 0)
myPagesMax = GetSetting("PdfCounter", "Settings", "PagesMax", 160)
myPagesRekl = GetSetting("PdfCounter", "Settings", "PagesRekl", 50)
myFolderName = GetSetting("PdfCounter", "Settings", "FolderName", "K:\PS\801\Original")
Form1.Top = myTop
Form1.Left = myLeft
Text1.Text = myPagesMax
Text2.Text = myPagesRekl
mySplit = Split(myFolderName, "\")
myCurIssue = mySplit(2)
Form1.Caption = myCurIssue
End Sub
Private Sub Form_Unload(Cancel As Integer)
myTop = Form1.Top
myLeft = Form1.Left
SaveSetting "PdfCounter", "Settings", "Top", myTop
SaveSetting "PdfCounter", "Settings", "Left", myLeft
SaveSetting "PdfCounter", "Settings", "PagesMax", myPagesMax
SaveSetting "PdfCounter", "Settings", "PagesRekl", myPagesRekl
SaveSetting "PdfCounter", "Settings", "FolderName", myFolderName
End Sub
Private Sub Text1_Change()
myPagesMax = CInt(Val(Text1.Text))
End Sub
Private Sub Text2_Change()
myPagesRekl = CInt(Val(Text2.Text))
End Sub
Private Sub Timer1_Timer()
If Not CountFiles = 0 Then
Label1.Caption = CountFiles
myPagesRekl = CInt(Val(Text2.Text))
myPagesOur = myPagesMax - myPagesRekl
If Not myPagesOur = 0 Then
myOnePercent = 100 / myPagesOur
End If
myPagesCur = CountFiles
myPagesLeft = myPagesOur - myPagesCur
myCurPercent = CountFiles * myOnePercent
Label4.Caption = CInt(myCurPercent)
Label6.Caption = myPagesLeft
Label12.Caption = myPagesOur
If myCurPercent > 100 Then
myCurPercent = 100
End If
ProgressBar1.Visible = True
ProgressBar1.Min = 0
ProgressBar1.Max = 100
ProgressBar1.Value = myCurPercent
Else
Label1.Caption = 0
myPagesRekl = CInt(Val(Text2.Text))
myPagesOur = myPagesMax - myPagesRekl
If Not myPagesOur = 0 Then
myOnePercent = 100 / myPagesOur
End If
myPagesCur = 0
myPagesLeft = myPagesOur
myCurPercent = 0
Label4.Caption = 0
Label6.Caption = myPagesOur
Label12.Caption = myPagesOur
ProgressBar1.Visible = True
ProgressBar1.Min = 0
ProgressBar1.Max = 100
ProgressBar1.Value = myCurPercent
End If
End Sub
Private Function CurrentIssue() As String
If Not myFolderName = "" Then
If Val(Mid(myFolderName, 7, 3)) > 0 Then
CurrentIssue = "Òåêóùèé íîìåð: " & Val(Mid(myFolderName, 7, 3))
Else: CurrentIssue = "Òåêóùèé íîìåð íå âûáðàí."
End If
Else
CurrentIssue = "Òåêóùèé íîìåð íå âûáðàí."
End If
End Function