Доброго времени суток.
Друзья, помогите.
Такая проблема возникла:
Есть скрипт размещающий окно файла txt - поверх всех окон с правого верхнего угла программы эксель.
Как разместить появляющееся окно блокнота - не поверх вообще всех окон, а исключительно поверх программы эксель ?
И как сделать так, чтобы при закрытии - процесса Excel.exe - закрывалось бы окно txt-файла ?
Друзья, помогите.
Такая проблема возникла:
Есть скрипт размещающий окно файла txt - поверх всех окон с правого верхнего угла программы эксель.
Как разместить появляющееся окно блокнота - не поверх вообще всех окон, а исключительно поверх программы эксель ?
И как сделать так, чтобы при закрытии - процесса Excel.exe - закрывалось бы окно txt-файла ?
Код:
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <WinAPISysWin.au3>
HotKeySet('{ESC}', '_exit')
Local $hW2 = WinGetHandle('[Class:XLMAIN]')
Local $sFile = @ScriptDir & '\Вопросы.txt'
;$hFile = FileOpen(@ScriptDir & '\1.txt', 0)
;Run($sFile)
Run("notepad.exe " & $sFile)
sleep(200)
$handle = WinGetHandle("Вопросы.txt — Блокнот", "")
WinMove($handle, "", Default, Default, 600, 300, $WS_EX_TOPMOST)
;$style1 = BitOR($WS_POPUP, $WS_EX_TOPMOST)
WinSetOnTop($handle,"",1)
If @error Then Exit
Local $hW1 = $handle
GUISetState()
Local $gp1 = WinGetPos($hW1)
Local $gp2 = WinGetPos($hW2)
Local $tX = $gp2[0]+$gp2[2] - 600-2, $tY = $gp2[1]+50
WinMove($hW1, '', $tX, $tY)
While 1
$gp2 = WinGetPos($hW2)
If Not @error Then
If $tX <> ($gp2[0] - 600) Or $tY <> $gp2[1] Then
$tX = $gp2[0]+$gp2[2] - 600-20
$tY = $gp2[1]+50
WinMove($hW1, '', $tX, $tY)
EndIf
Else
Exit
EndIf
Sleep(10)
WEnd
Func _exit()
Exit
EndFunc ;==>_exit