Ладно, читаем справку по WinExec: [more]
Parameters
lpCmdLine
Points to a null-terminated character string that contains the command line (filename plus optional parameters) for the application to be executed. If the name of the executable file in the lpCmdLine parameter does not contain a directory path, Windows searches for the executable file in this sequence:
1. The directory from which the application loaded.
2. The current directory.
3. The Windows system directory. The GetSystemDirectory function retrieves the path of this directory.
4. The Windows directory. The GetWindowsDirectory function retrieves the path of this directory.
5. The directories listed in the PATH environment variable.
[/more]
Это подтверждает то, что я писал, и дает понять тебе почему у тебя не работает.
Что бы сделать то что ты хочешь, нужно прописать в WinExec не excel а команду start с файлом, который тебе нужно открыть. Винда запустит ассоциированную с этим расширением программой. Это насколько я помню, не смог найти рабочий вариант.
Кстати в справке написано еще это:
Цитата:
The WinExec function runs the specified application.
This function is provided for compatibility with earlier versions of Windows. For Win32-based applications, use the CreateProcess function.
Добавлено: Еще я делал так:
procedure TSplashForm.lblVersionClick(Sender: TObject);
const
Mail = 'mailto:111@inbox.ru';
begin
ShellExecute(Handle, 'open', Mail, nil, nil, SW_SHOW);
end;
Открывает почтовик по умолчанию