NorwegianSF Skrevet 5. oktober 2009 Del Skrevet 5. oktober 2009 Driver for tiden å jobber med et program som skal sende tastetrykk til et annet program. Dette er i utgangspunktet ikke så veldig vanskelig men jeg har litt problemer fordi det jeg må ha med to timere i programmet. Kravene til programmet er som følger: Vente 10 sekunder Sende TAB Vente 1,5 sekunder Sende F1 Jeg har prøvd å skrive koden men får det ikke til å fungere, er det noen av dere som kan se hva som er feil? Setter pris på alt jeg kan få av hjelp using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Key { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //Skjer når timer1 når "mål" private void timer1_Tick(object sender, System.EventArgs e) { SendKeys.Send("{TAB}"); //Slår av Timer1 for å få nullstilt tiden i forhold til Timer2 timer1.Enabled = false; timer2.Enabled = true; labStatus.Text = "Key input (TAB) sent"; } //Skjer når timer2 når "mål" private void timer2_Tick(object sender, System.EventArgs e) { SendKeys.Send("{F1}"); //Les over for forklaring. timer1.Enabled = true; timer2.Enabled = false; labStatus.Text = "Key input (F1) sent"; } //Funksjonen til knapp "START". private void btnStart_Click(object sender, EventArgs e) { timer1.Enabled = true; //timer2.Enabled = true; } //Funksjonen til knapp "STOP". private void btnStop_Click(object sender, EventArgs e) { timer1.Enabled = false; timer2.Enabled = false; } } } Lenke til kommentar
HDSoftware Skrevet 5. oktober 2009 Del Skrevet 5. oktober 2009 Klarer ikek helt å se hvordan dette prograqmmet kan sende noe som helst til noe annet program en seg selv. Du må nok studere litt API'er for å få dette til. Sjekk ut ting som window enumerering og Sendmessage etc. Lenke til kommentar
GeirGrusom Skrevet 5. oktober 2009 Del Skrevet 5. oktober 2009 Hvorfor bruker du to timere? Dette gjør jo alt temmelig mye vanskeligere. private List<Action> events; int index; private void time_tick(object sender, ElapsedEventArgs e) { events[(index++) % events.Length](); } private void InitList() { events = new List<Action>(); events.Add(new Action(SendTabKey)); events.Add(new Action(SendF1Key)); timer1.Interval = 10000; timer1.Start(); } private void SendTabKey() { SendKeys.Send("{TAB}"); timer1.Interval = 1500; } private void SendF1Key() { SendKeys.Send("{F1}"); timer1.Stop(); } Nå kan du legge inn så mange forskjellige funksjoner du vil og kun bruke én timer. Enkelt og effektivt. Lenke til kommentar
NorwegianSF Skrevet 30. oktober 2009 Forfatter Del Skrevet 30. oktober 2009 Takk skal du ha! Hadde helt glemt denna tråden her Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå