我在 Delphi 中使用过剪贴板,所以没有帮助。我的网站有 10 个文本区域框,我需要将 Delphi VCL 应用程序中的一些文本粘贴到网页上的这些文本区域中。
这是页面上的文本区域之一:
<textarea name="txtGoalTransaction275746_0" rows="3" cols="20"
id="txtGoalTransaction275746_0"
onkeyup="Count(this, 5000)" onchange="Count(this, 5000)"
style="width:400px;"></textarea>
我无法使用
TWebbrowser
,因为该网站在 TWebbrowser
中无法正常工作。
我正在寻找一种从我的 Delphi VCL 应用程序中将剪贴板粘贴到文本区域的方法。
如有任何帮助,我们将不胜感激。
我可以通过
正常登录该网站JSCode := 'document.getElementById("username").value = "myusername";' +
'document.getElementById("pwd").value = "myPaseword";' +
'document.forms[0].submit();';
所以我知道我正在使用 Edgebrowser 好吧。
我正在努力
procedure TForm1.Button1Click(Sender: TObject);
begin
EdgeBrowser1.ExecuteScript(
'document.getElementById("txtGoalTransaction271900_0").value ="Test String"');
end;
但是文本区域中没有放置任何内容。
我想知道是否有一种方法可以枚举 tedgebrowser 中显示的网页上的所有元素。
如果您有 Delphi 10.4.2 或更高版本,则可以使用
TEdgeBrowser
组件。
一旦网页加载到浏览器中,您就可以使用 TEdgeBrowser 的
ExecuteScript
方法。它运行任意 Javascript。因此,您可以使用 Delphi 中的 JavaScript 来设置文本区域的值,如下所示:
EdgeBrowser1.ExecuteScript(
'document.getElementById(''txtGoalTransaction275746_0'').value = ''Some text to your liking!'';');
要回答您的具体问题,将像这样使用剪贴板的内容:
uses
Vcl.Clipbrd;
procedure TForm1.Button1Click(Sender: TObject);
begin
EdgeBrowser1.ExecuteScript(
'document.getElementById(''txtGoalTransaction275746_0'').value = ''' +
Clipboard.AsText + ''';');
end;
要使 TEdgeBrowser 工作,您需要安装 Microsoft 的 WebView2 Run-Time,并且 WebView2Loader.dll 必须存在于您的 EXE 文件目录中。