我有一个应用程序通过sendmessage
在Google Chrome浏览器中执行点击。当我单击页面的所有组件而没有任何问题时,它可以完美地工作:我无法选择RadioButton。
这是我唯一无法点击的部分:
我已经尝试过PostMessageA和SendNotifyMessage替代方案但没有成功,我也在互联网上找到了可以解决问题的代码,但没有成功 - 我在下面提供了代码。
观察:使用传统的点击系统进行我的应用是不可行的。
已经尝试过的替代品
SendMessage(Window, WM_LBUTTONDOWN, Direction, MakeLong(X, Y));
SendMessage(Window, WM_LBUTTONUP, Direction, MakeLong(X, Y));
PostMessageA(Window, WM_LBUTTONDOWN, MK_LBUTTON, MakeLParam(X, Y));
PostMessageA(Window, WM_LBUTTONUP, MK_LBUTTON, MakeLParam(X, Y));
SendNotifyMessage( Window, WM_LBUTTONDOWN, Direction, MakeLong(X, Y) );
SendNotifyMessage( Window, WM_LBUTTONUP, Direction, MakeLong(X, Y) );
承诺解决问题的代码无法正常工作
procedure TForm1.ChromeBugFix;
var
texto: string;
specialfolder, I: integer;
ARQ: TStringList;
Ln, NewLn: String;
caminhochrome: String;
begin
specialFolder := CSIDL_LOCAL_APPDATA;
caminhochrome := GetSpecialFolderPath(specialFolder);
caminhochrome := caminhochrome + '\Google\Chrome\User Data\Local State';
if fileexists(caminhochrome) then
begin
ARQ:=TStringList.Create;
ARQ.LoadFromFile(caminhochrome);
ARQ.Text:=StringReplace(ARQ.Text,'"enabled": true','"enabled": false',[rfReplaceAll]);
ARQ.Text:=StringReplace(ARQ.Text,'"hardware_acceleration_mode_previous": true','"hardware_acceleration_mode_previous": false',[rfReplaceAll]);
for I := 0 to ARQ.Count - 1 do
begin
ARQ[0] := '{ "hardware_acceleration_mode": { "enabled": false },';
end;
ARQ.SavetoFile(caminhochrome);
end;
end;