我的最终目标是编写一个实用程序,让我快速设置任何对话框中的文件夹,从预设的“收藏夹”列表中进行选择。由于我只是一个业余爱好者,而不是专业人士,我更喜欢使用.NET,因为这是我最熟悉的。我确实意识到这些东西可能需要的东西比我在C#中所能做的更多。

我已经看到一些应用程序能够通过向工具栏添加按钮来扩展公共对话框(特别是对于另存为...和文件打开)(例如:对话框助手)或在最小化,最大化和/或关闭按钮旁边的标题栏中添加额外按钮。虽然我没有最模糊的想法从哪里开始,但两者都是不错的选择。

我尝试过的一种方法是将文件夹名称从我写入的应用程序“拖动”到对话框的文件名文本框中,使用我从Corneliu Tusnea的 Hawkeye运行时对象编辑器,然后通过使用WM_SETTEXT对SendMessage进行pinvoking来预先设置路径名。它(有点)有效,但感觉有点笨拙。

对此技术或实施方面的任何建议都将非常感激。或者,如果现有的实用程序已经执行此操作,请告诉我们!

更新:完成所有操作后,我想我可能会使用现有的实用工具。但是,我想知道是否是一种以编程方式执行此操作的方法。

有帮助吗?

解决方案

对于类似这样的事情,你可能会沉迷于Win32 API调用。在.Net工作意味着要制造很多东西。我担心我帮不了你,但我确实记得有一本叫做“的书。使用Visual Basic“进行子类化和挂钩可能有所帮助。它主要是为VB 6编写的,但我相信它有一些VB.Net的东西。

此外, PInvoke.Net 是一个包含大量pinvoke签名的wiki,您可以将其复制并粘贴可能有帮助。

当涉及到它时,您可能需要了解更多关于Windows如何在内部运行(消息传递等)以实现您的目标。

间谍++也可能是你的朋友。

其他提示

听起来像 AutoHotkey 的工作给我。

我是“职业” (至少我得到了程序的报酬),但我首先要看看使用AutoHotkeys的许多经过良好测试的函数来访问窗口,而不是深入研究C#/ .NET和最喜欢通过PInvoke的WinAPI。

AutoHotkey甚至提供了一些基本的用户界面控件,并且是免费的。

这是一个 AutoHotkey脚本,与您要求的非常相似

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top