DECLARE INTEGER ExtractIcon IN shell32 INTEGER hInst, STRING lpszExeFileName, INTEGER lpiIcon DECLARE INTEGER SendMessage IN user32 INTEGER hWnd, INTEGER Msg, INTEGER wParam, INTEGER lParam *Constants for SendMessage second parameter #DEFINE WM_GETICON 0x7F #DEFINE WM_SETICON 0x80 *Constants for SendMessage third parameter #DEFINE ICON_SMALL 0 #DEFINE ICON_BIG 1 local lnIcon,nindex,gnlower,gnUpper gnLower = 1 gnUpper = 12 &&can choose icon between 1-12 for example from vfp9.exe (or another application) rand(-1) lnIcon =ExtractIcon (0,HOME(1)+"vfp9.exe",INT((gnUpper - gnLower + 1) * RAND( ) + gnLower)) SendMessage(_vfp.HWND, WM_SETICON, ICON_small, lnIcon) SendMessage(thisform.HWND, WM_SETICON, ICON_small, lnIcon)this is available at runtime with your application...build a test proj and compile to test...