熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

窗口如何激活自己

2013-11-13 09:49:23  來源: .NET編程 

  在Window以下如果程序要激活自己只需要簡單的調用SetForegroundWindow即可達到目的但到Win以後再也沒有這麼簡單了

  在Window以下如果程序要激活自己只需要簡單的調用SetForegroundWindow即可達到目的但到Win以後再也沒有這麼簡單了

  新建一個簡單的工程加進一個Timer控件設置時間間隔為接著在時間事件中寫SetForegroundWindow(Handle)運行程序將窗口切換到後台秒鐘之後你看到的只是任務欄上閃了閃窗口仍然躺在後面

  這是怎麼回事呢原來在Win以後窗口要使用SetForegroundWindow激活自己必須得到允許允許的方式有很多種我只介紹最簡單的一種就是利用這個APILockSetForegroundWindow先解鎖Foreground的窗口然後再調用SetForegroundWindow

  LockSetForegroundWindow在Delphi的Windows單元中並沒有聲明需要自己聲明我將激活的函數重新封裝如下需要的朋友直接用就可以了

  const

  LSFW_LOCK     = ;

  LSFW_UNLOCK   = ;

  function LockSetForegroundWindow(uLockCode: DWORD): BOOL; stdcall;

  implementation

  function LockSetForegroundWindow; external  userdll name LockSetForegroundWindow;

  function wdSetForegroundWindow(Handle: THandle): Boolean;

  begin

  //

  //作者linzhenqun

  //時間

  //說明使Win以上的窗口都可以設置Foreground的函數

  //

  if ((WinPlatform = VER_PLATFORM_WIN_NT) and (WinMajorVersion> ))//up win

  or ((WinPlatform = VER_PLATFORM_WIN_WINDOWS) and  //up win

  ((WinMajorVersion > ) or

  ((WinMajorVersion = ) and

  (WinMinorVersion > )))) then

  LockSetForegroundWindow(LSFW_UNLOCK);

  Result := SetForegroundWindow(Handle);

  end;

  現在你在時間事件中寫下如下代碼

  ApplicationRestore;

  wdSetForegroundWindow(Handle);

  那麼窗口就可以自己激活自己了爽吧!


From:http://tw.wingwit.com/Article/program/net/201311/11670.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.