ShellExecute?

Tags:    c++ rails

Hej

Jeg er ved at lave et win32 api program i Visual c++ 6.0, og ønsker at programmet skal kunne åbne andre programmer på computeren, og det er til dette formål shellexecute kommer ind i billedet.

Følgende virker ikke, nogen der kan fortælle mig hvorfor?

ShellExecute(0, "open", "D:\\\\Programmer\\\\TSW\\WebCoder 5\\TSWWebCoder.exe", NULL, NULL, 0);

Har også prøvet med "find" istedet som beskrevet på msdn:

ShellExecute(0, "find", "D:\\Programmer\\TSW\\WebCoder 5\\TSWWebCoder.exe", NULL, NULL, 0);

nogen kloge hoveder som kan hjælpe mig :)

//Nick



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
For mig virker :
Fold kodeboks ind/udKode 


fint.

Måske er det NULL er skal være 0 prøv koden ovenfor og det burde virke.



For mig virker :
Fold kodeboks ind/udKode 


fint.

Måske er det NULL er skal være 0 prøv koden ovenfor og det burde virke.


Har lige prøvet det, men virker ikke, den vil stadigvæk ikke åbne .exe filen. Jeg har prøvet med kommandoen til at åbne standard browseren, og få den til at gå ind på f.eks. www.udvikleren.dk. Og dette virker helt fint.

//Nick



For mig virker :
Fold kodeboks ind/udKode 


fint.

Måske er det NULL er skal være 0 prøv koden ovenfor og det burde virke.


den virker ved mig hvis du escaper '\\' så det bliver
Fold kodeboks ind/udKode 


Mvh Caramon






Man bruger normalt CreateProcess til at starte programmer:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp

Man kan også bruge system().

ShellExecute er mest til at åbne dokumenter.

Når man bruger \\ i en streng (f.ex "C:\\whatever") skal man skrive \\\\ (dvs "c:\\\\whatever").



Oki har fået det til at virke.

Men har lige et andet spørgsmål, i mit program har jeg oprettet to knapper, men de peger begge to mod den samme kommando, istedet for hver sin, som er meningen.

Her er lidt af min kode:

Fold kodeboks ind/udKode 


//Nick



Du skal have "case ID_BUTTON:" til at være inden for
case WM_COMMAND:
switch(LOWORD(wParam))
{


Hvordan er ID_BUTTON og ID_BUTTON2 defineret ?



Du skal have "case ID_BUTTON:" til at være inden for
case WM_COMMAND:
switch(LOWORD(wParam))
{


Hvordan er ID_BUTTON og ID_BUTTON2 defineret ?


Sådan nu virker det :) De er defineret ved hjælp af en resource fil.
Men tusind tak for hjælpen, er nogen gange når man sidder og rodder med noget lidt for længe at man overser de simpleste fejl.

//Nick



t