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

Window10 OpenProcess

答題得分者是:jcjroc
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-06-03 23:31:07 IP:59.126.xxx.xxx 訂閱
在WIN7下 運作正常的 OPENPROCESS  到 WINDOW10下 確回傳0

不知道有沒有前輩測試過



[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var HCurrentWindow: HWND;
tmpProcess:Cardinal;
begin

HCurrentWindow := GetWindow(Handle, GW_Hwndfirst);
while HCurrentWindow <> 0 do
begin
if IsWindowVisible(HCurrentWindow) then begin
GetWindowThreadProcessId(HCurrentWindow, tmpProcess);

Memo1.Lines.Append(Format('handle : %.8x', [HCurrentWindow]));
Memo1.Lines.Append(Format('thid : %.8x', [tmpProcess]));

tmpProcess := OpenProcess(PROCESS_ALL_ACCESS, false, tmpProcess);

Memo1.Lines.Append(Format('OpenProcess : %.8x', [tmpProcess]));

CloseHandle(tmpProcess);
end;
HCurrentWindow := GetWindow(HCurrentWindow, GW_HwndNext);
end;
end;
[/code]
jcjroc
高階會員


發表:21
回覆:276
積分:114
註冊:2002-09-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2016-06-13 11:23:10 IP:210.61.xxx.xxx 訂閱
權限問題,失敗時你可以用GetLastError看看失敗原因
===================引 用 boy330077 文 章===================
在WIN7下 運作正常的 OPENPROCESS 到 WINDOW10下 確回傳0

不知道有沒有前輩測試過



[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var HCurrentWindow: HWND;
tmpProcess:Cardinal;
begin

HCurrentWindow := GetWindow(Handle, GW_Hwndfirst);
while HCurrentWindow <> 0 do
begin
if IsWindowVisible(HCurrentWindow) then begin
GetWindowThreadProcessId(HCurrentWindow, tmpProcess);

Memo1.Lines.Append(Format('handle : %.8x', [HCurrentWindow]));
Memo1.Lines.Append(Format('thid : %.8x', [tmpProcess]));

tmpProcess := OpenProcess(PROCESS_ALL_ACCESS, false, tmpProcess);

Memo1.Lines.Append(Format('OpenProcess : %.8x', [tmpProcess]));

CloseHandle(tmpProcess);
end;
HCurrentWindow := GetWindow(HCurrentWindow, GW_HwndNext);
end;
end;
[/code]
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2016-06-27 09:45:08 IP:211.20.xxx.xxx 訂閱
 似乎確實是權限問題,改以系統管理員執行就沒錯了。

另外是否能在程式中取得以系統管理員執行的權限呢。
jcjroc
高階會員


發表:21
回覆:276
積分:114
註冊:2002-09-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2016-06-27 09:51:24 IP:210.61.xxx.xxx 訂閱
你要對那隻Process幹什麼事??除非你想要改變目標Process一些特性(例如關閉,寫入等),不然你應該不需要Administrator權限.
請翻閱MSDN,修改OpenProcess的權限要求
===================引 用 boy330077 文 章===================
似乎確實是權限問題,改以系統管理員執行就沒錯了。

另外是否能在程式中取得以系統管理員執行的權限呢。
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2016-07-01 16:13:17 IP:211.20.xxx.xxx 訂閱
是的 我不只要讀寫 還要對那個 PROCESS做寫入,

但是 WIN7都沒這個問題

WIN10才被擋住
系統時間:2018-01-21 13:02:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!