2010-11-30 18 views
2

Shell Execute a la signature suivante:Pourquoi avons-nous besoin de passer LPCTSTR lpParameters avec ShellExecute

HINSTANCE ShellExecute(
    __in_opt HWND hwnd, 
    __in_opt LPCTSTR lpOperation, 
    __in  LPCTSTR lpFile, 
    __in_opt LPCTSTR lpParameters, 
    __in_opt LPCTSTR lpDirectory, 
    __in  INT nShowCmd 
); 

Comment peut-on utiliser lpParameters, peut-on gérer le paramètre dans mon application. J'exécute mon application comme ci-dessous:

HINSTANCE hShellExecuteStatus = ShellExecute(NULL, "open", "MyPath/MyApp.EXE", NULL, NULL, SW_SHOWNORMAL); 

Puis-je passer quelque chose dans le 4ème paramètre-à-dire: lpParameters, de sorte que je peux gérer cela avec MyApp.exe, disons que si je passe « Salut: dans le 4ème param:.

HINSTANCE hShellExecuteStatus = ShellExecute(NULL, "open", "MyPath/MyApp.EXE", "Hi", NULL, SW_SHOWNORMAL); 

Puis-je vérifier dans ma demande si elle est salut et d'afficher un message de haute

J'ai essayé avec postMessage, mais n'est pas utile avec shellexecute

Répondre

2

lpParameters passera par la ligne de commande. Utilisez GetCommandLine() pour le voir.

+0

Puis-je obtenir juste le paramètre passé à partir de ShellExecute, GetCommandLine renvoie le chemin et le paramètre – Simsons

+2

Utilisez CommandLineToArgvW(). –