Это обычно 0
hwnd: родительское окно, которое получит возможное окно сообщения. Этот параметр обычно равен 0.
Это относится к окну верхнего уровня: открываемое окно не имеет родителя и является основным окном для выполняемого приложения.
Когда вы переключаетесь между приложениями (ALT-TAB), вы отображаете следующее окно верхнего уровня (следующее приложение с родительским дескриптором, равным 0) в z-порядке (например).
Конечно, родителем вашего приложения не может быть само окно рабочего стола :
Если вы создаете дочернее окно, чьим родителем является GetDesktopWindow (), ваше окно теперь приклеивается к окну рабочего стола. Если ваше окно затем вызывает что-то вроде MessageBox (), то это модальное диалоговое окно, а затем вступают в силу вышеприведенные правила, и рабочий стол отключается, и компьютер загружается.
Для пути я бы посоветовал двойные кавычки, окружающие простые кавычки: " ' ... ' "
"'C:\\Documents and Settings\\Lab1\\My Documents\\Test.xls'"
Может также работать (не проверено) с двойными двойными кавычками: " "" ... "" "
"""C:\\Documents and Settings\\Lab1\\My Documents\\Test.xls"""
, как показано этой веткой .
На самом деле, как уже упоминалось в вашем другом вопросе от Andy и Mesidin , а также в ShellExecute Function manual , вы можете открыть файл и передайте его путь в параметре.
ShellExecute( NULL, "open",
"Test.xls", "C:\\Documents and Settings\\Lab1\\My Documents\\",
NULL, SW_SHOWNORMAL);
Это означает, что Excel является приложением по умолчанию для открытия файлов расширения .xls.