為何在線程中無法關閉程序? |
答題得分者是:h@visli
|
takdick
一般會員 發表:50 回覆:63 積分:22 註冊:2002-08-05 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
你是要在當前App退出後, 再重新啟動這個App吧.
你可以把這段退出重新開啟的代碼遷到Project代碼中執行. 如下面一樣: <textarea class="delphi" rows="10" cols="60" name="code"> Application.Run; //在Application.Run後添加重啟代碼 if GlobalVarUnit.DoLoginOut then //這裡的GlobalVarUnit.DoLoginOut是個標記變量, 相當於你那個 //Close = True if ShellExecute(0, 'Open', PChar(ParamStr(0)), 'relogin', '', SW_SHOWNORMAL) <= 32 then Application.MessageBox( PChar(GB2Big5('对不起,执行注销时发生系统故障. 请在 LiveGPS 客户端退出后重新运行.') #13#10), PChar(GB2Big5(Format('注销失败(系统错误码:%d)', [GetLastError]))), 16);</textarea> ===================引 用 takdick 文 章=================== procedure thread1; begin ... ....... if close=true then //當close為true時 begin winexec(pchar(application.exename),sw_normal); //重啟自身程序 application.Terminate; //退出程序 //這一動作失效,程序沒有退出 end; end; h:=beginthread(nil,0,@thread1,nil,0,hid);
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
takdick
一般會員 發表:50 回覆:63 積分:22 註冊:2002-08-05 發送簡訊給我 |
|
takdick
一般會員 發表:50 回覆:63 積分:22 註冊:2002-08-05 發送簡訊給我 |
|
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
|
takdick
一般會員 發表:50 回覆:63 積分:22 註冊:2002-08-05 發送簡訊給我 |
|
harpist
資深會員 發表:3 回覆:251 積分:430 註冊:2002-10-03 發送簡訊給我 |
<textarea class="cpp" rows="10" cols="60" name="code">WinExec(Application->ExeName.c_str(),SW_NORMAL);
SendMessage(Application->Handle,WM_CLOSE,0,0);
</textarea>
使用SendMessage方式不知是否能符合您的需求,這是 BCB 的Code 您自行修改試試看 ===================引 用 takdick 文 章=================== 是的. 在線程裡好像無法直接關閉程序,只好新增一boolean,在另一過程裡判斷再退出. 是否有更好的辦法呢?
------
~§~迷時師渡,悟了自渡~§~ |
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
若是new一個Thread的話
在Execute裡 <textarea class="delphi" rows="10" cols="60" name="code">procedure Execute(); begin while not self.Terminated do begin end; end; </textarea> 當收到Terminate 就會結束線程了。 不知道這是不是你要的答案 若在主要的程式,關閉的話 你試看看self.Close; 應該就能關掉了 ===================引 用 takdick 文 章=================== 是的. 在線程裡好像無法直接關閉程序,只好新增一boolean,在另一過程裡判斷再退出. 是否有更好的辦法呢? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |