Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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
  • 4 uker senere...

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...