<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: при закрытии чужого окна минимизировать его]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=18014</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18014&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: при закрытии чужого окна минимизировать его».]]></description>
		<lastBuildDate>Wed, 06 Dec 2023 09:24:05 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159655#p159655</link>
			<description><![CDATA[<p>Спасибо, большое, всем откликнувшимся, но для меня это слишком сложно. Но, если бы кто-то реализовал такое да еще для окна любого приложения, то можно было бы написать что-то вроде Minimize(Close) To Tray. Хотя мне было бы достаточно для Firefox.</p>]]></description>
			<author><![CDATA[null@example.com (Samotek)]]></author>
			<pubDate>Wed, 06 Dec 2023 09:24:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159655#p159655</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159621#p159621</link>
			<description><![CDATA[<p>Попробовал ещё с Edge, минимизацию перехватывает, после закрытия крашится.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 03 Dec 2023 14:23:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159621#p159621</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159620#p159620</link>
			<description><![CDATA[<p>Возможно у броузеров дополнительная защита стоит, так как с хромом и фаерфоксом у меня стало срабатывать только после запуска через uia.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 03 Dec 2023 14:20:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159620#p159620</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159619#p159619</link>
			<description><![CDATA[<p>Со стандартными окнами работает, без UIA.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 03 Dec 2023 14:19:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159619#p159619</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159618#p159618</link>
			<description><![CDATA[<p>Запускал, у меня нет разницы.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 03 Dec 2023 14:17:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159618#p159618</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159616#p159616</link>
			<description><![CDATA[<p>У меня всегда перехватывает HCBT_MINMAX.<br />Пробуй запускать через UIA.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 03 Dec 2023 14:13:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159616#p159616</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159615#p159615</link>
			<description><![CDATA[<p>У меня один раз перехватило сворачивание, и больше с FF не работало.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 03 Dec 2023 14:03:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159615#p159615</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159613#p159613</link>
			<description><![CDATA[<p>Хотя HCBT_SYSCOMMAND у меня пресекается, возможно надо через uia запускать.<br /></p><div class="codebox"><pre><code>#include &lt;Windows.h&gt;

extern &quot;C&quot; __declspec(dllexport) LRESULT CALLBACK CBTProc(
	_In_ int    nCode,
	_In_ WPARAM wParam,
	_In_ LPARAM lParam
)
{
	if (nCode &lt; 0) return CallNextHookEx(nullptr, nCode, wParam, lParam);

	switch(nCode)
	{
		case HCBT_DESTROYWND:
		case HCBT_SYSCOMMAND:
			return 1; // Prevent
	}
	return 0;
}</code></pre></div><p>Компилирую через:<br /></p><div class="codebox"><pre><code>C:\TDM-GCC-64\bin\gcc -c source.cpp
C:\TDM-GCC-64\bin\gcc -shared -o mydll.dll source.o</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 03 Dec 2023 13:51:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159613#p159613</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159612#p159612</link>
			<description><![CDATA[<p>Да, тоже так думаю.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 03 Dec 2023 13:46:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159612#p159612</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159607#p159607</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, да, с броузерами похоже такое не прокатывает, наверное посылаются сообщения о закрытии в другие потоки, не дожидаясь ответа.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sun, 03 Dec 2023 02:17:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159607#p159607</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159606#p159606</link>
			<description><![CDATA[<p>Да, попутал, она же в процессе ахк выполняется.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 02 Dec 2023 22:49:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159606#p159606</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159605#p159605</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>только для окон своего процесса</p></blockquote></div><p>Для какого — своего? Мы же окно чужого процесса отлавливаем. Когда для своего, dll не нужно писать.<br />С инжектом не пробовал.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 02 Dec 2023 22:36:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159605#p159605</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159604#p159604</link>
			<description><![CDATA[<p>Там разве нельзя указать, что только для окон своего процесса, чтобы сделать немного универсальнее. Или с реестра читать свои настройки.<br />И с инжектом не пробовал?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 02 Dec 2023 21:24:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159604#p159604</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159602#p159602</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Я бы для данной задачи использовал WH_CBT хук.</p></blockquote></div><p>Попробовал WH_CBT. С блокнотом работает так:<br /></p><div class="codebox"><pre><code>#include &lt;Windows.h&gt;

extern &quot;C&quot; __declspec(dllexport) LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode == HCBT_SYSCOMMAND &amp;&amp; wParam == SC_CLOSE)
    {
        HWND hWnd = GetForegroundWindow();
        char className[256];
        GetClassNameA(hWnd, className, 256);

        if (strcmp(className, &quot;Notepad&quot;) == 0)
        {
            bool hasOtherWindows = false;
            HWND hWndOther = FindWindowA(&quot;Notepad&quot;, NULL);
            while (hWndOther != NULL)
            {
                if (hWndOther != hWnd)
                {
                    hasOtherWindows = true;
                    break;
                }
                hWndOther = FindWindowExA(NULL, hWndOther, &quot;Notepad&quot;, NULL);
            }

            if (!hasOtherWindows)
            {
                ShowWindow(hWnd, SW_MINIMIZE);
                return 1;
            }
        }
    }

    return CallNextHookEx(NULL, nCode, wParam, lParam);
}</code></pre></div><p>И так:<br /></p><div class="codebox"><pre><code>#include &lt;Windows.h&gt;

extern &quot;C&quot; __declspec(dllexport) LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode == HCBT_DESTROYWND)
    {
        HWND hWnd = (HWND)wParam;
        char className[256];
        GetClassNameA(hWnd, className, 256);
        
        if (strcmp(className, &quot;Notepad&quot;) == 0)
        {
            bool hasOtherWindows = false;
            HWND hWndOther = FindWindowA(&quot;Notepad&quot;, NULL);
            while (hWndOther != NULL)
            {
                if (hWndOther != hWnd)
                {
                    hasOtherWindows = true;
                    break;
                }
                hWndOther = FindWindowExA(NULL, hWndOther, &quot;Notepad&quot;, NULL);
            }

            if (!hasOtherWindows)
            {
                ShowWindow(hWnd, SW_MINIMIZE);
                return 1;
            }
        }
    }

    return CallNextHookEx(NULL, nCode, wParam, lParam);
}</code></pre></div><p>С FF ни один из этих вариантов не работает. HCBT_SYSCOMMAND вообще не перехватывает, а HCBT_DESTROYWND отлавливает, сначала вроде минимизируется, но потом исчезает.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 02 Dec 2023 19:29:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159602#p159602</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: при закрытии чужого окна минимизировать его]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=159599#p159599</link>
			<description><![CDATA[<p>Думаю, самым простым (но некрасивым) будет решение поверх кнопки [X] целевого окна каким-то образом прикрепить свою кнопку [X], которая уже будет делать то, что нам нужно.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sat, 02 Dec 2023 08:03:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=159599#p159599</guid>
		</item>
	</channel>
</rss>
