Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中与外部应用程序交互#_C# - Fatal编程技术网

C# 在c中与外部应用程序交互#

C# 在c中与外部应用程序交互#,c#,C#,我在使用MicrosoftSpy++时注意到,它不仅可以找到打开的进程,而且可以找到每个进程中运行的各个组件。例如,有一个应用程序允许您打开一个窗口,其中有一个用于IP地址的文本框和一个端口的文本框。Spy++可以检测这些组件。知道Spy++可以检测到它们,是否有可能在单独的c#应用程序中找到它们,并继续修改它们的内容,或者与程序交互?(例如在按钮上触发单击事件)这是可行的。尝试使用(互操作)或(对于WPF应用程序)自动化所有您希望执行的操作 此外,您可能还希望尝试和应用程序 Automati

我在使用MicrosoftSpy++时注意到,它不仅可以找到打开的进程,而且可以找到每个进程中运行的各个组件。例如,有一个应用程序允许您打开一个窗口,其中有一个用于IP地址的文本框和一个端口的文本框。Spy++可以检测这些组件。知道Spy++可以检测到它们,是否有可能在单独的c#应用程序中找到它们,并继续修改它们的内容,或者与程序交互?(例如在按钮上触发单击事件)

这是可行的。尝试使用(互操作)或(对于WPF应用程序)自动化所有您希望执行的操作

此外,您可能还希望尝试和应用程序


Automation elements/peer是一种使用可访问性框架控制UI的非侵入性机制。windows的一个弱点是缺乏对代码注入的防御。简言之:

作为特权用户, -您可以打开和修改正在运行的进程映像 -让它加载您自己的DLL
-让它运行您自己的线程(可能侦听来自进程的命令)并 -允许您读取所需的任何内存位

查看detours()了解如何使用托管流程。。不幸的是,Microsoft删除了运行时注入功能


另外,看看在托管世界中做什么(Snoop之类的应用程序利用了这一点)

我要强调的是UI自动化(
AutomationElement
),并指出有一个完整的自动化托管框架(对于本地和托管程序,无论它们使用WPF还是其他什么,它都应该工作得很好)有没有介绍如何使用这个的文章?此外,这是否适用于用VB6编写的应用程序?