如何強迫關閉縮到系統列的AP |
答題得分者是:Kingron
|
howger
一般會員 發表:1 回覆:3 積分:0 註冊:2002-06-02 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
howger
一般會員 發表:1 回覆:3 積分:0 註冊:2002-06-02 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
如果您不能改此 AP 的程式,要使用外部 Hook 的方式,可以是可以作到按下「X」時不關閉,
但無法作到幫它縮到系統列吧(可以的話,我也很想知道方法耶...),只能把它最小化,縮到工作列。 ===================引 用 howger 文 章=================== 目前公司要使用某類似MSN的AP,但按下此AP視窗「X」時並非直接關閉,而是縮到系統列~ 因沒法改此AP,所以我想到不如寫程式來偵測此AP,只要user對此AP按下「X」縮到系統列時就直接把此AP給強制關閉~
------
http://www.ViewMove.com |
howger
一般會員 發表:1 回覆:3 積分:0 註冊:2002-06-02 發送簡訊給我 |
|
Kingron
中階會員 發表:1 回覆:51 積分:60 註冊:2005-09-14 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
mypigbaby
高階會員 發表:11 回覆:168 積分:155 註冊:2006-07-20 發送簡訊給我 |
|
gydogdog
一般會員 發表:0 回覆:2 積分:0 註冊:2004-09-30 發送簡訊給我 |
<textarea class="cpp" rows="10" cols="60" name="code">//.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include
這是把自己縮到系統列的 應該只有 Hook 能辦到吧
------
None
編輯記錄
gydogdog 重新編輯於 2007-07-24 16:15:04, 註解 看錯問題‧
|
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
我有個想法,用兩個東西去判斷
若你有該AP之Handle值 則如下: <textarea class="delphi" rows="10" cols="60" name="code">if not IsWindowVisible(Handle) and not IsIconic(Handle)then begin //關閉此AP end; </textarea> 判斷它是否為顯現,判斷是否為最小化若都不是,應該就是縮到系統列去了此方法應該可行,試看看
編輯記錄
anyone 重新編輯於 2007-09-07 11:19:40, 註解 無‧
|
WilliamWeng
一般會員 發表:0 回覆:6 積分:6 註冊:2007-07-26 發送簡訊給我 |
需要
Uses TlHelp32; function TerminateProcessByName(const ExeName: string): Boolean; // 說明: 藉由指定的名稱 強制終止某一個 Process // 傳入: ExeName -- 執行檔的名稱 // 傳回: True -- 有找到所指定的執行檔的 Process // False -- 沒有找到指定執行檔的 Process var hProcessSnap: THandle; pe32: PROCESSENTRY32; hProcess: THandle; tmpExeName: string; begin Result := False; tmpExeName := UpperCase(ExeName); hProcessSnap := THandle(nil); FillChar(pe32, Sizeof(PROCESSENTRY32), 0); hProcessSnap := TlHelp32.CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnap = INVALID_HANDLE_VALUE) then Exit; try pe32.dwSize := sizeof(PROCESSENTRY32); if (TlHelp32.Process32First(hProcessSnap, pe32)) then begin repeat if UpperCase(pe32.szExeFile) = tmpExeName then begin hProcess := Windows.OpenProcess(PROCESS_ALL_ACCESS, True, pe32.th32ProcessID); if THandle(hProcess) = THandle(nil) then Continue; Windows.TerminateProcess(hProcess, 0); Result := True; end; until not (TlHelp32.Process32Next(hProcessSnap, pe32)); end; finally Windows.CloseHandle(hProcessSnap); end; end; |
howger
一般會員 發表:1 回覆:3 積分:0 註冊:2002-06-02 發送簡訊給我 |
===================引 用 Kingron 文 章=================== 请参考TaskSwitchXP的源代码~ 里面有可以把任意一个窗口缩到系统列(时钟旁边),也可以Hook鼠标,在任意窗口的最小化按钮右击的动作! 你稍微修改下,就可以用于最大化按钮的点击了。C 源代码。 感謝大家的幫忙(我忘了回來回報一下XD)~ 最後是由另一個同事幫忙寫了小工具處理,用的就是TaskSwitchXP的方式, 不過這種作法對企業來說最大的用途,大概會變成鎖死桌面的利器吧 |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |