我已经编写了一个小型控制台应用程序,它可以从Web应用程序复制highlightes文本。 我试图通过SendInputSendkey或SendInput不会从输入字段中复制
通过简单的SendKeysSendKeys.SendWait("^C");
Application.DoEvents();
2)做两种方式
1)
Keyboard.SimulateKeyStroke('c', ctrl: true);
public static void SimulateKeyStroke(char key, bool ctrl = false, bool alt = false, bool shift = false)
{
List<ushort> keys = new List<ushort>();
if (ctrl)
keys.Add(VK_CONTROL);
if (alt)
keys.Add(VK_MENU);
if (shift)
keys.Add(VK_SHIFT);
keys.Add(char.ToUpper(key));
INPUT input = new INPUT();
input.type = INPUT_KEYBOARD;
int inputSize = Marshal.SizeOf(input);
for (int i = 0; i < keys.Count; ++i)
{
input.mkhi.ki.wVk = keys[i];
bool isKeyDown = (GetAsyncKeyState(keys[i]) & 0x10000) != 0;
if (!isKeyDown)
SendInput(1, ref input, inputSize);
}
input.mkhi.ki.dwFlags = KEYEVENTF_KEYUP;
for (int i = keys.Count - 1; i >= 0; --i)
{
input.mkhi.ki.wVk = keys[i];
SendInput(1, ref input, inputSize);
}
}
余米凸显镀铬和运行上Web应用程序的文本我的控制台应用程序通过一个ShortKey。
它的工作原理(从两个方面),当我选中一个标签场。
但它不工作(均未从方法1方法2或)当我突出显示任何输入字段。
例如,我的网络应用程序有标签联系人2(上图)和下一个它的输入字段。当我突出显示Lable即Contact2(通过双击)并运行我的控制台应用程序(通过按shorkey),我会得到突出显示的文本,但是当我对输入字段做同样的操作时,我什么也得不到。
为什么让铬在接受复制commnad为标签但不是输入。
任何帮助表示赞赏。
你如何触发你的代码被执行?你可以调试你的应用程序并使用一个断点来检查你的代码是否真的被激活了吗? – NineBerry
@Nineberry:我尝试在控制台(Console.writeLine)上打印。这很难调试,因为如果我调试,那么我当前的窗口是VisualStudio而不是Chrome。我在我的代码中的许多位置添加了打印。并且代码每次都执行。唯一的问题是,Chrome正在接受Copy commnad for label,但不能输入 – Rupesh
您还没有回答这个问题:您如何触发您的代码被执行? – NineBerry