Avatar billede hurra Novice
27. april 2006 - 14:52 Der er 5 kommentarer

"ctrl+c" fra dos

Jeg har lavet et program til dos, som virker som en terminal, hvor fra man altså kan skrive komandoer til programmet.

Nogle kommandoer kan ta noget tid at udføre, så det kunne sikkert være meget rart at kunne trykke "ctrl+c" for at cancle dem.

Problemet er nu bare at hvis jeg trykker ctrl+c i mit program, er det mit program der bliver slået ihjæl. Er der nogen måde jeg kan løse det problem på?
Avatar billede bertelbrander Novice
27. april 2006 - 20:06 #1
Hvis "DOS" er en kommandoprompt under windows:

#include <iostream>
#include <windows.h>
#include <stdlib.h>

BOOL WINAPI CtrlCHander(DWORD aCtrlType)
{
  if(aCtrlType == CTRL_C_EVENT)
  {
      std::cout << std::endl <<  "You have hit Ctrl+C" << std::endl;
      exit(0);
  }
  else
  {
      std::cout << "You hit something else" << std::endl;
  }
  return TRUE;
}

int main()
{
  std::cout << "Hit Ctrl+C to exit";
  SetConsoleCtrlHandler(CtrlCHander, TRUE);
  while(1)
      Sleep(1000);
}

Hvis "DOS" er rigtig DOS så fortæl hvilken kompiler.

Men det løser næppe dit problem.
Avatar billede hurra Novice
28. april 2006 - 17:21 #2
Undskyld jeg først får skrevet til dig nu. Jeg har prøvet det, og det virker perfekt fra en prompt i win2k, som du også skriver.

Jeg har ikke selv lavet programmet, jeg er bare kommet til at skulle rette en del ting i det. I kravsspeccen står der godt nok at det skal kunne køre i dos, men det bruger bla winsock og efter som der ikke tidligere har være brok også at det bare ikke virker, er det her forslag nok ganske udemærket :)

Tak for hjælpen, kom med et svar.
Avatar billede bertelbrander Novice
28. april 2006 - 20:30 #3
Jeg samler ikke på point.
Avatar billede hurra Novice
29. april 2006 - 12:57 #4
Jeg skal heller ikke selv ha dem, hvis der er nogen der kan komme med lidt uddybende info, så kan de her points gå videre til vedkommende...
Avatar billede hurra Novice
29. april 2006 - 12:58 #5
"Uddybende" var ellers er ret dårligt ord at bruge i den her sammenhæng, exemplet forklarer jo meget godt og simpelt hvad der sker, men så mente jeg måske "tillægs" i stedet for :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester