[VBSCRIPT] Shell.Application -> ControlPanelItem wachten

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

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

me1299

$ondertitel

Topicstarter
Ik ben nog steeds bezig met sendkeys om windows dingen te configureren. (zie ook: [rml][ VBSCRIPT] Sendkeys spoort niet[/rml])

Nu roep ik op de volgende manier een configuratie scherm binnen windows aan:

code:
1
2
3
4
5
6
7
Set sa = CreateObject("Shell.Application")
sa.ControlPanelItem("sysdm.cpl")

Wscript.Sleep 10000
set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.SendKeys "STUUR KEYS"


Dit opend het control panel van mijn computer. En stuur vervolgens wat tekst. Nu werkt dit best op een 'snelle' pc. Maar als het een langzame pc betreft is hij na 10seconden nog niet klaar met laden. En dan begint hij al toetsen te sturen.

Is er een methode om ervoor te zorgen dat de applicatie w8 totdat het controlpanel idd is ingeladen??? ControlPanelItem geeft ook geen return waarde.. Als ik een panel laad komt er bij m'n processen wel een rundll32.exe bij, misschien dat ik daar iets mee kan. Maar ik weet niet of je die kan controleren binnen vbscript.

Iemand een idee?

Update

Ik heb nu dit bedacht:

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
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl", 9,
true

msgbox "bla"

Wscript.Sleep 500

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

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

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

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

WshShell.SendKeys "%I"
Wscript.Sleep 200

WshShell.SendKeys "%P"
Wscript.Sleep 200

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

WshShell.SendKeys "{ENTER}"


Maar nu wacht hij met sendkeys sturen totdat ik het control panel item zelf heb afgesloten :'(

[ Voor 53% gewijzigd door me1299 op 29-02-2004 14:12 ]

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


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

me1299

$ondertitel

Topicstarter
Het is me gelukt.. de tijd gaat snel als je aan het proggen bent.. ;)

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
Sub DoAction(str, ms)
    'Check status until ready
    status = (WshShell.AppActivate)(cPanel.ProcessID)

    Do Until status = true
        WScript.Sleep 1000
        status = (WshShell.AppActivate)(cPanel.ProcessID)
        WScript.Sleep 1000
    Loop

    if status = true then
        WshShell.SendKeys str
        WScript.Sleep ms
    End if

End Sub

'Set windows for best performance

Set WshShell = CreateObject("WScript.Shell")
Set cPanel = WshShell.Exec("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl")

status = (WshShell.AppActivate)(cPanel.ProcessID)

Do Until status = true
    WScript.Sleep 1000
    status = (WshShell.AppActivate)(cPanel.ProcessID)
    WScript.Sleep 1000
Loop

if status = true then
    DoAction "{RIGHT}", 200
    DoAction "{RIGHT}", 200
    DoAction "{RIGHT}", 200
    DoAction "%I", 200
    DoAction "%P", 200
    DoAction "{ENTER}", 200
    DoAction "{ENTER}", 200
End if

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