SET TALK OFF
clear
DO mydeclare
Local nBufsize, cBuffer, tcTitle, m.lcFileName,nLeft,nTop,nWidth,nHeight, nFind
_screen.left=0
_screen.width=sysmetric(1)
_screen.height=sysmetric(2)
nLeft = 0
m.lcFileName = GETFILE('doc')
m.lcFileName = Alltrim(m.lcFileName)
If Empty(m.lcFileName)
Return
Endif
lnResult = ShellExecute(0,'Open', m.lcFileName, 0,0,0)
If m.lnResult <= 32
Messagebox( m.lcFileName + " : no association available to open this file......")
Return
Endif
tcTitle = Justfname(m.lcFileName)
SetForegroundWindow(_screen.HWnd)
hNext = GetActiveWindow() && Current app's window
Do While hNext # 0
cText = Replicate(Chr(0),80)
GetWindowText(hNext,@cText,80) && Get window title
*!* parameter text is present in window title
cBuffer = Space(250)
nResult = GetWindowText(hNext, @cBuffer, Len(cBuffer))
cText = Substr(cBuffer, 1, nResult)
cBuffer = Repli(Chr(0), 250)
nBufsize = GetClassName(hNext, @cBuffer, Len(cBuffer))
If Occurs(Upper(Alltrim(tcTitle)), Upper(cText)) > 0
Exit
Endif
hNext = GetWindow(hNext,2) && Next window
Enddo
SetParent(hNext,_screen.HWnd)
* size it
nLeft = _screen.Left + 2
nTop = _screen.Top
nWidth = _screen.Width - 2
nHeight = _screen.Height - 10 - _screen.Top
SetWindowPos(hNext, 1,nLeft, nTop,nWidth, nHeight,64)
*!* BringWindowToTop(Thisform.HWnd)
*ShowWindow(hNext,SW_NORMAL)
ShowWindow(hNext,1)
BringWindowToTop(hNext)
Release nLeft,nTop,nWidth,nHeight, clcFileName,nBufsize, cBuffer, tcTitle, m.lcFileName
_screen.Refresh
*!* *********************
*!* * mydeclare
*!* *********************
Procedure mydeclare
Declare Integer RegOpenKey In Win32API ;
Integer nHKey, String @cSubKey, Integer @nResult
Declare Integer RegCloseKey In Win32API ;
Integer nHKey
Declare Long ShellExecute In "shell32.dll" ;
long HWnd, String lpszOp, ;
string lpszFile, String lpszParams, ;
string lpszDir, Long nShowCmd
Declare Integer GetWindowInfo In user32 Integer HWnd, String @pwi
Declare Integer IsWindow In user32 Integer hWindow
Declare Integer RealGetWindowClass In user32;
INTEGER hWindow, String @pszType, Integer cchType
Declare Integer GetWindowText In user32;
INTEGER HWnd, String @lpString, Integer cch
Declare Integer InternalGetWindowText In user32;
INTEGER HWnd, String @lpString, Integer nMaxCount
Declare Integer GetShellWindow In user32;
INTEGER HWnd
Declare Integer SetActiveWindow In user32;
INTEGER HWnd
Declare Integer SetForegroundWindow In user32;
INTEGER HWnd
Declare Integer SetParent In user32;
INTEGER hWndChild,;
INTEGER hWndNewParent
Declare Integer WinExec In kernel32 String lpCmdLine,;
INTEGER nCmdShow
Declare Integer FindWindow In user32;
STRING lpClassName, String lpWindowName
Declare Integer SetWindowPos In user32;
INTEGER HWnd,;
INTEGER hWndInsertAfter,;
INTEGER x,;
INTEGER Y,;
INTEGER cx,;
INTEGER cy,;
INTEGER wFlags
Declare Integer GetActiveWindow In Win32API
Declare Integer GetWindowText In Win32API;
INTEGER HWnd,;
STRING @cText,;
INTEGER nType
Declare Integer GetWindow In Win32API;
INTEGER HWnd,;
INTEGER nType
Declare Integer SendMessage In user32;
INTEGER HWnd,;
INTEGER uMsg,;
INTEGER wParam,;
INTEGER Lparam
Declare Integer SendNotifyMessage In user32;
INTEGER HWnd,;
INTEGER uMsg,;
INTEGER wParam,;
INTEGER Lparam
Declare SwitchToThisWindow In user32;
INTEGER hWindow, Integer fAltTab
Declare Integer GetDesktopWindow In user32
Declare Integer GetWindow In user32 Integer HWnd, Integer wFlag
Declare Integer GetWindowRect In user32 Integer HWnd, String @lpRect
Declare Integer IsWindowVisible In user32 Integer HWnd
Declare Integer GetClassName In user32;
INTEGER HWnd, String lpClassName, Integer nMaxCount
Declare Long FindWindow In user32 String, String
Declare Long BringWindowToTop In user32 Long
Declare Long ShowWindow In user32 Integer HWnd, Integer nCmdShow
Declare Integer CloseWindow In user32 Integer HWnd
Declare Integer SystemParametersInfo In user32;
INTEGER uiAction, Integer uiParam,;
STRING @pvParam, Integer fWinIni