# [c] ShellExecute Parameter funktionieren nicht



## h2och (31. Oktober 2004)

Hallo zusammen

Ich habe eine Frage und zwar hab ich ein kleines c script das mir eine vbs aufrufen soll mit zwei Parameter. Leider habe ich nicht ganz begriffen wie ich die Parameter angeben muss damit es funktioniert! Kann mir jeamnd zeigen wie ich die Parameter "Hans Meier" und "hallo" dem vbs übergeben kann. Wäre sehr froh wenn ihr mich noch aufmerksam könntet machen ob etwas zu beachten ist wen ich sie über eine variable oder statisch angebe!

Vielen Dank im Voraus!

Gruss h2och

------------------Script------------------------------
#include <stdio.h>
#include <windows.h>
#include <shellapi.h>

void main(void)
{
ShellExecute(0,"open","C:\\scripts\mcse.vbs",*"Hans Meier"* *"hallo"*, NULL, SW_NORMAL);
}


----------



## MCIglo (31. Oktober 2004)

schonmal
system("C:\\scripts\mcse.vbs Hans Meier hallo");
probiert?


----------



## C Coder (31. Oktober 2004)

Wenn ich nicht irre erwartet ShellExecute als 1. Paramete eine HWND-Variable:

```
HWND hWnd;
ShellExecute(hWnd, "open", ...);
```
Bei deine Parametern versteh ich nicht, warum du nicht einfach das so schreibst: "Hans Meier Hallo"? Geht das andere überhaupt?


----------



## h2och (31. Oktober 2004)

sali zema

@MCIglo

Das scheint eigentlich zu funktionieren! Nur leider muss ich Hans Meier als einen Parameter übergeben was irgendwie nicht funktioniert! Habe " und ' probiert, scheint nicht zu klappen! Hast du evtl die Lösung 

@C Coder 
Da Hans Meier als ein Parameter behandelt werden soll (cmd test.vbs "Hans Meier" hallo) übergebe ich das ganze so! Das mit dem HWND kann sehr wohl stimmen! Ich kenne mich nicht so guat aus mit C! Du so wie es aussieht schon  

Gruss h2och


----------



## MCIglo (31. Oktober 2004)

system("C:\\scripts\mcse.vbs \"Hans Meier\" hallo");

Oder ist das das, was du mit " gemeint hast?


----------



## C Coder (1. November 2004)

Nun ja... dennoch frage ich mich, wie man ZWEI Strings EINER variable übergeben kann
(habs noch net ausprobiert, weiß also nicht was rauskommt), 
aber ich rate dir es so zu versuchen, wie MCIglo gesagt hat.
Bei ShellExecute sähe es dann so aus:

```
ShellExecute(hWnd, "open", "C:\\scripts\mcse.vbs","\"Hans Meier\" Hallo", NULL, SW_NORMAL);
```


----------



## tschuksch (11. März 2010)

Ich hatte eben ein ähnliches Problem. Meine Lösung: Den Parameter nicht direkt im Aufruf übergeben, sondern vorher eine Variable spendieren.

------------------------
Geht nicht:
(void) ShellExecute( NULL, _T("open"), strPathToExecutable, "/MyParam", NULL, SW_SHOWNORMAL );
------------------------
Geht:
CString strParam = _T("/MyParam");
(void) ShellExecute( NULL, _T("open"), strPathToExecutable, strParam, NULL, SW_SHOWNORMAL );
------------------------

Grüße
Tschuksch


----------

