Tag: 自动化

将剪贴板中的文本发送到应用程序,如记事本(C#或Powershell)

我希望能够将剪贴板(在Windows中)上的文本发送到应用程序。 例如,我正在写一个记事本中的文本文件,我想将一部分复制到一个新文件中..我想将它复制到剪贴板然后使用热键启动发送的应用程序或powershell脚本将文本复制到记事本的新实例。 如何在C#或Powershell中实现这一目标? 解决方案:使用AutoHotKey ^+c:: Send ^c Run Notepad WinWait Untitled – Notepad WinActivate Send ^v return

如何在非表单应用程序中生成击键

所以我有一个庞大的程序,并决定我应该在一个单独的线程中运行其中一个方法。 所以我把方法放在一个单独的类中,在我的表单上激活它。 它似乎工作正常我想要它,直到它分手它给我这个错误: SendKeys无法在此应用程序内运行,因为应用程序未处理Windows消息。 更改应用程序以处理消息,或使用SendKeys.SendWait方法。 我试着在线寻找答案。 我想我看到了一些关于SendKeys如何只在Form或其他东西中工作的东西。 任何人都可以告诉我一种不使用SendKeys来模拟击键的方法,或者是一种让SendKeys在不同的非forms线程中工作的方法吗?

AutoMapper – 为什么要覆盖整个对象?

我不明白为什么它会覆盖我的整个对象。 原因是我从db获取了我的User对象,我想从DTO分配新值。 它不是仅仅添加这些新值,而是创建具有新值但前面所有值都设置为null新对象。 我怎样才能确保在这种情况下他会“升级”我的对象,而不是创建新对象? 脚本 /users/{id} – PUT // User has id, username, fullname // UserPut has fullname public HttpResponseMessage Put(int id, UserPut userPut) { var user = _db.Users.SingleOrDefault(x => x.Id == id); // filled with properties Mapper.CreateMap(); user = Mapper.Map(userPut); // now it has only “fullname”, everything else set to null // I can’t […]

SendMessage模拟右键单击崩溃目标应用程序

我正在编写一个C#自动化工具。 由于Microsoft UI Automation不提供任何模拟右键单击或提升上下文菜单的方法,因此我使用SendMessage来执行此操作。 我宁愿不使用SendInput因为我不想抓住焦点。 但是,当我调用SendMessage时,它会崩溃目标应用程序。 这是我的代码: [DllImport(“user32.dll”, CharSet = CharSet.Auto)] static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam); public void RightClick(T element) where T: AutomationElementWrapper { const int MOUSEEVENTF_RIGHTDOWN = 0x0008; /* right button down */ const int MOUSEEVENTF_RIGHTUP = 0x0010; /* right button up */ var point = element.Element.GetClickablePoint(); var […]

C#探测并捕获Javascript Alert()和Confirm()

所以我已经做了一段时间的研究而且我已经走到了尽头。 我正在做一些IE自动化。 在C#/ .NET中,如何探测和使用javascript alert()或confirm()以便我可以执行诸如获取文本并单击OK \ Cancel按钮之类的操作? 更新 : 我需要重申一下:我需要能够从alert()或confirm()中提取并validation文本,并向其发送OK或Cancel click。 这种测试的一个例子是确保当我点击删除时,confirm()没有说“你确定你想去墨西哥吗?” 或除了正确信息之外的任何其他内容 为了以防万一,请允许我重申:出于本次测试的目的,我无法控制相关网站的来源。 最后,我正在使用SHDocVw.InternetExplorer 。

使用C#中的参数打包IDispatch调用(使用DISPPARAMS)

我正在使用Invoke对支持IDispatch的旧COM对象进行后期绑定。 这似乎是必要的,因为.NET的Type.GetMethod Type.InvokeMember似乎不适用于这些对象。 以下代码适用于从对象获取属性,调用者将属性名称作为字符串传递,以获取具有后期绑定的属性值。 该类在其构造函数中获取一个对象,并将this.idisp(和this.lcid)设置为该对象的接口指针(Critiques welcome!) public object InvokeGet(string propertyName) { int id = GetDispID(propertyName); IntPtr[] pArgErr = default(IntPtr[]); object pVarResult; System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams = default(System.Runtime.InteropServices.ComTypes.DISPPARAMS); System.Runtime.InteropServices.ComTypes.EXCEPINFO pExcepInfo = default(System.Runtime.InteropServices.ComTypes.EXCEPINFO); Guid guid = new Guid(); int result = this.idisp.Invoke(id, ref guid, (uint)this.lcid, (ushort)System.Runtime.InteropServices.ComTypes.INVOKEKIND.INVOKE_PROPERTYGET, ref pDispParams, out pVarResult, ref pExcepInfo, pArgErr); if (result != 0) { throw […]

如何使用自动脚本在一天中的不同时间测试我的Web应用程序的性能?

基本上,我有一个使用asp.net mvc 4框架的Web应用程序。 我使用C#作为我的后端。 在不同的时间,我注意到Web应用程序滞后或者速度很慢,但我想知道一天中的哪些时间以及其他一些有助于确定如何优化应用程序的信息。 我希望能够编写一个自动脚本,在一天中的不同时间测试Web应用程序,并将其与应用程序的缓慢相关联。 我是测试自动化的新手,所以我想知道从哪里开始编写脚本这些东西。 特别是对于asp.net网络应用程序?

Windows.Automation中的LegacyIAccessible

如何使用C#获取LegacyIAccessible.State和其他LegacyIAccessibles of AutomationElement? 就像工具中的Inspect.exe一样。

Visual Studio 2010自动化和环境变量

我正在使用C#和VS2010自动化打开VS2010解决方案。 我打开这样的解决方案: Type type = Type.GetTypeFromProgID(“VisualStudio.DTE.10.0”, true); Object comObject = Activator.CreateInstance(type); … sol.Open(solution_full_path); 我遇到的问题是,当我创建VisualStudio.DTE.10.0对象的实例时,它从winlogon.exe启动devenv.exe进程,它看到的环境与我的应用程序完全不同。 某些环境变量对于解析项目中设置的某些路径很重要。 有没有我可以如何影响devenv.exe进程的环境变量? 有什么方法可以使用VS2010自动化接口注入环境/属性吗?

从Windows C#Canon SDK与PTP或MTP对齐图片

我希望得到一些关于实现看似简单目标的一般指导。 我有一个数码单反相机(佳能EOS 50D),需要编写一个应用程序,告诉相机拍照。 我还需要将图片传输到计算机,并可能将其从相机的存储中删除。 奖励是在我的应用程序中从相机获得实时预览。 我的环境将是Windows(XP Pro或Vista Enterprise)和.Net 3.5(C#)。 我做了一些研究,发现了一些选择。 我知道的一个会起作用,但限制我将来只使用佳能相机。 我发现并从佳能下载了一个SDK,它提供了很多这方面的function。 我查看了SDK,虽然它很广泛并且用C语言编写,但它确实有C#包装器,可以加快开发速度。 我发现的另一个选项叫做Windows便携设备。 显然,它是一个API,可以与实现PTP和MTP标准的设备进行通信。 它是基于COM的,据我所知,它没有.Net包装器。 然而,这不是一个节目限制。 我可以P / Invoke我需要的function或写一个托管C ++ DLL在我的应用程序中使用与相机交谈。 我正在寻找有WPD经验的人给我指点。 我仔细阅读了文档,并看到了传输图像和删除图像的参考。 但是,我没有看到提及拍照,获取预览图像或说焦点/自动对焦的命令。