我一直在研究这个Python程序,以尝试进行一些自动化测试。问题是直到最近,我还能够很好地使用pywinauto。现在,我必须控制一些使用WindowsPresentationFoundation(WPF)制作UI的程序。到目前为止,我一直在使用标准的Python解释器。但是,现在我必须处理这个问题,这可能意味着必须移植到IronPython。当我的自动化程序是用Python编写的时,有人能告诉我应该如何使用WPF对其UI程序进行自动化控制吗? 最佳答案 我假设您正在尝试向控件发送窗口消息,或模拟击键。看看这个问题:Experien
如何在Windows10上安装IronPython3,以便我的VisualStudio2017pro在其工具菜单>Python>Python环境中显示它?我从http://ironpython.codeplex.com/轻松安装了IronPython2然后我的Python环境显示IronPython2.7但对于IronPython3,我尝试了GitHub>IronLanguages>ironpython3下载到:ironpython3-master\没有安装任何东西,所以我尝试了:ironpython3-master\IronPython.sln但出现构建错误。
我想知道是否有某种方法可以将python脚本封装为COM对象。我看到很多主题都在谈论从python调用COM组件,但我对相反的方向感兴趣:创建一个实际上是python的COM组件。我有一些用python制作的库,我想从excel电子表格中调用它们,我认为这可能是一个很好的方法。 最佳答案 可能实现此目的的一种方法是使用.NET创建COM对象并使用IronPython执行Python代码。这是它如何工作的想法:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.IO;
我将IronPython(2.6.1)嵌入到C#程序集中,并将多个对象暴露给使用PythonEngine.ExecuteFile执行的脚本。我用scope.SetVariable("SomeObject",newSomeObject())或engine.Execute("fromMyNamespaceimportSomeObject",scope)取决于脚本如何使用它们。我的应用程序集被添加到引擎中engine.Runtime.LoadAssembly(Assembly.GetExecutingAssembly())现在脚本可以执行help(SomeObject)并转储漂亮的小帮助信息
我有一个包含IronPython脚本执行的线程。出于某种原因,我可能需要随时停止该线程,包括脚本执行。如何做到这一点?第一个想法是Thread.Abort(),但它被认为是邪恶的... 最佳答案 Whatisasafewaytostoparunningthread?将线程放在自己的进程中。当您希望它停止时,终止进程。这是终止线程的唯一安全方法。中止线程会严重破坏进程的稳定性并丢失用户数据。如果您真的、真的需要能够杀死一个可以做任何事情的线程,那么就没有办法避免“丢失用户数据”的情况。避免调用中止的进程不稳定的唯一方法是使它们完全不同
单元测试与生产代码有不同的要求。例如,单元测试可能不必像生产代码那样高效。也许有时用更适合编写单元测试的语言编写单元测试是有意义的?我想到的具体示例是使用C#编写应用程序,但使用IronRuby或IronPython编写测试。在我看来,使用IronPython和IronRuby作为测试语言比C#代码有几个优势:模拟在动态类型语言中可以更简单IronPython具有较少的单元测试不需要的冗长类型注释通过在解释器中键入命令,无需重新编译即可实验调用测试使用两种不同的语言进行测试和生产代码的权衡是什么? 最佳答案 我想到的缺点:根据语言的
我正在使用新的.NETCore引用程序集在VS15中开发Windows10通用应用程序,并希望引用IronPython库。不幸的是,IronPython的目标是.NETFramework而不是.NETCore。有没有人知道使用C#在.NET中运行python脚本的替代库,一种使IronPython可移植的方法,或者一种解决以.NETCore为目标的项目的方法?欢迎其他可能的解决方案。还有人知道IronPython是否会与.NETCore兼容/如果可能的话?谢谢你。PS我正在尝试执行非常简单的python脚本并显示解释器的输出。 最佳答案
我有一个应用程序,其中包含在某些窗口中使用的多个用户控件。这些用户控件之一定义此窗口中的所有其他用户控件是否应允许编辑,因此将所有CheckBox的IsEnabled属性设置为False,ComboBox和Button。然而,TextBoxes应该允许复制它们的文本,因此不应该被禁用,而只是只读的。我尝试遍历LogicalTree,但是一些自建的用户控件没有任何禁用它们的属性,但是这个用户控件中包含的控件只有按钮和文本框。这就是为什么我尝试将样式应用于所有可变元素(CheckBox、ComboBox、Button和TextBox),但是它不会起作用。在用户控件的Ressources部分
我正在尝试将以下构造IronPython模块的C#示例转换为F#。usingSystem;usingIronPython.Runtime;[assembly:PythonModule("my_module",typeof(MyModule))]publicstaticclassMyModule{publicstaticvoidhello_world(){Console.WriteLine("helloworld");}}使用PythonModule允许frommy_moduleimport*,等等。我无法弄清楚如何在F#中应用PythonModule属性。F#文档只讨论与模块相关的程序
我花了很长时间寻找可以将类似于matplotlib的功能带入.NET框架的产品。据我所知,没有什么是真正符合标准的。这是一个准确的评估吗?这是我的发现:商业:图表外汇邓达斯KitWare的ActiViz(基本上是VTK的托管版本)开源:NPlotCodePlex上的各种项目,尤其是VSLab我认为拥有一个能够从F#和IronPython等语言交互式地绘制数据的.NET项目将非常有值(value)。有人知道这样的项目吗? 最佳答案 您还可以查看F#forVisualization,我有测试版,它对于一些基本的东西来说非常好-如果你想更