2010-05-05 169 views
2

我正在尝试浏览文件打开/保存对话框中的目录。我能够获得通用对话框以及其控制窗口的句柄。但我不知道如何提供一个文件名并点击保存/打开按钮来保存/打开一个文件。我无法找到执行这些操作所需的SendMessage参数。有什么建议么?文件打开/保存对话框

+0

我的问题已经解决了... – 2010-05-10 06:31:13

+0

什么,我在这里做 CustomViewAPI.Win32.SendMessage(handleWnd,CommonConst.WM_SETTEXT,this.CurrentSearchPath。 Length,this.CurrentSearchPath); CustomViewAPI.Win32.SendMessage((IntPtr)handleWnd,CommonConst.WM_SETFOCUS,IntPtr.Zero,IntPtr.Zero); (IntPtr)handleWnd,CommonConst.WM_KEYDOWN,(IntPtr)CommonConst.VK_RETURN,IntPtr.Zero); CustomViewAPI.Win32.SendInput(1,ref structInput,Marshal.SizeOf(new CommonStruct.INPUT())); – 2010-05-10 06:33:49

回答

0

我假设你正在试图控制不同的应用程序,这就是为什么你所得到的窗口句柄等

如果是这样的话,你可以使用SendKeys为Alt-N发送到选择名称字段,然后选择文件名,然后按Alt-S来保存。

如果您只是想在自己的程序中使用打开或保存对话框,那么您应该使用内置的OpenFileDialog和SaveFileDialog组件。

+0

我使用自己的自定义视图来显示文件和文件夹,并使用搜索框跳转到特定文件夹。在这种情况下,如何将消息发送到“文件打开/保存”对话框以强制更改当前显示的文件夹。例如如果窗口当前显示“C:\”,我想要一个API(或任何一段代码)来强制该窗口将当前文件夹更改为“D:\” – 2010-05-05 08:30:23

0

你想要做什么动作?你有这个帖子被标记为C#,但我想不出有什么理由获得hwnds并使用SendMessage。

例如,在WPF OpenFileDialog/SaveFileDialog中,您可以设置属性FileName(或FileNames)或设置InitialDirectory。

+0

我正在使用自己的自定义视图来显示文件和文件夹,并使用搜索框跳转到特定的文件夹。在这种情况下,如何将消息发送到“文件打开/保存”对话框以强制更改当前显示的文件夹。 例如如果窗口当前显示“C:\”,我想要一个API(或任何一段代码)来强制该窗口将当前文件夹更改为“D:\”。 – 2010-05-05 07:50:37

2

为什么使用SendMessage?为什么不使用内置的OpenFileDialogSaveFileDialog类?

看到这里,详细了解OpenFileDialog

http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.aspx

+0

我使用自己的自定义视图来显示文件和文件夹,并使用搜索框跳转到特定文件夹。在这种情况下,如何将消息发送到“文件打开/保存”对话框以强制更改当前显示的文件夹。 例如如果窗口当前显示“C:\”,我想要一个API(或任何一段代码)来强制该窗口将当前文件夹更改为“D:\”。 – 2010-05-05 07:49:31

+0

我不知道该怎么做。我的第一个建议是关闭对话框,然后用一个新的'InitialDirectory'重新打开它,但如果这不是一个可行的解决方案,我会查看子类FileDialog类,看看你是否可以这样添加功能。 – 2010-05-05 08:16:49

相关问题