2010-10-25 5 views
0

J'utilise ce code:comment utiliser ShellExecuteEx pour exécuter une application sur windows ce?

SHELLEXECUTEINFO ShExecInfo = {0}; 
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; 
ShExecInfo.hwnd = NULL; 
ShExecInfo.lpVerb = NULL; 
ShExecInfo.lpFile = _T("\\test\\WindowsCE\\test.exe");  
ShExecInfo.lpParameters = _T(""); 
ShExecInfo.lpDirectory = NULL; 
ShExecInfo.nShow = SW_SHOW; 
ShExecInfo.hInstApp = NULL; 
ShellExecuteEx(&ShExecInfo); 
WaitForSingleObject(ShExecInfo.hProcess,INFINITE); 

J'ai un test.exe de programme dans le répertoire spécifié, mais il me donne une erreur: Impossible de trouver « test » (ou un de ses componenet). Assurez-vous que le chemin d'accès et le nom de fichier .... dans un appareil Windows CE avec un SD CArd, quel pourrait être le chemin ???

+0

Pouvez-vous voir \\ test \\ WindowsCE \\ test.exe sur l'appareil? Pouvez-vous y naviguer et l'exécuter? Il semble vraiment que votre chemin est mauvais. –

Répondre

2

Habituellement, le chemin pour une carte SD est \\Storage Card - vous devez utiliser le chemin complet. Vous pouvez simplement naviguer vers le fichier via ActiveSync ou dans l'appareil lui-même et voir le chemin que vous avez utilisé pour y arriver. Le chemin que vous spécifiez signifie que sous la racine "dossier" (Mon périphérique) se trouve un dossier nommé test et sous celui-ci un dossier nommé WindowsCE et sous lequel vous avez le fichier.

+2

Il existe d'autres moyens. Par exemple, si le programme en cours d'exécution se trouve également sur la carte SD, vous pouvez obtenir le chemin du module. ('GetModuleFileName (NULL, buf, MAX_PATH)' renvoie un chemin d'accès complet.) – MSalters

+0

C'est vrai, mais ma réponse est toujours valide et ne mérite pas un vote de -1. – Shaihi

Questions connexes