[VB] Sendkeys Vertragen

Pagina: 1
Acties:

  • dupondje
  • Registratie: Augustus 2003
  • Laatst online: 08-05 21:36

dupondje

Powa 2 Tha PPL :)

Topicstarter
Hallo,

Ik ben een klein scriptje aan het schrijven, mijn eerste prog :) maar zit met een probleem!

Via SendKeys schrijft het prog letters weg :) maar hij moet het trager doen! ik zou willen dat hij tussen elke lekker 0.1 seconde ofzo tussenlaat !

het scriptje

code:
1
2
3
4
5
6
7
8
9
10
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim file As New System.IO.StreamReader("typtop.txt")
        Dim Text As String = file.ReadToEnd()
        Console.WriteLine(Text)
        file.Close()
        Dim TextNew
        TextNew = Replace(Text, vbCrLf, "{ENTER}")
        AppActivate("Naamloos - Kladblok")
        SendKeys.Send(TextNew)
    End Sub

Verwijderd

lusje maken voor iedere character in "TextNew", en een sleep/delay gebruiken

pseudo (ik ken geen vb):

code:
1
2
3
4
for i = 1 to length(textnew) 
    SendKeys.Send(substring(textnew, i, 1))
   Sleep(100)    // = 100 msec.
end

[ Voor 11% gewijzigd door Verwijderd op 22-02-2005 23:46 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 22 februari 2005 @ 23:45:
lusje maken voor iedere character in "TextNew", en een sleep/delay gebruiken

pseudo (ik ken geen vb):

code:
1
2
3
4
for i = 1 to length(textnew) 
    SendKeys.Send(substring(textnew, i, 1))
   Sleep(100)    // = 100 msec.
end
Bij mijn weten kent SendKeys gewoon een 2e parameter, namelijk de pause tussen de letters...

Hmmm, niet onder VBScript...

http://msdn.microsoft.com...56/html/wsmthsendkeys.asp

Wel onder VB:

http://msdn.microsoft.com...56/html/wsmthsendkeys.asp

[ Voor 44% gewijzigd door RobIII op 22-02-2005 23:56 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • dupondje
  • Registratie: Augustus 2003
  • Laatst online: 08-05 21:36

dupondje

Powa 2 Tha PPL :)

Topicstarter
Verwijderd schreef op dinsdag 22 februari 2005 @ 23:45:
lusje maken voor iedere character in "TextNew", en een sleep/delay gebruiken

pseudo (ik ken geen vb):

code:
1
2
3
4
for i = 1 to length(textnew) 
    SendKeys.Send(substring(textnew, i, 1))
   Sleep(100)    // = 100 msec.
end
krijg dat scriptje niet werkend :s

ik gebruikt Visual Basic .NET btw :)

Verwijderd

dupondje schreef op dinsdag 22 februari 2005 @ 23:56:
[...]
krijg dat scriptje niet werkend :s

ik gebruikt Visual Basic .NET btw :)
vandaar ook 't woordje "pseudo" is pseudo (of halve pseudo code), betekent:
- je moet iets programmeren wat lijkt op dit, maar hoe precies is afhankelijk v/d
specifieke taal die je gebruikt -
je moet het dus ff omzetten naar de juiste syntax voor VB(.NET) :)

[ Voor 20% gewijzigd door Verwijderd op 22-02-2005 23:59 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
dupondje schreef op dinsdag 22 februari 2005 @ 23:56:
[...]


krijg dat scriptje niet werkend :s

ik gebruikt Visual Basic .NET btw :)
In VB.Net heet het geen script maar code. Ik ging er vanuit dat je VBScript gebruikte omdat je het over SCRIPT had. Je had wel even wat duidelijker mogen zijn.
Enniewee...Heb je al eens ge-googled? Wat lukt er niet? Wat heb je? bla bla bla...

Heb je dit al bekeken? http://msdn.microsoft.com...ssendkeysmemberstopic.asp

[ Voor 19% gewijzigd door RobIII op 23-02-2005 00:01 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 08:39

Exterazzo

Qeasy

Je kunt zelf je eigen delay functie schrijven.
Uit het blote hoofd:
code:
1
2
3
4
5
6
7
Public Sub Delay(t)
    Dim start
    start = Timer
    Do
        DoEvents
    Loop Until Timer-start>t
End Sub

Audentia


  • dupondje
  • Registratie: Augustus 2003
  • Laatst online: 08-05 21:36

dupondje

Powa 2 Tha PPL :)

Topicstarter
makkelijker gezegd dan gedaan :)
het is namelijk mijn eerste scriptje :P

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
dupondje schreef op woensdag 23 februari 2005 @ 00:00:
makkelijker gezegd dan gedaan :)
het is namelijk mijn eerste scriptje :P
...en dan moeten wij het maar voorkauwen?
Al die wachtlusjes zijn ranzig, gebruik liever een event of een timer ofzo...Als je ooit écht wil gaan VB-en, blijf dan van dit soort "enge" constructies af. Dit soort lusjes gaat geheid door andere code heen liggen klieren (ZEKER met een DoEvents erin)

[ Voor 38% gewijzigd door RobIII op 23-02-2005 00:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

dupondje schreef op woensdag 23 februari 2005 @ 00:00:
makkelijker gezegd dan gedaan :)
het is namelijk mijn eerste scriptje :P
[offtopic]

na welkom dan.
maarre 't is de gewoonte om te beginnen met iets als

print "Hello world"

of tegenwoordig meer iets als

messagedlg("Hello World", mtInformation, [mbYes],0)

:)

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

Pak een boek, druk op F1, of Google!

Lekker zelf puzzelen is een hele goede manier om te leren programmeren. :)

-edit-
Natuurlijk is niet alles zelf uit te puzzelen anders was dit forum niet nodig,
maar dit is best zelf op te lossen. :)

[ Voor 46% gewijzigd door TheBorg op 23-02-2005 00:07 ]


  • wallywally
  • Registratie: Maart 2004
  • Laatst online: 29-04 11:09
Hier proberen ze t zelfde

Ik heb thuis nog een vervangende sub voor SendKey's.. sendkey's werkt nogal brak in VB. Zal is kijken als ik thuis ben of ik m ff kan posten.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
wallywally schreef op woensdag 23 februari 2005 @ 09:11:
Hier proberen ze t zelfde

Ik heb thuis nog een vervangende sub voor SendKey's.. sendkey's werkt nogal brak in VB. Zal is kijken als ik thuis ben of ik m ff kan posten.
Bedoel je deze? Of deze? Of deze? ;)

[ Voor 18% gewijzigd door RobIII op 23-02-2005 10:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

code:
1
2
3
4
5
6
7
8
9
10
11
12
Sub WachtFF(sTijdTeWachten)

Dim sStartTijd as Single
sStartTijd = Timer

Do Until Timer >= sStartTijd + sTijdTeWachten

  DoEvents

Loop

End Sub


Zal werken, zolang je geen events gebruikt (daar gaat ie dan heen met DoEvents).

Voor beginnende visual basic programmeurs:

http://www.visualbasicforum.com

Succes.

  • dupondje
  • Registratie: Augustus 2003
  • Laatst online: 08-05 21:36

dupondje

Powa 2 Tha PPL :)

Topicstarter
Ik heb men timer geschreven, maar hij werkt niet! geen id wat er fout aan is !
De timer telt niet af ! Hij blijft gewoon staan op Timeleft, Timeleft vermindert niet !

code:
1
2
3
4
5
6
7
8
9
10
    Private Sub Typ_Timer()
        Timeleft = Timeleft - 1
        TLabel.Text = Timeleft

        If (Timeleft = 0) Then
            Timer.Enabled = False
            MessageBox.Show("Close Typ-Top!", "Close", MessageBoxIcon.Information)
            StatusBar.Text = "Typ-Top AutoTyp: Sluit Top-Top!"
        End If
    End Sub


En hij wordt gestart door op knop te drukken.

code:
1
        Timer.Enabled = True


Iemand een id wat er fout aan is ? ik gebruikt vb 2003 .net

[ Voor 30% gewijzigd door dupondje op 24-02-2005 00:05 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Stap met de debugger eens door je code heen... .

Een deel van leren programmeren is ook leren debuggen. Zorg dat je dat net zo snel onder de knie krijgt als programmeren. Je zult het vaak en veel nodig hebben :Y)
Tevens zou het helpen als je aangaf WAT er niet werkt. "Help! Het werkt niet!" is hier niet echt een graag gehoorde kreet op GoT. Probeer eerst zelf je probleem op te lossen, en als je er niet uit komt geef je aan wat je geprobeerd hebt, wat er niet aan werkte, wat je ontdekt hebt enzovoorts. We zijn hier niet om jouw code te debuggen. We hebben zat eigen code te debuggen ;)

[ Voor 52% gewijzigd door RobIII op 23-02-2005 23:56 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • wallywally
  • Registratie: Maart 2004
  • Laatst online: 29-04 11:09
:D nice.

Die zijn idd handig want soms werkt sendkeys niet en met dat soort subs is het wat nauwkeuriger.

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

dupondje schreef op woensdag 23 februari 2005 @ 23:40:
Ik heb men timer geschreven, maar hij werkt niet! geen id wat er fout aan is !
De timer telt niet af ! Hij blijft gewoon staan op Timeleft, Timeleft vermindert niet !

code:
1
2
3
4
5
6
7
8
9
10
    Private Sub Typ_Timer()
        Timeleft = Timeleft - 1
        TLabel.Text = Timeleft

        If (Timeleft = 0) Then
            Timer.Enabled = False
            MessageBox.Show("Close Typ-Top!", "Close", MessageBoxIcon.Information)
            StatusBar.Text = "Typ-Top AutoTyp: Sluit Top-Top!"
        End If
    End Sub


En hij wordt gestart door op knop te drukken.

code:
1
        Timer.Enabled = True


Iemand een id wat er fout aan is ? ik gebruikt vb 2003 .net
Waar declareer je je Timeleft?

  • dupondje
  • Registratie: Augustus 2003
  • Laatst online: 08-05 21:36

dupondje

Powa 2 Tha PPL :)

Topicstarter
Hier

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
    Private Sub TypTijd()
        If APM.Text = "" Then
            StatusBar.Text = "Typ-Top AutoType: Voeg Aanslagen Per Minuut In !"
        ElseIf LFile.Text = "Kies Een Bestand !" Then
            StatusBar.Text = "Typ-Top AutoType: Kies Een Bestand"
        Else
            Dim Aanslagen As Integer = APM.Text
            Dim TextLen As Integer = Len(TypText)
            Togo = (TextLen / Aanslagen) * 60
            TLabel.Text = Togo
            Dim Timeleft = Togo
        End If
    End Sub


Oh And Btw :) Als ik programma run op deze pc werkt het perfect, maar als ik het op andere pc wil draaien geeft ie error! "kan de toepassing niet juist initialiseren (0xc0000135). Klik op OK om de toepassing te beëindigen"

Na wat googlen is het omdat .net framework niet is geinstalleer ? Maar is het niet mogelijk om programma toch te runnen zonder franmework ? :( want programma is bedoeld te draaien op een pc waar ik geen admin rechten heb, en dus framework niet kan installeren ! En ook wil ik het programmatje niet laten installeren !

[ Voor 21% gewijzigd door dupondje op 24-02-2005 17:13 ]

Pagina: 1