---
title: "Exekvera annan exe fil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/78885-exekvera-annan-exe-fil"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Erik Juhlin"
published: "2003-06-04T16:36:32.000Z"
updated: "2003-06-11T10:35:48.000Z"
replies: 18
views: 411
page: 1
pages: 1
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/dotnet/78885-exekvera-annan-exe-fil"
---

# Exekvera annan exe fil

## #1 — Erik Juhlin, 2003-06-04T16:36Z

Hur gör man för att exekvera andra filer? Finns det något objekt man kan använda för detta?

Så man kan skriva typ obj.Execute("C:\\Sierra\\Counter-Strike\\cstrike.exe -console +connect klanwf.com")...

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

## #2 — PsyDonia, 2003-06-04T17:00Z

Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 

i declarations

sen i

Private Sub Command1_Click()
Call ShellExecute(hWnd, "Open", "C:\\Sierra\\Counter-Strike\\cstrike.exe -console +connect klanwf.com", "", "", 1)
 
End Sub

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

## #3 — Erik Juhlin, 2003-06-04T17:01Z

Ah, tack! :)

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

## #4 — Erik Juhlin, 2003-06-04T17:26Z

hWnd, vad ska den innehålla?

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

## #5 — PsyDonia, 2003-06-04T17:28Z

ingen ting...

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

## #6 — Erik Juhlin, 2003-06-04T17:29Z

Ok, ska bara deklarera den då?

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

## #7 — PsyDonia, 2003-06-04T17:29Z

om du skriver 
Call ShellExecute sen skriver du ( så kommer det upp en ruta som förklarar vad det ska vara mellan alla , komman...

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

## #8 — Erik Juhlin, 2003-06-04T17:33Z

Jo, det förstår jag... :)
IpDirectory = Start in?
ShowCmd, ska inte det vara 0?
IpOperation, vad finns mer än Open?
IpParameters, ska jag slänga in mina parametrar där som t.ex. -console..?

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

## #9 — PsyDonia, 2003-06-04T18:57Z

showcmd brukar jag ha som 1 men 0 kanske e bättre.
har inte testat själv att lägga in parametrar.
om jag behöver parametrar så brukar jag bara lägga in det där exekver filen är...
men testa lite du så kan du ju medela här vad som verkar bäst...

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

## #10 — Erik Juhlin, 2003-06-04T18:59Z

Detta funkar fint. :)

```
Sub LaunchCS(Optional ByVal sServerAddress As String, _
    Optional ByVal sPassword As String, _
    Optional ByVal sOtherCommand As String)
    
    Dim sCSFolder As String, sCSExecutable As String, sCSParameters As String, hWnd As Long
    
    sCSFolder = "C:\Sierra\Counter-Strike"
    sCSExecutable = "cstrike.exe"
    sCSParameters = "-console"
    
    If Len(sPassword) Then
        sCSParameters = sCSParameters & " +password " & sPassword
    End If
    If Len(sServerAddress) Then
        If Not InStr(sServerAddress, ":") Then sServerAddress = sServerAddress & ":27015"
        sCSParameters = sCSParameters & " +connect " & sServerAddress
    End If
    If Len(sOtherCommand) Then
        sCSParameters = sCSParameters & " " & sOtherCommand
    End If
    
    'MsgBox sCSParameters
    ShellExecute hWnd, "Open", sCSFolder & "\" & sCSExecutable, sCSParameters, sCSFolder, 1
    
End Sub
```

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

## #11 — PsyDonia, 2003-06-04T19:26Z

så att lägga in -console i parametrar funkade bra lltså...

så bra...

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

## #12 — Nexus86, 2003-06-10T18:17Z

Men om du bara ska starta exe-filer så räcker det väl med Shell?

```
Call Shell("C:\Sierra\Counter-Strike\cstrike.exe -console +connect klanwf.com", vbNormalFocus)
```

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

## #13 — Erik Juhlin, 2003-06-10T18:20Z

Men skärp er, Call är en gammal Basic kvarleva! x(

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

## #14 — Nexus86, 2003-06-10T18:35Z

Jag använder den endast ibland för att om man inte har Call så får bara subbarna ha 1 st inparameter om man fort ska få ha parenteser.

T.ex.

```
Call MsgBox("Meddelande")  ' Är giltig
MsgBox("Meddelande")       ' Är giltig
MsgBox "Meddelande"        ' Är giltig

MsgBox("Meddelande", vbInformation)       ' Inte giltig
MsgBox "Meddelande", vbInformation        ' Är giltig
```

och har man en funktion så måste man ha parenteser om man ger ett värde restultatet. T.ex. result = MsgBox("Meddelande"). Så för att inte blanda ihop när man får använda och när man inte får så använder en del programmerare Call.

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

## #15 — Erik Juhlin, 2003-06-11T08:00Z

Jag anser att skriva MsgBox ("Meddelande) är precis samma sak som att skriva MsgBox ("Meddelande"), (vbInformation). Ful kod...
I VB använder man inte paranteser när man inte returnerar något.

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

## #16 — niko, 2003-06-11T09:35Z

> I VB använder man inte paranteser när man inte returnerar något.

Tycke och smak ..

Parenteser *minskar* ju iaf aldrig läsbarheten, snarare tvärtom. Jämför:

```
    Call myFunc1(AddressOf myFunc2)
```

med:

```
    myFunc1 AddressOf myFunc2
```

Den andra varianten är antagligen helt obegriplig för folk som inte kan VB (förmodligen en anledning till att parenteser är obligatoriskt i VB.NET).

I övrigt tror jag inte Nexus86s första inlägg handlade om *Call* utan om *Shell*?

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

## #17 — Erik Juhlin, 2003-06-11T09:38Z

Jag kan hålla med om att det är vettigare att paranteser är obligatoriska i ett språk. Men i VB anropar man en subrutin utan paranteser.

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

## #18 — Nexus86, 2003-06-11T10:21Z

Om man vill. Om jag ska skriva en lång anropning till en sub så tar jag med call och parenteser för jag tycker det blir lättare att läsa. Ska man bara ta en kort rad med kanske en inparameter så kan man ju hoppa över det.

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

## #19 — niko, 2003-06-11T10:35Z

> **Erik Juhlin skrev:**
>
> Men i VB anropar man en subrutin utan paranteser.

Om du menar att man alltid *måste* göra så, så får du gärna källhänvisa till den auktoritet som en gång för alla bestämt det. Microsoft själva verkar inte lägga några större moraliska aspekter på saken:  [Call](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmcall.asp).

Om du menar att man *i praktiken* alltid gör så, så har du så klart rätt. 99 gånger av 100 så väljer man att spara 7 tangenttryckningar. Den 100:ade gången väljer man kanske att prioritera läsbarheten (se exemplet ovan).

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/78885-exekvera-annan-exe-fil
