PDA

View Full Version : سوال: ShellExecute



[REVEX]
پنج شنبه 12 دی 1387, 17:09 عصر
با سلام
با دستور ShellExecute یه فایل exe رو اجرا می کنم.ولی میخوام که تا وقتی که فایلی که توسط این دستور خاتمه پیدا نکرده برنامه به خط بعد نره.با تشکر.
ShellExecute(NULL, "open", "Notepad.exe", NULL, NULL, SW_SHOWNORMAL);

mehdi.mousavi
پنج شنبه 12 دی 1387, 17:34 عصر
;658695']با سلام با دستور ShellExecute یه فایل exe رو اجرا می کنم.ولی میخوام که تا وقتی که فایلی که توسط این دستور خاتمه پیدا نکرده برنامه به خط بعد نره.با تشکر.
ShellExecute(NULL, "open", "Notepad.exe", NULL, NULL, SW_SHOWNORMAL);

سلام.
برای اینکار، میتونید کدتون رو اینطور بنویسید:



SHELLEXECUTEINFO sei = {NULL};
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpFile = _T("notepad.exe");
sei.lpParameters = _T("");
sei.lpVerb = _T("open");
sei.nShow = SW_SHOW;

if(!ShellExecuteEx(&sei))
return -1;

WaitForSingleObject(sei.hProcess, INFINITE);
return 0;
بدین ترتیب، تا وقتی Notepad بسته نشه، برنامه سر WaitForSingleObject متوقف خواهد موند. دقت کنید، اگر Notepad بسته نشه، برنامه شما در خط WaitForSingleObject متوقف خواهد موند و این Thread از کار میفته!