[VBSCRIPT] Sendkeys spoort niet

Pagina: 1
Acties:
  • 113 views sinds 30-01-2008
  • Reageer

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 22:49

me1299

$ondertitel

Topicstarter
Ik heb een vbs gemaakt om de toetsenbord instellingen standaard goed te zetten.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Set sa = CreateObject("Shell.Application")
sa.ControlPanelItem("intl.cpl")

Wscript.Sleep 2000

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{RIGHT}"
Wscript.Sleep 100

WshShell.SendKeys "%d"
Wscript.Sleep 2000

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "{UP}"
Wscript.Sleep 100

WshShell.SendKeys "%w"
Wscript.Sleep 500

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{TAB}"
Wscript.Sleep 100

WshShell.SendKeys "{DOWN}"
Wscript.Sleep 100

WshShell.SendKeys "{DOWN}"
Wscript.Sleep 100

WshShell.SendKeys "%w"
Wscript.Sleep 500

WshShell.SendKeys "{ENTER}"


Dat werkt allemaal prima. Nu wil ik er ook eentje maken om pebaalde effecten uit te voeren.

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
Set sa = CreateObject("Shell.Application")
sa.ControlPanelItem("desk.cpl")

Wscript.Sleep 2000

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{RIGHT}"
Wscript.Sleep 200

WshShell.SendKeys "{RIGHT}"
Wscript.Sleep 200

WshShell.SendKeys "{RIGHT}"
Wscript.Sleep 2000

WshShell.SendKeys "{%e}"
Wscript.Sleep 2000

WshShell.SendKeys "{SPACE}"
Wscript.Sleep 200

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{SPACE}"
Wscript.Sleep 200

WshShell.SendKeys "{ENTER}"
Wscript.Sleep 200

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{TAB}"
Wscript.Sleep 200

WshShell.SendKeys "{ENTER}"
Wscript.Sleep 200


En krijg ik tijdens het uitvoeren een error op regel 29.

Te weten:

WshShell.SendKeys "{%e}"
Wscript.Sleep 2000

Het is dus de bedoeling dat hij ALT E simuleert. Dezelfde techniek werkt in de vorige vbs file wel gewoon goed. Maar als ik hem uitvoer krijg ik de volgende error:

Afbeeldingslocatie: http://www.theforumisdown.com/uploadfiles/1203/errortje.JPG

Iemand een idee? Ik snap er geen hout meer van want het staat er gewoon goed.

Hij loopt trouwens ook vast op {SPACE} terwijl dat toch echt de spatiebalk moet voorstellen.

Ik ben er inmiddels achter dat

code:
1
2
WshShell.SendKeys "%{e}"
Wscript.Sleep 2000


Wel goed gaat. Maar waarom dat bij het andere script wel werkt slaat ook nergens op. En ik kan nog steeds geen spatiebalk simuleren. Erg verwarrend allemaal.

Spatiebalk is met nader inzien toch " " 8)7

Heb ik altijd.. kom ik ergens na lang kloten niet meer uit. Post ik het hier en dan vind ik spontaan allerlei oplossingen. :o

[ Voor 27% gewijzigd door me1299 op 26-02-2004 17:42 ]

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 26-05 00:41

M-ThijZ

Riding on Rails

Heb ik altijd.. kom ik ergens na lang kloten niet meer uit. Post ik het hier en dan vind ik spontaan allerlei oplossingen. :o
offtopic:
Ja, dat komt omdat je het dan in je hoofd even rustig op een rijtje zet, gebeurd mij ook vaak.

Verder vind ik sendkeys eigenlijk nooit lekker werken, maar die sleep functie, hoe doe je dat?

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 22:49

me1299

$ondertitel

Topicstarter
Acid-Rain schreef op 26 februari 2004 @ 17:54:
[...]

offtopic:
Ja, dat komt omdat je het dan in je hoofd even rustig op een rijtje zet, gebeurd mij ook vaak.

Verder vind ik sendkeys eigenlijk nooit lekker werken, maar die sleep functie, hoe doe je dat?
Ik werk zelf al jaren niet meer met vb.. maar dit is voor me unattended XP cd.. zodat ik later een aantal settings niet meer met de hand hoef te doen. Het meeste lukt met reg files maar sommige settings niet.

Die sleep functie zorgt ervoor dat je pc ff tijd heeft om het te verwerken. Meestal is dat niet nodig maar je weet nooit met een oude bak.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 26-05 00:41

M-ThijZ

Riding on Rails

de oude (Q)Basic had een sleep() functie ingebouwd, maar dat zit niet meer in VB. Als ik bijv. een while() gebruik dan krijg ik 100% CPU load. Hoe heb je die sleep functie erin gekregen?

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 21:58
Acid-Rain schreef op 26 februari 2004 @ 19:16:
de oude (Q)Basic had een sleep() functie ingebouwd, maar dat zit niet meer in VB. Als ik bijv. een while() gebruik dan krijg ik 100% CPU load. Hoe heb je die sleep functie erin gekregen?
Als je in een .vbs bestand werkt dan bestaat WScript als object, deze kun je zo aanroepen.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • me1299
  • Registratie: Maart 2000
  • Laatst online: 22:49

me1299

$ondertitel

Topicstarter
Acid-Rain schreef op 26 februari 2004 @ 19:16:
de oude (Q)Basic had een sleep() functie ingebouwd, maar dat zit niet meer in VB. Als ik bijv. een while() gebruik dan krijg ik 100% CPU load. Hoe heb je die sleep functie erin gekregen?
dat is dus gewoon een ingebouwde functie. en hij wacht gewoon een aantal milliseconden. Kost dus geen cpu load :)

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Verwijderd

DeathKnight schreef op 26 februari 2004 @ 17:31:

code:
1
2
WshShell.SendKeys "%w"
Wscript.Sleep 500
Deze werkt, let op de %w.
WshShell.SendKeys "{%e}"
Wscript.Sleep 2000
[/code]


En krijg ik tijdens het uitvoeren een error op regel 29.

Te weten:

WshShell.SendKeys "{%e}"
Wscript.Sleep 2000
Zet eens "%e" ipv "{%e}"


Maar kan je hiervoor niet beter een windows API aanroepen ?
Kijk hier eens rond: http://msdn.microsoft.com...ctivateKeyboardLayout.asp

[ Voor 37% gewijzigd door Verwijderd op 26-02-2004 21:13 ]


  • me1299
  • Registratie: Maart 2000
  • Laatst online: 22:49

me1299

$ondertitel

Topicstarter
Verwijderd schreef op 26 februari 2004 @ 21:03:
[...]


Deze werkt, let op de %w.


[...]


Zet eens "%e" ipv "{%e}"


Maar kan je hiervoor niet beter een windows API aanroepen ?
Kijk hier eens rond: http://msdn.microsoft.com...ctivateKeyboardLayout.asp
Ik denk alleen niet dat er ook api's zijn om effecten e.d. uit te zetten. En het moet wel tijd opleveren. Als ik er super lang aan moet werken kan ik het beter niet doen.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Verwijderd

DeathKnight schreef op 26 februari 2004 @ 21:26:
[...]


Ik denk alleen niet dat er ook api's zijn om effecten e.d. uit te zetten. En het moet wel tijd opleveren. Als ik er super lang aan moet werken kan ik het beter niet doen.
Wat denk je dat het control applet wat je aanstuurt intern doet? Die zal echt een en ander aanroepen hoor. maar heb je die "%e" geprobeerd?

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 22:49

me1299

$ondertitel

Topicstarter
Verwijderd schreef op 26 februari 2004 @ 21:39:
[...]


Wat denk je dat het control applet wat je aanstuurt intern doet? Die zal echt een en ander aanroepen hoor. maar heb je die "%e" geprobeerd?
Niet alle api's zijn vrijgegeven.

Het werkt allemaal al zoals ik al zei in de start post ;)

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 26-05 00:41

M-ThijZ

Riding on Rails

DeathKnight schreef op 26 februari 2004 @ 21:00:
[...]


dat is dus gewoon een ingebouwde functie. en hij wacht gewoon een aantal milliseconden. Kost dus geen cpu load :)
ohw, nu zie ik pas dat je vbscript gebruikt en ik vb6...
Pagina: 1