Avatar billede tosssen Nybegynder
15. januar 2003 - 18:28 Der er 8 kommentarer og
1 løsning

Kommandoprompt?

Kan man i et console program gøre brug af dos-kommandoer som copy osv.? Det jeg fortrinsvist skal bruge det til er at åbne billeder, hvilket jo i kommandopromten gøres ved at skrive sti og filnavn.

Et alternativ kunne være en batch-fil, men hvordan kan en sådan køres fra et C++ program?

Der gives 30 point per underspørgsmål

Søren
Avatar billede soreno Praktikant
15. januar 2003 - 18:35 #1
#include <stdio.h>

int main(int argc, char **argv)
{
  system("notepad.exe");
  return 0;
}

system giver parameteret videre til kommando fortolkeren (command.com (win9x) eller cmd (winnt)).

Du kan køre bat filer på samme måde.
Avatar billede tosssen Nybegynder
15. januar 2003 - 18:42 #2
Perfekt!
Er det kun i stdio.h den mulighed findes?
Det kan godt være det bare er mig, men jeg har en eller anden ide om at stdio.h er ved at være forældet.
Avatar billede soreno Praktikant
15. januar 2003 - 18:45 #3
Faktisk behøver du slet ikke at inkludere noget for at benytte system() - det er bare vane at jeg altid includer stdio.h - man ved jo aldrig hvornår man skal bruge en printf :-)
Avatar billede tosssen Nybegynder
15. januar 2003 - 18:47 #4
Hehe, igen mange tak!
Avatar billede tosssen Nybegynder
15. januar 2003 - 18:57 #5
Alt var alligevel ikke så godt - jeg kan ikke compile følgende:

void main()
{
    system("notepad.exe");
}

Jeg bruger MSVC++ .NET
Avatar billede tosssen Nybegynder
15. januar 2003 - 18:58 #6
Jeg får fejlen C2065: 'system': undeclared identifier
Avatar billede soreno Praktikant
15. januar 2003 - 19:03 #7
Tjaaa - jeg har ikke samme compiler, så jeg kan ikke teste for dig.

Men følgende var det jeg lige testede med inden jeg postede 18:45:52
int main()
{
    system("vim");
    return 0;
}

Og det compiler fint (og eksekverer også vim fint).

Men mon ikke det er fordi system ikke er standardiseret.
Måske du skulle prøve diverse kombinationer af:
__system("notepad.exe");
_system("notepad.exe");
System(..)

Alternativt kan du bruge:
ShellExecute( NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);

SÅ skal du bare lige huske at include windows.h

altså:
    #include <stdio.h>

int main(int argc, char **argv)
{
  ShellExecute( NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);
  return 0;
}
Avatar billede soreno Praktikant
15. januar 2003 - 19:04 #8
Prøv evt. at slå op i hjælpen.
Avatar billede tosssen Nybegynder
15. januar 2003 - 19:06 #9
Jeg ledte lidt i hjælpen og fandt frem til at process.h løser problemet, så nu skulle jeg være helt af med mine problemer
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