I want to write code for opening an external file or program from the C program.Could anyone tell me how to do this?

Say if I want to open calculator.exe I mention the path in the program and it should open it or say if I want to open "image.jpg" with the default program...How shall I do this?

Any sample code would be of great help.

Thanks in advance

call win32 api function ShellExecute

More here

//example of ShellExecute Function

#include <shellapi.h>

#pragma comment(lib,"shell32.lib") 

static HWND hBut; 

switch (message) 


case WM_CREATE: 

hBut = CreateWindow(TEXT(




case 1: 


ShellExecute(hWnd,TEXT("open"), TEXT("http://www.rsdn.ru"), TEXT(""),NULL,SW_SHOWNORMAL); 


If I have to use shell execute not in MFC but like a simple function call without using the hWnd etc..how shall i?

line 25 is not necessary. You don't have to specifically load win32 api DLLs.

>>If I have to use shell execute not in MFC
I didn't ask you to use MFC -- MFC has nothing to do with ShellExecute function. Had you bothered to read the link I gave you, you would have seen that the first parameter can be NULL.

This article has been dead for over six months. Start a new discussion instead.