全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1388
推到 Plurk!
推到 Facebook!

[ 讓程式能重複執行的問題 ]

尚未結案
ckrl933
一般會員


發表:16
回覆:15
積分:6
註冊:2005-01-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-23 10:58:55 IP:61.220.xxx.xxx 未訂閱
如何能將一個Windows程式, 只有執行檔(*.exe), 並無Source Code, 能執行後再重複執行, 它只是網路下載下來的一個小程式, 因為它似乎有一個機制, 執行後發現再次執行後, 它會將目前在執行中的程式放至前景, 但這個機制並不曉得, 不知是藉由它的Caption或是其它....來作判斷, 請問有辦法藉由"BCB及Win32 API"寫一個程式, 去呼叫它(ShellExecuteEx, WinExec,........), 讓它能重複執行嗎? 且讓它判斷"重複執行"的機制失效~謝謝!!! 因為我都得藉由 "登出 -> 切換使用者", 登入不同的使用者兩邊執行它才可以, 本來也想用VMWare或Virtual PC讓同部電腦來重複執行它, 不過這些都很傷系統資源, 有什麼辦法能重複執行它嗎? P.S. 它不是大型的軟體或是遊戲程式, 只是不到幾K的小軟體!
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-24 01:13:54 IP:61.59.xxx.xxx 未訂閱
你可以試試看去改他程式的Caption看看..先看他主程式的Title是什麼  
 
然後..
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HWND hWin = FindWindow(NULL,"Title"); //假設是叫Title ..找出他的Handle
  while(hWin) {
   SetWindowText(
    hWin,        // handle of window or control
    "CaptionChanged"         // address of string
   );  //把他Title改掉
   hWin = FindWindow(NULL,"Title");
  }
}
ckrl933
一般會員


發表:16
回覆:15
積分:6
註冊:2005-01-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-24 11:54:31 IP:61.220.xxx.xxx 未訂閱
謝謝唷!! 不過我有試過用WM_SETTEXT去修改它的Caption 似乎不是藉此判斷的, 還有什麼常用判斷程式已經被執行了嗎?
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-24 12:52:21 IP:61.228.xxx.xxx 未訂閱
比較常用的防止程式重複執行的方式,大部分都用CreateMutex的方式去做的,所以你要藉由外部程式去控制它,應該可以用API HOOK的方式,但是這個方式太過於複雜,我想最直接的方式是用反組譯軟體,在CreateMutex的地方去動手腳,直接修改CODE的方式,讓此功能失效.
系統時間:2024-05-04 5:25:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!