---
title: "köra program?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/74086-köra-program"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "voigtann1"
published: "2003-04-14T16:42:03.000Z"
updated: "2003-05-30T17:25:07.000Z"
replies: 37
views: 1425
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/74086-köra-program"
---

# köra program?

_Sida 1 av 2._

## #1 — voigtann1, 2003-04-14T16:42Z

Hur ser en enkel program ut för att kunna köra direkt genom att trycka på knappar.. till exempel

GAMES
\--------
1 Counter-Strike
2 Hitman
etc etc
och när man trycker på 1 så ska CS startas.. till exempel.. hur ser en sådan här program ut?

Permalänk: https://www.webforum.nu/p/74086

## #2 — voigtann1, 2003-04-14T17:02Z

En sak till om det inte är förmycket
skulle vilja ha en fil typ .ini fil som man kan skriva "path" eller något som pekar på Counter-Strike mm..

Permalänk: https://www.webforum.nu/p/1010774

## #3 — arghuleh, 2003-04-14T17:08Z

Du kan ju istället för att programmera i C skapa en .bat-fil (som också kan konvertes till en .com-fil med ett speciellt program). Gör så här. Skapa en bat-fil med t.ex. Anteckningar eller Edit i Dos. Skriv detta:

```
@echo off
cls
echo.
echo 1 Counter-Strike
echo 2 Hitman
echo 3 AVBRYT
echo.
choice /c:123 Välj spel
if errorlevel 1 goto CounterStrike
if errorlevel 2 goto Hitman
if errorlevel 1 goto End

:CounterStrike
  cd c:\Spel\CounterStrike
  counterstrike.exe
  goto End

:Hitman
  cd c:\Spel\Hitman
  hitman.exe
  goto End

:End
```

Det är mer komplicerat i C-kod. Någon annan får svara på hur man gör det i denna kod.

/MVH Johannes

Permalänk: https://www.webforum.nu/p/1010782

## #4 — voigtann1, 2003-04-15T04:24Z

men jag vill ha det i en c++ fil.. :e

Permalänk: https://www.webforum.nu/p/1010994

## #5 — Nickemannen, 2003-04-15T04:53Z

Istället för en ini fil gör att den hämtar sökvägen i registret.
Om den inte finns där kanske programmet vill skapa en ini fil.

Jag har precis börjat med C så jag vet tyvärr inte.

Däremot vet jag hur man gör i .NET

<https://www.dodwars.com/hlserverspy/>'

Knaglig engelska ;)

Permalänk: https://www.webforum.nu/p/1010995

## #6 — voigtann1, 2003-04-15T06:07Z

jag vill inte ha server info eller något.. vill bara ha en exe fil som man kan välja.. såsom BAT filen.. fast jag vill göra det i C++.. :e

Permalänk: https://www.webforum.nu/p/1011013

## #7 — Engine^, 2003-04-15T08:49Z

Då kan du ju börja med att kolla in funktionen [CreateProcess](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp) närmare.

Permalänk: https://www.webforum.nu/p/1011083

## #8 — arghuleh, 2003-04-15T09:53Z

I dos finns det en funktion system(...) respektive en annan execl(...). Se exempel.

system("hitman.exe");
execl("hitman.exe", NULL);

system(..) startar programmet och när programmet är klart återvänder vi till koden efter system(...).
execl(...) startar programmet men precis innan stängs programmet som execl(...) kallades ifrån av. Så på detta slipper man ha båda programmen igång.

Notera att detta är för dos-fixerade.

/Jompa

Permalänk: https://www.webforum.nu/p/1011143

## #9 — voigtann1, 2003-04-15T10:09Z

Hur gör jag "INI" filen då?

Permalänk: https://www.webforum.nu/p/1011159

## #10 — stenmark, 2003-04-15T12:29Z

Vilken kompilator använder du?
jag vet hur man skulle kun a göra ett dialog baserat MFC program som gör det du vill.

Gör som någon ovan sa använd CreateProcess(). Kolla på msdn.microsoft.com
Den här länken säger lite om hur man startar upp ett annat program inifrån ett annat.
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/apcompat/apcompat/call_createprocess_correctly.asp>

Angående ini filen så är det väl bara att du skapar en .ini fil i anteckningar och läser in den i c++ programmet.

Permalänk: https://www.webforum.nu/p/1014183

## #11 — voigtann1, 2003-04-15T13:01Z

Använder Borland C++ om det var din fråga.... hur gör man då? är det #include \<filen.ini\>
hur "gör" man ini filen?

Om vi arghuleh exempel på system("") saken.. vad är det för include fil man ska köra?

jag får om jag skriver denna kod

```
     system("d:\games\counter-strike\cstrike.exe");
```

> d:gamescounter-strikecstrike.exe är inte ett internt kommando, externt kommando,
> program eller kommandofil.

Permalänk: https://www.webforum.nu/p/1014217

## #12 — fluff, 2003-04-15T13:49Z

ett tips är att escapa backslash tecken..

d.v.s skriv \\\\, när du vill få fram ett "\\"

Permalänk: https://www.webforum.nu/p/1014249

## #13 — voigtann1, 2003-04-15T14:02Z

Det fungera! :e 2 frågor kvar då.. hur lägger man in ini filer och hur gör man för att ladda "variablerna" typ
\[Half-life\]
dir = "D:\\Games\\Counter-Strike"
eller något sådant..

Permalänk: https://www.webforum.nu/p/1014263

## #14 — niko, 2003-04-15T14:09Z

Exempel på innehåll i ini-fil:

```
[Apps]
App1="d:\winnt\System32\calc.exe"
App2="d:\winnt\system32\notepad.exe"
```

Exempel på kod:

```
#include<windows.h>	
#include<string.h>
int main()
{
	char szIniFile[200];
	//Hitta sökvägen till oss själva.
	GetCurrentDirectory(sizeof(szIniFile),szIniFile);
	//Förutsätt att ini-filen ligger i samma mapp.
	strcat(szIniFile,"\\Inifile.ini");
	char szApp1[200];
	//Läs in App1 från ini-filen.
    	GetPrivateProfileString("Apps", 
                            "App1", 
                            "", 
                            szApp1, sizeof(szApp1), 
                            szIniFile);
	//Kör App1.
	ShellExecute(NULL, "open", szApp1, NULL, NULL, SW_SHOW); 
	return 0;
}
```

I din egen kod får du ändra så att *ShellExecute* kopplas till ett knappklick.

Permalänk: https://www.webforum.nu/p/1014276

## #15 — voigtann1, 2003-04-15T14:21Z

detta var avancerat :e

denna kod såg himla bra ut.. fast jag hade tänkt mig ha mååånga alternativ med swich(val)
{
case '1'
starta CS
case '2'¨
Starta miniräknaren
}
kan man få lite mer hjälp?

Permalänk: https://www.webforum.nu/p/1014294

## #16 — niko, 2003-04-15T15:28Z

Då får du anropa *GetPrivateProfileString* mååånga gånger och fylla mååånga buffertar szApp1, szApp2 ...

Sen kopplar du *ShellExecute(NULL, "open", szApp1* .. till click-eventet för knapp1

*ShellExecute(NULL, "open", szApp2* .. till click-eventet för knapp2 osv .. osv ..

Det är inte den mest dynamiska lösningen men den borde väl duga till att komma igång med?

Permalänk: https://www.webforum.nu/p/1014328

## #17 — voigtann1, 2003-04-15T15:31Z

ville egentligen ha en så enkel lösning som möjligt med så lite kod som möjligt...

Permalänk: https://www.webforum.nu/p/1014330

## #18 — niko, 2003-04-15T16:35Z

> ville egentligen ha en så enkel lösning som möjligt med så lite kod som möjligt

Då får jag nog göra dig besviken. Att läsa in en sökväg från en ini-fil och dra igång applikationen på färre än tre rader (mitt exempel) gör du nog inte i nåt programspråk. Sen tillkommer ju lite kod för att koppla knapparna till rätt kodsnutt.

Permalänk: https://www.webforum.nu/p/1014356

## #19 — voigtann1, 2003-04-15T17:26Z

Vad ska jag har vad hän då? kanske hjälper mig lite ändå..

Permalänk: https://www.webforum.nu/p/1014382

## #20 — niko, 2003-04-15T19:56Z

Tja, nu kan jag inte Borland-miljön alls och har ingen aning om hur man skapar olika projekttyper, men jag förutsätter att du kan det:

1\. Deklarera *char szIniFile\[200\];* ovanför WinMain.

2\. Lägg detta nånstans i början av WinMain:

```
GetCurrentDirectory(sizeof(szIniFile),szIniFile);
strcat(szIniFile,"\\Inifile.ini");
```

3\. Skapa ett fönster med X st. knappar (jag vet inte hur man gör i C++-builder).

4\. Placera en ini-fil med formatet ovan i samma mapp som exe-filen.

5\. Lägg denna kod i click-eventen för de olika knapparna:

```
char szApp[200];
GetPrivateProfileString("Apps", 
             "AppX", 
             "", 
             szApp, sizeof(szApp), 
             szIniFile);
if(strcmp(szApp,"")!=0)
	ShellExecute(NULL, "open", szApp, NULL, NULL, SW_SHOW); 
else
	MessageBox(NULL,"Det finns inget program kopplat till denna knappen.","Varning.",MB_OK);
```

och byt ut "X" mot ordningsnumret för den appen i ini-filen.

Permalänk: https://www.webforum.nu/p/1014498

---

Tråden på webben: https://www.webforum.nu/amne/programmering/74086-köra-program  
Nästa sida: https://www.webforum.nu/amne/programmering/74086-köra-program/page2.md
