새 메시지가 도착할 때 메신저처럼 작업 표시줄이 내 응용 프로그램을 깜박이게 만드는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/73162

  •  09-06-2019
  •  | 
  •  

문제

채팅 상대로부터 응답이 올 때 Windows Live Messenger와 유사한 동작을 생성하는 데 사용할 수 있는 .NET 또는 기본 DLL에 API 호출이 있습니까?

도움이 되었습니까?

해결책

FlashWindowEx가 갈 길입니다.보다 MSDN 문서는 여기

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool FlashWindowEx(ref FLASHWINFO pwfi);

[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO
{
    public UInt32 cbSize;
    public IntPtr hwnd;
    public UInt32 dwFlags;
    public UInt32 uCount;
    public UInt32 dwTimeout;
}

public const UInt32 FLASHW_ALL = 3; 

함수 호출:

FLASHWINFO fInfo = new FLASHWINFO();

fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
fInfo.hwnd = hWnd;
fInfo.dwFlags = FLASHW_ALL;
fInfo.uCount = UInt32.MaxValue;
fInfo.dwTimeout = 0;

FlashWindowEx(ref fInfo);

이건 뻔뻔하게도 막혔어 Pinvoke.net

다른 팁

HWND hHandle = FindWindow(NULL,"YourApplicationName");
FLASHWINFO pf;
pf.cbSize = sizeof(FLASHWINFO);
pf.hwnd = hHandle;
pf.dwFlags = FLASHW_TIMER|FLASHW_TRAY; // (or FLASHW_ALL to flash and if it is not minimized)
pf.uCount = 8;
pf.dwTimeout = 75;

FlashWindowEx(&pf);

전문가 교환 회원 gtokas로부터 도난당했습니다.

FlashWindowEx.

Raymond Chen 블로그 항목에서:

창 캡션과 작업 표시줄 버튼을 수동으로 깜박이려면 어떻게 해야 합니까?

창 캡션과 작업 표시 줄 버튼을 수동으로 플래시하려면 어떻게해야합니까?주석가 Jonathan Scheepers는 SysteParametersInfo (SPI_SETForeGroun

FlashWindowEx 기능과 더 간단한 전구체 FlashWindow를 사용하면 프로그램이 창 캡션 및 작업 표시 줄 버튼을 수동으로 플래시하게합니다.Window Manager는 전경을 가져 오는 권한이없는 경우 프로그램이 SetforegroundWindow를 호출하는 경우 캡션을 자동으로 플래시하고 (작업 표시 줄 버튼을 플래시하여 캡션을 따릅니다.

그림 목적으로 캡션을 수동으로 깜박임을 보여 드리겠습니다.이것은 일반적으로 권장되지 않지만, 당신이 물었을 때, 나는 당신에게 방법을 보여 드리겠습니다.그리고 당신이 그것을하지 않을 것을 약속합니다.

스크래치 프로그램부터 시작하여 간단한 변경을하십시오.

void
OnSize(HWND hwnd, UINT state, int cx, int cy)
{
  if (state == SIZE_MINIMIZED) {
    FLASHWINFO fwi = { sizeof(fwi), hwnd,
                       FLASHW_TIMERNOFG | FLASHW_ALL };
    FlashWindowEx(&fwi);
  }
}

이 프로그램을 컴파일하고 실행 한 다음 최소화하십시오.그렇게하면 작업 표시 줄 버튼이 클릭 될 때까지 무기한으로 깜박입니다.이 프로그램은 Window가 전경에 올 때까지 플래시 WindowEx 함수를 호출하여 가능한 모든 것을 요구하여 최소화되는 것에 응답합니다.

FlashWinfo 구조의 다른 멤버를 사용하면 플래시 주파수 제어 및 플래시 수와 같은 플래시 동작을 추가로 사용자 정의 할 수 있습니다.그리고 정말로 제어하려면 FlashW_ALL 및 FlashW_STOP을 사용하여 캡션 및 작업 표시 줄 버튼을 원하는 방식으로 켜고 끄십시오.(아마도 모스 코드로 메시지를 보내고 싶을 수도 있습니다.)

2008 년 5 월 12 일 월요일 오전 7시에 출판 됨.암호

FlashWindowEx Win32 API는 이를 수행하는 데 사용되는 호출입니다.이에 대한 문서는 다음 위치에 있습니다.http://msdn.microsoft.com/en-us/library/ms679347(VS.85).aspx

나는 당신이 찾고 있다고 믿습니다 SetForegroundWindow.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top