这是我现在正在做的一个例子:
var
Client : String;
Handle : Integer;
begin
Client := 'Window Name';
GetWindowThreadProcessId(FindWindow(nil, PAnsiChar(Client)), @ProcessId);
Handle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
end;
Run Code Online (Sandbox Code Playgroud)
我宁愿抓住进程的句柄及其 exe 名称...这可能吗?
注意:不要编辑此代码的布局!(见下面的答案)
procedure TForm1.ReadCardTimer(Sender: TObject);
begin
ReadCard2(StrToInt(PChar('$' + Form2.Edit1.Text)),1);
ReadCard2(StrToInt(PChar('$' + Form2.Edit3.Text)),2);
ReadCard2(StrToInt(PChar('$' + Form2.Edit2.Text)),3);
ReadCard2(StrToInt(PChar('$' + Form2.Edit4.Text)),4);
ReadCard2(StrToInt(PChar('$' + Form2.Edit5.Text)),5);
ReadCard2(StrToInt(PChar('$' + Form2.Edit6.Text)),6);
ReadCard2(StrToInt(PChar('$' + Form2.Edit7.Text)),7);
ReadCard2(StrToInt(PChar('$' + Form2.Edit8.Text)),8);
ReadCard2(StrToInt(PChar('$' + Form2.Edit9.Text)),9);
ReadCard2(StrToInt(PChar('$' + Form2.Edit10.Text)),10);
ReadCard2(StrToInt(PChar('$' + Form2.Edit11.Text)),11);
ReadCard2(StrToInt(PChar('$' + Form2.Edit12.Text)),12);
ReadCard2(StrToInt(PChar('$' + Form2.Edit13.Text)),13);
ReadCard2(StrToInt(PChar('$' + Form2.Edit14.Text)),14);
if NewValue = 0 then
Image1.Hide;
Image2.Hide;
if NewValue > 0 then
Image1.Show;
Image2.Show;
UpdateCardImage(NewValue,NewValue2,'Image1');
UpdateCardImage(NewValue3,NewValue4,'Image2');
UpdateCardImage(NewValue5,NewValue6,'Image3');
UpdateCardImage(NewValue7,NewValue8,'Image4');
UpdateCardImage(NewValue9,NewValue10,'Image5');
UpdateCardImage(NewValue11,NewValue12,'Image6');
UpdateCardImage(NewValue13,NewValue14,'Image7');
end;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,第二张图片我试图隐藏......不会隐藏......我可以注释掉第一张图片而第二张图片会隐藏在这里发生什么?