start programma, wacht, stop programma , repeat

Plaats reactie
maxke
Starter
Starter
Berichten: 20
Lid geworden op: 15 apr 2004, 10:19

Code: Selecteer alles

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void wait ( int seconds )
{
  clock_t endwait;
  endwait = clock () + seconds * CLK_TCK ;
  while (clock() < endwait) {}
}

int main ()
{
  char link[30];
  int delay;

  printf("link : ");
  fgets(link,30,stdin);
  link[strlen(link)-1]='\0';
  int n;
  printf ("Starting countdown...\n");
  for (n=10; n>0; n--)
  {
    wait (1);
    system("NOTEPAD.exe");
    printf ("%d\n",n);

  }
  printf ("FIRE!!!\n");
     system("PAUSE");
  return 0;
  }


Dit is wat ik zover heb. Maar het doet nog niet wat ik wil. Wanneer ik het start doet hij zoals ik wil : notepad open , maar de timer loopt niet verder. Pas wanneer ik notepad afsluit loopt het programma verder en telt het verder en opent het notepad opnieuw.

Hoe kan ik er voor zorgen dat mijn programma in de achtergrond blijft lopen ?

Ik heb alleen nog maar iets in c/beetje c++ gedaan , dus weet niet wat de beste methode is. Graag uw hulp/commentaar om een programma te bekomen waarmee ik een programma kan starten, na een instelbare tijd , bijv. 10 minuten , dan dit proces af te sluiten (op PID bijvoorbeeld) en dan dit programma wederom te openen. Het betreft windows platformen en linux is even buiten de scoop.

Groeten !
Gebruikersavatar
SIR
Pro Member
Pro Member
Berichten: 321
Lid geworden op: 27 nov 2003, 14:47
Locatie: Borsbeek, A'pen

Heb zoiets al eens voorgehad met een VB-script.

Het had toen iets te maken met het actief zijn van het programma.

Wanneer je je script begint is dat het actieve programma, maar de moment dat je een ander programma start, wordt dat nieuw geopende programma het actieve en staat je script in een soort van "hold" toestand totdat het terug actief wordt.

Je zou moeten voorkomen dat Notepad het actieve programma wordt na het openen ervan, maar hoe dat dat concreet in zijn werk gaat bij deze programmeertaal weet ik niet.
maxke
Starter
Starter
Berichten: 20
Lid geworden op: 15 apr 2004, 10:19

Ik dacht zoiets ook al, die "hold" toestand dat zijn job net wel iets te goed...

Ligt het dat gewoon aan de aard van een gecompileerd C-programma dat hij op een system call of whatever wacht van het sluiten van notepad in dit geval ?

Groeten
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

maxke schreef:

Code: Selecteer alles

void wait ( int seconds )
{
  clock_t endwait;
  endwait = clock () + seconds * CLK_TCK ;
  while (clock() < endwait) {}
}


Dergelijke manier van 'waits' programmeren is trouwens zeer slecht in een Windows omgeving. Het geeft namelijk geen resources aan andere processen.
Gebruikersavatar
SIR
Pro Member
Pro Member
Berichten: 321
Lid geworden op: 27 nov 2003, 14:47
Locatie: Borsbeek, A'pen

In VB kan je dat opvangen door het DoEvent()-statement, maar ik weet het niet voor jou probleem.
maxke
Starter
Starter
Berichten: 20
Lid geworden op: 15 apr 2004, 10:19

Alvast bedankt voor de reacties, maar uiteindelijk ben ik er nog niet uit he.

Ik wil het wel in orde krijgen, en ja liefst zonder heel de boel op zich te laten wachten.

Wat ik wil maken is eigenlijk een task manager die op een bepaald shedule een bepaald proces start , na x tijd dit proces afsluit en dan herhaalt. Hoe ik het uiteindelijk doe maakt niet uit , maar het moet wel werken.

Kunt ge mij een omgeving aanwijzen , java , visualbasic , ... die dat wel aankan ?



Looking further ...
Gast

Uiteindelijk heb ik mijn probleem opgelost met nncron.

Dit is het crond equivalent maar dan voor windows.

Ook een freeware mouse macro gebruikt omdat ik uiteindelijk notepad niet wou gebruiken, maar wel mozilla. Dit omdat wanneer mozilla gestart wordt , er maar 1 PID aanwezig blijft en alle windows die je opent onder dat zelfde PID actief blijven.

Dus met taskkill /F /im zou je heel het proces sluiten ook al zijn er vensters die je open zou willen laten staan. Maar soit. Mijn eerste stap is gezet en het werkt onder gecontroleerde omgeving zonder er nog een muisklik aan te moeten doen.

Toch bedankt !
Plaats reactie

Terug naar “Development”