Hallo,
Ik heb het volgende stukje code, die dmv SendKeys de inhoud van een PDF haalt. Alleen, als deze in een for lus gaat, gaat deze te snel. en lopen er dingen door elkaar..
Ik zoek dus een manier om de for lus te laten wachten voordat hij de volgende waarde ingaat..
Ik heb alleen geen idee hoe dit te bereiken, iemand?
( Eventueel commentaar op de code, aangezien ik voor visual basic vrij nieuw ben. :x )
Ik heb het volgende stukje code, die dmv SendKeys de inhoud van een PDF haalt. Alleen, als deze in een for lus gaat, gaat deze te snel. en lopen er dingen door elkaar..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| Sub HandleAFile(pdffile As String)
Dim CurPros
If FileExists("c:/" & Left(pdffile, Len(pdffile) - 4) & ".txt") Then
Kill "c:/" & Left(pdffile, Len(pdffile) - 4) & ".txt"
End If
StatusLog.Text = StatusLog.Text & "Bezig met openen " & pdffile & "..." & vbNewLine
CurPros = ShellExecute(Me.hwnd, "open", pdffile, vbNullString, "C:\", 1)
Sleep 10000
StatusLog.Text = StatusLog.Text & "PDF Open bezig met selecteren..." & vbNewLine
SendKeys "^a"
SendKeys "^c", True
StatusLog.Text = StatusLog.Text & "Tekst uit PDF gekopiëerd." & vbNewLine
Sleep 1000
SendKeys "%b", True
SendKeys "a", True
Sleep 500
CurPros = Shell("notepad.exe", vbNormalFocus)
StatusLog.Text = StatusLog.Text & "notepad wordt aangeroepen..." & vbNewLine
Sleep 1000
SendKeys "^v"
StatusLog.Text = StatusLog.Text & "klembord geplakt." & vbNewLine
SendKeys "%b", True
Sleep 50
SendKeys "p", True
Sleep 100
SendKeys Left(pdffile, Len(pdffile) - 4), True
StatusLog.Text = StatusLog.Text & "Bestandsnaam gewijzigd." & vbNewLine
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{TAB}", True
Sleep 100
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{ENTER}", True
Sleep 200
SendKeys "{ENTER}", True
Sleep 200
StatusLog.Text = StatusLog.Text & "Tekst opgeslagen." & vbNewLine
SendKeys "%b", True
SendKeys "a", True
StatusLog.Text = StatusLog.Text & "Done."
End Sub
Private Sub Command1_Click()
Dim fso, Root, calfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set Root = fso.Getfolder("c:\")
For Each calfile In Root.Files
If LCase(Right(calfile.Name, 3)) = "pdf" Then
HandleAFile calfile.Name
End If
Next
End Sub |
Ik zoek dus een manier om de for lus te laten wachten voordat hij de volgende waarde ingaat..
Ik heb alleen geen idee hoe dit te bereiken, iemand?
( Eventueel commentaar op de code, aangezien ik voor visual basic vrij nieuw ben. :x )