.net - 如何以编程方式操作任何 Windows 应用程序的通用对话框?

标签 .net filedialog

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

我见过一些应用程序可以通过向工具栏添加按钮(例如: Dialog Box Assistant )或在标题栏中放置额外的按钮来扩展通用对话框(特别是另存为...和文件打开)最小化、最大化和/或关闭按钮。尽管我不知道从哪里开始,但两者都是不错的选择。

我尝试过的一种方法是将我编写的应用程序中的文件夹名称“拖动”到对话框上的文件名文本框,使用我从 Corneliu Tusnea 的 Hawkeye Runtime Object Editor 中学到的鼠标 Hook 技术将其突出显示。 ,然后通过使用 WM_SETTEXT 调用 SendMessage 来添加路径名。它(有点)有效,但感觉有点笨拙。

对此技术或实现的任何建议将不胜感激。或者,如果现有的实用程序已经这样做了,请告诉我!

更新 :当一切都说完后,我想我可能会使用现有的实用程序。但是,我想知道是否有办法以编程方式执行此操作。

最佳答案

听起来像是 AutoHotkey 的工作对我来说。

我是一个“专业人士”(至少我得到了编程的报酬),但我首先会考虑使用 AutoHotkeys 的许多经过良好测试的函数来访问 Windows,而不是通过 PInvoke 深入研究 C#/.NET 和 WinAPI。

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

这是一个 AutoHotkey script这与您的要求非常相似。

关于.net - 如何以编程方式操作任何 Windows 应用程序的通用对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/125710/

相关文章:

.net - 有没有类似 TypeMock 的开源 mocking 框架?

c# - 第一次调用 BenchmarkDotNet

python - 如何用印地语将数据写入文件?

ms-access - 在 MS Access 中通过 FileDialog 保存时如何过滤报表对象

C# 与 Express : "This method is reserved for future use" - what does it mean?

c# - 如何从基类列表中获取子类对象?

c# - 在非静态类中锁定静态变量是否安全?

python - 文件对话框、tkinter 和打开文件

java - JFileChooser 与 JDialog 与 FileDialog

python - 获取带有 tkinter.filedialog.asksaveasfilename 的文件名以附加到其中