1 (изменено: serzh82saratov, 2015-08-09 03:02:38)

Тема: AHK: Показать свёрнутое окно не активируя его

Может не вижу чего то лежащего на поверхности, не соображу как показать свёрнутое окно стороннего приложения, не активируя его, и желательно сразу в заданных координатах.

В принципе не активировать можно так:

WinExist("ahk_class Notepad ahk_exe notepad.exe")
; WinGetPos, x, y, W, H 
; ToolTip % x "|" y "|" W "|" H
WinSet, ExStyle, +0x08000000 ; WS_EX_NOACTIVATE
WinMove, , , 5, 5, 555, 555
WinSet, ExStyle, -0x08000000
Return

Но размеры не задаются, окно появляется в минимальном размере, а хотелось бы прежние размеры до сворачивания.
Со своим окном всё просто:

Gui, Show, w333 h333
Return

1::Gui, Show, Noactivate x1 y1
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Показать свёрнутое окно не активируя его

Забыли про "WinRestore":

WinExist("ahk_class Notepad ahk_exe notepad.exe")
; WinGetPos, x, y, W, H
; ToolTip % x "|" y "|" W "|" H
WinSet, ExStyle, +0x08000000 ; WS_EX_NOACTIVATE
winrestore
WinMove, , , 5, 5, 555, 555
WinSet, ExStyle, -0x08000000
Return
Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

3

Re: AHK: Показать свёрнутое окно не активируя его

И правда забыл, но у меня при показе свёрнутого окна, активное деактивируется.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4 (изменено: Alectric, 2015-08-09 13:21:34)

Re: AHK: Показать свёрнутое окно не активируя его

Тогда такой странный метод:

h:=WinExist("A")
WinExist("ahk_class Notepad ahk_exe notepad.exe")
WinSet, ExStyle, +0x08000000 ; WS_EX_NOACTIVATE
winset,AlwaysOnTop,on
winrestore
WinMove, , , 5, 5, 555, 555
WinSet, ExStyle, -0x08000000
winactivatebottom,% "ahk_id " h
winset,AlwaysOnTop,off
Return

Оформил в функцию:


showWin("ahk_class Notepad ahk_exe notepad.exe")

showWin(win,x=0,y=0,w=600,h=400)
{
  hwnd:=WinExist("A")
  WinExist(win)
  WinSet, ExStyle, +0x08000000 ; WS_EX_NOACTIVATE
  winset,AlwaysOnTop,on
  winrestore
  WinMove, , ,% x,% y,% w,% h
  WinSet, ExStyle, -0x08000000
  winactivatebottom,% "ahk_id " hwnd
  winset,AlwaysOnTop,off
}
Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

5

Re: AHK: Показать свёрнутое окно не активируя его

Так, активное окно ненадолго деактивируется.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6 (изменено: Alectric, 2015-08-09 13:38:20)

Re: AHK: Показать свёрнутое окно не активируя его

Больше ничем не могу помочь, могу только "костыли" писать.


...
Может через ShowWindow function?

...
Попробовал с параметром "SW_SHOWNOACTIVATE", все равно активируется.

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

7 (изменено: Alectric, 2015-08-09 13:43:12)

Re: AHK: Показать свёрнутое окно не активируя его

А нет, все в порядке вроде.

showWin("ahk_class Notepad ahk_exe notepad.exe")

showWin(win,x=0,y=0,w=600,h=400)
{
  hwnd:=WinExist("A")
  WinExist(win)
  WinSet, ExStyle, +0x08000000 ; WS_EX_NOACTIVATE
  winset,AlwaysOnTop,on
  DllCall("ShowWindow", "ptr",WinExist("ahk_class Notepad ahk_exe notepad.exe"), "Int", 4) ; SW_SHOWNOACTIVATE=4
  WinMove, , ,% x,% y,% w,% h
  WinSet, ExStyle, -0x08000000
  winset,AlwaysOnTop,off
}

Опять глюки, да что ж такое то сегодня... И опять мультипост.

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

8 (изменено: serzh82saratov, 2015-08-09 16:39:10)

Re: AHK: Показать свёрнутое окно не активируя его

Alectric молодца! Вот то, что нужно было:


ShowWindow(WinExist("ahk_class Notepad ahk_exe notepad.exe"), 1, 1)

ShowWindow(hwnd, x="", y="", w="", h="") {  
  DllCall("ShowWindow", "ptr", hwnd, "Int", 4) ; SW_SHOWNOACTIVATE=4
  WinMove, % "ahk_id" hwnd, , % x, % y, % w, % h  
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui