[c] ShellExecute Parameter funktionieren nicht

h2och

Grünschnabel
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);
}
 
Wenn ich nicht irre erwartet ShellExecute als 1. Paramete eine HWND-Variable:
Code:
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?
 
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
 
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:
Code:
ShellExecute(hWnd, "open", "C:\\scripts\mcse.vbs","\"Hans Meier\" Hallo", NULL, SW_NORMAL);
 
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
 
Zurück