NorwegianSF Skrevet 5. oktober 2009 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; } } }
HDSoftware Skrevet 5. oktober 2009 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.
GeirGrusom Skrevet 5. oktober 2009 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.
NorwegianSF Skrevet 30. oktober 2009 Forfatter Skrevet 30. oktober 2009 Takk skal du ha! Hadde helt glemt denna tråden her
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å