【问题标题】:C# application to use another application in ConsoleC# 应用程序在控制台中使用另一个应用程序
【发布时间】:2016-04-28 21:04:43
【问题描述】:

我的用户必须使用在控制台中创建的一个应用程序。完全是复制粘贴,但是每道工序都需要很长时间才能完成。

为了节省时间,我的团队创建了一个应用程序,它使用机器人来执行此操作。它大约在 15 分钟内完成整个工作,而这大约是 5 小时之前。

问题是,当机器人运行时,用户不能使用机器,所以即使用户浪费的时间少了,他也一直在浪费时间。

所以我想知道,有没有办法创建一个从 txt 读取数据并在后台写入控制台(它只需要它)的应用程序?不让用户停止使用机器做其他事情?

如果有办法,有人可以解释如何实现吗?

@编辑 机器人工作时用户不能使用机器,因为它被编程为自动点击屏幕的某些部分(如打开程序)然后写,所以如果用户移动光标或写东西,后面的一切都会是错了,所以我想创建一个程序,从后台写东西,用户可以在发生这种情况时使用机器。

【问题讨论】:

  • 为什么用户不能使用机器? (帮助我们弄清楚如何解决您遇到的问题)
  • 用户无法使用,因为执行此操作的程序是机器人,所以它开始像用户那样使用机器,但速度要快得多,所以他不能使用鼠标也不能使用更改屏幕,因为如果这样,程序将停止正常工作(它不会在正确的位置单击,也不会正确写入数据)。这解释得更好吗?
  • 您的机器人正在向另一个程序发送鼠标移动和点击事件?
  • 是的,它也写。 (这是一个购买的程序,所以我无法访问代码。我知道如何做一个类似的程序,但我想做一个更好的)

标签: c# performance bots


【解决方案1】:

如果您的机器人解决方案需要控制机器的鼠标指针和键盘来“伪造”用户输入,那么如果您考虑一下,就无法按照您的要求去做。操作系统只读取一个鼠标光标和键盘输入,如果用户应该通过使用机器来干扰它,而机器人正在工作,我认为它会失败,因为机器人可能依赖于“移动 x,移动 y , click” 类型的脚本,如 AutoIT 和 AutoHotkey。

但是,我能想到的一种解决方法是在实际机器上设置一个虚拟机环境,在其中运行控制台程序和机器人。然后,被虚拟化的那台机器将拥有自己的输入链,并且可以在用户同时使用主机操作系统时留给它自己的输入链。

这不是很优雅,但它会工作。它有一些缺点:

您需要虚拟化操作系统的许可证 您需要在虚拟化设置中复制工具链 必须防止用户看到或干扰 VM VM 必须配置为根据需要访问共享数据(共享文件夹)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多