<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=16976</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16976&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Gdip_HBitmapFromScreen минуя окно».]]></description>
		<lastBuildDate>Thu, 17 Feb 2022 00:12:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152255#p152255</link>
			<description><![CDATA[<p>Кхм.. У меня получилось сместить картинку с помощью:<br /></p><div class="codebox"><pre><code>DllCall(&quot;magnification.dll\MagSetWindowSource&quot;, &quot;Ptr&quot;, hChildMagnifier, &quot;Int&quot;, x + 18, &quot;Int&quot;, y + 18, &quot;Int&quot;, w, &quot;Int&quot;, h)</code></pre></div><p>Но выглядит что-то очень костыльно, размеры w, h по 100, scale 1.5. Как высчитать теперь эти 18 не особо понимаю.</p><p>UPD:<br />Кажется до меня долшло..<br /></p><div class="codebox"><pre><code>w := 100
h := 100
ScaleFactor := 2
winX := (A_ScreenWidth / 2) - (w / 2)
winY := (A_ScreenHeight / 2) - (h / 2)
x := (A_ScreenWidth / 2) -  ((w / 2) / ScaleFactor)
y := (A_ScreenHeight / 2) - ((h / 2) / ScaleFactor)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Thu, 17 Feb 2022 00:12:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152255#p152255</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152254#p152254</link>
			<description><![CDATA[<p>Я так понимаю оно увеличивает картинку, но отображает верхний левый угол, остальное вылазит за область, только вот как настроить можно, чтобы оно показывало центр?.. С матрицей игрался, но так и не надумал.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 23:20:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152254#p152254</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152253#p152253</link>
			<description><![CDATA[<div class="quotebox"><cite>Phoenixxx_Czar пишет:</cite><blockquote><p>Я закоментировал данные строки и все по прежнему работает.</p></blockquote></div><p>Я дал вам ссылку, где описано, где работать не будет.<br /></p><div class="quotebox"><blockquote><p>Достаточно будет тот код вызывать по таймеру?</p></blockquote></div><p>Да.<br /></p><div class="quotebox"><blockquote><p>Почему-то оно зумит со смещением:</p></blockquote></div><p>Не знаю почему. Может в игре меняются координаты, протестируйте с обычной картинкой.<br /></p><div class="quotebox"><blockquote><p>как можно поменять scale в real time.</p></blockquote></div><div class="codebox"><pre><code>MagSetWindowTransform</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 16 Feb 2022 22:44:42 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152253#p152253</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152252#p152252</link>
			<description><![CDATA[<p>Я закоментировал данные строки и все по прежнему работает.<br />У меня тут вопрос, я так понимаю обновляется оно в том вечном loop? Достаточно будет тот код вызывать по таймеру?<br />И тут еще такое дело.. Почему-то оно зумит со смещением:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><span class="postimg"><img src="http://s01.geekpic.net/di-ZLC78J.png" alt="http://s01.geekpic.net/di-ZLC78J.png" /></span></p></div></div><p>Так же хотелось бы узнать, как можно поменять scale в real time.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 22:33:47 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152252#p152252</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152251#p152251</link>
			<description><![CDATA[<p>Чтобы было поверх всех окон.<br /><a href="https://blog.adeltax.com/window-z-order-in-windows-10/">https://blog.adeltax.com/window-z-order-in-windows-10/</a><br />Как обнаружил <strong>teadrinker</strong> запуск скрипта через AutoHotkey_UIA.exe with +AlwaysOnTop равносильно CreateWindowInBand with ZBID_UIACCESS.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 16 Feb 2022 22:29:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152251#p152251</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152250#p152250</link>
			<description><![CDATA[<p>Подскажите, зачем эти строки?<br /></p><div class="codebox"><pre><code>if (band = 1)
{
   If (A_PtrSize = 8)
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
   Else If A_IsUnicode
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyU32_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
   Else
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyA32_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 22:26:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152250#p152250</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152249#p152249</link>
			<description><![CDATA[<p>Значит работает.<br />Размер изменяется примерно так:<br /></p><div class="codebox"><pre><code>x := 500
y := 500
w := 320
h := 240
ScaleFactor := 2

Gui, +HWNDhGui +AlwaysOnTop
DllCall(&quot;GetWindowBand&quot;, &quot;ptr&quot;, hGui, &quot;uint*&quot;, band)
Gui, Destroy
hGui := &quot;&quot;
if (band = 1)
{
   If (A_PtrSize = 8)
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
   Else If A_IsUnicode
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyU32_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
   Else
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyA32_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
}
#SingleInstance Force
SetBatchLines -1
SetWinDelay -1
OnExit, Uninitialize 
Gui, +HWNDhGui -DPIScale -Caption +AlwaysOnTop +E0x02000000 +E0x00080000 +E0x20 ;  WS_EX_COMPOSITED := E0x02000000  WS_EX_LAYERED := E0x00080000
Gui, Margin, 0,0
Gui, Show, x%x% y%y% w%w% h%h% NA

DllCall(&quot;LoadLibrary&quot;, &quot;str&quot;, &quot;magnification.dll&quot;)
DllCall(&quot;magnification.dll\MagInitialize&quot;)
hChildMagnifier := DllCall(&quot;CreateWindowEx&quot;, &quot;UInt&quot;, 0, &quot;Str&quot;, &quot;Magnifier&quot;, &quot;Str&quot;, &quot;MagnifierWindow&quot;, &quot;UInt&quot;, (WS_CHILD := 0x40000000), &quot;Int&quot;, 0, &quot;Int&quot;, 0, &quot;Int&quot;, w, &quot;Int&quot;, h, &quot;Ptr&quot;, hGui, &quot;UInt&quot;, 0, &quot;Ptr&quot;, DllCall(&quot;GetWindowLong&quot; (A_PtrSize=8 ? &quot;Ptr&quot; : &quot;&quot;), &quot;Ptr&quot;, hGui, &quot;Int&quot;, GWL_HINSTANCE := -6 , &quot;ptr&quot;), &quot;UInt&quot;, 0, &quot;ptr&quot;)
Matrix := ScaleFactor &quot;|0|0|&quot;
        . &quot;0|&quot; ScaleFactor &quot;|0|&quot;
        . &quot;0|0|1&quot;  
VarSetCapacity(MAGTRANSFORM, 36, 0)
Loop, Parse, Matrix, |  
   NumPut(A_LoopField, MAGTRANSFORM, (A_Index - 1) * 4, &quot;Float&quot;)
DllCall(&quot;magnification.dll\MagSetWindowTransform&quot;, &quot;Ptr&quot;, hChildMagnifier, &quot;Ptr&quot;, &amp;MAGTRANSFORM)
WinShow, ahk_id %hChildMagnifier%
Loop
{
   if (A_PtrSize = 8)
   {
      VarSetCapacity(RECT, 16, 0)
      NumPut(x, RECT, 0, &quot;Int&quot;)
      NumPut(y, RECT, 4, &quot;Int&quot;)
      NumPut(w, RECT, 8, &quot;Int&quot;)
      NumPut(h, RECT, 12, &quot;Int&quot;)
      DllCall(&quot;magnification.dll\MagSetWindowSource&quot;, &quot;Ptr&quot;, hChildMagnifier, &quot;Ptr&quot;, &amp;RECT)
   }
   else
      DllCall(&quot;magnification.dll\MagSetWindowSource&quot;, &quot;Ptr&quot;, hChildMagnifier, &quot;Int&quot;, x, &quot;Int&quot;, y, &quot;Int&quot;, w, &quot;Int&quot;, h)
}
Return 

Uninitialize: 	
DllCall(&quot;magnification.dll\MagUninitialize&quot;)
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 16 Feb 2022 22:24:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152249#p152249</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152248#p152248</link>
			<description><![CDATA[<p>Что-то такое появилось: <span class="postimg"><img src="http://s01.geekpic.net/di-FJUM06.png" alt="http://s01.geekpic.net/di-FJUM06.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 22:20:22 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152248#p152248</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152247#p152247</link>
			<description><![CDATA[<p>Вот попробуйте, это для win8+ чтоб было поверх всех окон.<br />Не будет работать с полноэкранными directx и с окнами у которых установлен SetWindowDisplayAffinity.<br /></p><div class="codebox"><pre><code>x := 500
y := 500
w := 320
h := 240

Gui, +HWNDhGui +AlwaysOnTop
DllCall(&quot;GetWindowBand&quot;, &quot;ptr&quot;, hGui, &quot;uint*&quot;, band)
Gui, Destroy
hGui := &quot;&quot;
if (band = 1)
{
   If (A_PtrSize = 8)
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
   Else If A_IsUnicode
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyU32_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
   Else
      RunWait &quot;C:\Program Files\AutoHotkey\AutoHotkeyA32_UIA.exe&quot; &quot;%A_ScriptFullPath%&quot;
}
#SingleInstance Force
SetBatchLines -1
SetWinDelay -1
OnExit, Uninitialize 
Gui, +HWNDhGui -DPIScale -Caption +AlwaysOnTop +E0x02000000 +E0x00080000 +E0x20 ;  WS_EX_COMPOSITED := E0x02000000  WS_EX_LAYERED := E0x00080000
Gui, Show, x%x% y%y% w%w% h%h% NA

DllCall(&quot;LoadLibrary&quot;, &quot;str&quot;, &quot;magnification.dll&quot;)
DllCall(&quot;magnification.dll\MagInitialize&quot;)
hChildMagnifier := DllCall(&quot;CreateWindowEx&quot;, &quot;UInt&quot;, 0, &quot;Str&quot;, &quot;Magnifier&quot;, &quot;Str&quot;, &quot;MagnifierWindow&quot;, &quot;UInt&quot;, (WS_CHILD := 0x40000000)|(MS_INVERTCOLORS := 0x0004), &quot;Int&quot;, 0, &quot;Int&quot;, 0, &quot;Int&quot;, w, &quot;Int&quot;, h, &quot;Ptr&quot;, hGui, &quot;UInt&quot;, 0, &quot;Ptr&quot;, DllCall(&quot;GetWindowLong&quot; (A_PtrSize=8 ? &quot;Ptr&quot; : &quot;&quot;), &quot;Ptr&quot;, hGui, &quot;Int&quot;, GWL_HINSTANCE := -6 , &quot;ptr&quot;), &quot;UInt&quot;, 0, &quot;ptr&quot;)
WinShow, ahk_id %hChildMagnifier%
Loop
{
   if (A_PtrSize = 8)
   {
      VarSetCapacity(RECT, 16, 0)
      NumPut(x, RECT, 0, &quot;Int&quot;)
      NumPut(y, RECT, 4, &quot;Int&quot;)
      NumPut(w, RECT, 8, &quot;Int&quot;)
      NumPut(h, RECT, 12, &quot;Int&quot;)
      DllCall(&quot;magnification.dll\MagSetWindowSource&quot;, &quot;Ptr&quot;, hChildMagnifier, &quot;Ptr&quot;, &amp;RECT)
   }
   else
      DllCall(&quot;magnification.dll\MagSetWindowSource&quot;, &quot;Ptr&quot;, hChildMagnifier, &quot;Int&quot;, x, &quot;Int&quot;, y, &quot;Int&quot;, w, &quot;Int&quot;, h)
}
Return 

Uninitialize: 	
DllCall(&quot;magnification.dll\MagUninitialize&quot;)
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 16 Feb 2022 20:55:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152247#p152247</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152246#p152246</link>
			<description><![CDATA[<p>Я думаю стоит тогда переместить тему в раздел с вопросами связанные с играми. Думал раз &quot;Gdip_HBitmapFromScreen&quot; может взять поверх игры, значит и другое функции без проблем, но видать глубоко ошибался.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 19:59:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152246#p152246</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152245#p152245</link>
			<description><![CDATA[<p>Проверьте, работает ли скрипт malcev&#039;а с вашим окном.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 16 Feb 2022 19:59:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152245#p152245</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152244#p152244</link>
			<description><![CDATA[<p>Возможно инжект в окно или другие манипуляции смогут получить желаемое. Это уже вопрос к знатокам.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 16 Feb 2022 19:55:38 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152244#p152244</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152243#p152243</link>
			<description><![CDATA[<p>К сожалению на нужном окне черный экран.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 19:54:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152243#p152243</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152242#p152242</link>
			<description><![CDATA[<div class="codebox"><pre><code>pToken := Gdip_Startup()
OnExit, Exit

X := 0,	Y := 0	; Позиция отображения.
hwnd := WinExist(&quot;ahk_Class Notepad&quot;)	; Окно по умолчанию, если нужно.
Return
;---------------------------
F3::	; Выбрать текущее окно для отображения:
hwnd := WinExist(&quot;A&quot;)
Return

F2::	; Вкл. / Выкл. отображение выбранного окна:
If !hwnd{
 ToolTip, Окно не указано!
 Return
}
If !(SW := !SW){
 Gui Destroy
 Return
}
GoSub, Show
Return
;-------------------------------------------------------------------------------------------------------
Show:
pBitmap := Gdip_BitmapFromHWND(hwnd)
Gdip_GetDimensions(pBitmap, w, h)
hBitmap := Gdip_CreateHBITMAPFromBitmap(pBitmap)
Gui -SysMenu +AlwaysOnTop +ToolWindow -Caption
Gui Margin, 0, 0
Gui Add, Text, hWndPic w%w% h%h% +0xE
PostMessage, 0x172, 0, hBitmap,, ahk_id %Pic%
Gui, Show, % &quot;NoActivate x&quot; X &quot; y&quot; Y, [Testing]
Gdip_DisposeImage(pBitmap), DeleteObject(hBitmap)
Return

Exit:
Gdip_Shutdown(pToken)
ExitApp</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Wed, 16 Feb 2022 19:42:22 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152242#p152242</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Gdip_HBitmapFromScreen минуя окно]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152240#p152240</link>
			<description><![CDATA[<p>У меня отключен UAC, но скрипты все равно запускаются дополнительно от имени админа.</p>]]></description>
			<author><![CDATA[null@example.com (Phoenixxx_Czar)]]></author>
			<pubDate>Wed, 16 Feb 2022 18:55:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152240#p152240</guid>
		</item>
	</channel>
</rss>
