線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1275
推到 Plurk!
推到 Facebook!

不在 Taskbar 上的 APP 可否最小化?

答題得分者是:flyup
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-24 09:14:15 IP:202.39.xxx.xxx 未訂閱
小弟以如下的方式讓 App 不出現在 Taskbar 上:
var
  ExtendedStyle: integer;
  
begin
  Application.Initialize;
  ExtendedStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);
  SetWindowLong(Application.Handle, GWL_EXSTYLE,
    ExtendedStyle or WS_EX_ToolWindow and not WS_EX_APPWINDOW);
  Application.CreateForm(TfmMain, fmMain);
  Application.Run;
end.
另外, Main Form 的 BorderStyle 屬性設為 bsNone FormStyle 屬性設為 fsStayOnTop 現在小弟的問題是當使用者按下 Win M 鍵時 所以視窗皆會最小化, 但這支 App 則否。 請教大家, 在這樣的條件或設定下 還有辦法在使用者按下 Win M 鍵時, 此 App 最小化 當有其它某個 App 不是最小化時, 此 App 也會顯示 Main From 的畫面? 謝謝大家!
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-24 10:05:16 IP:61.217.xxx.xxx 未訂閱
當使用者按下 Win+M 鍵時 所以視窗皆會最小化, 但這支 App 則否。    解決方式如下    http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20340906.html    問題..希望不是最後才發生!建議一次問完! 發表人 - flyup 於 2003/02/24 13:27:15
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-24 13:09:35 IP:202.39.xxx.xxx 未訂閱
小弟試了該篇文章所有攔截最小化訊息的方法, 都沒有辦法攔到說.
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-24 13:30:26 IP:61.217.xxx.xxx 未訂閱
在使用者按下 Win+M 鍵時, 此 App 最小化 當有其它某個 App 不是最小化時, 此 App 也會顯示 Main From 的畫面?    你的意思是:    其它 App 不是最小化時,此 App 顯示還在最上層嗎?     可否條列詳細問題?    問題..希望不是最後才發生!建議一次問完!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-24 21:31:20 IP:202.39.xxx.xxx 未訂閱
引言: 在使用者按下 Win M 鍵時, 此 App 最小化 當有其它某個 App 不是最小化時, 此 App 也會顯示 Main From 的畫面? 你的意思是: 其它 App 不是最小化時,此 App 顯示還在最上層嗎? 可否條列詳細問題?
flyup 兄, 完全命中!
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-24 22:31:26 IP:61.225.xxx.xxx 未訂閱
unit Unit1;    interface    uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls;    type  TForm1 = class(TForm)    procedure OnTop(SendeR: TObject);    procedure FormCreate(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;    var  Form1: TForm1;    implementation    {$R *.DFM} //顯示表單為最上層,另一種方式 procedure TForm1.OnTop(SendeR: TObject); begin  SetWindowPos(form1.handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOACTIVATE or SWP_NOSIZE or SWP_NOSENDCHANGING); end;    procedure TForm1.FormCreate(Sender: TObject); begin  OnTop(Self); <--表單蓋過工作列,依需要加入  Application.OnDeactivate := OnTop; end;    end.    ps. or SWP_NOSENDCHANGING 可有可無,若在XP下無法執行,可以省略! 問題..希望不是最後才發生!建議一次問完! 發表人 - flyup 於 2003/02/24 22:40:21
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-24 22:41:37 IP:202.39.xxx.xxx 未訂閱
謝啦! flyup sir! 小弟試一試!
系統時間:2024-05-13 20:31:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!