2010-05-05 2 views
2

Я пытаюсь просмотреть каталог в диалоговом окне «Открыть файл/Сохранить». Я мог бы получить ручку общего диалога, а также его окно управления. Но я не знаю, как указать имя файла и нажмите кнопку «Сохранить/Открыть», чтобы сохранить/открыть файл. Я не смог найти параметры SendMessage, необходимые для выполнения этих действий. Какие-либо предложения?File Open/Save Dialog

+0

Моя проблема была решена ... –

+0

Что я сделал здесь CustomViewAPI.Win32.SendMessage (handleWnd, CommonConst.WM_SETTEXT, this.CurrentSearchPath. Длина, this.CurrentSearchPath); CustomViewAPI.Win32.SendMessage ((IntPtr) handleWnd, CommonConst.WM_SETFOCUS, IntPtr.Zero, IntPtr.Zero); CustomViewAPI.Win32.SendMessage ((IntPtr) handleWnd, CommonConst.WM_KEYDOWN, (IntPtr) CommonConst.VK_RETURN, IntPtr.Zero); CustomViewAPI.Win32.SendInput (1, ref structInput, Marshal.SizeOf (новый CommonStruct.INPUT())); –

ответ

0

Я предполагаю, что вы пытаетесь контролировать другое приложение, и именно поэтому вы получаете ручку окна и т.д.

Если это так, то вы могли бы использовать SendKeys послать Alt-N для выберите поле имени, затем имя файла, затем нажмите Alt-S для сохранения.

Если вы просто пытаетесь использовать диалог «Открыть» или «Сохранить» в своей собственной программе, вам следует использовать встроенные компоненты OpenFileDialog и SaveFileDialog.

+0

Я использую свой собственный пользовательский вид, чтобы показывать файлы и папки, а также использовать окно поиска для перехода к определенной папке. В этом случае Как отправить сообщение в диалоговое окно «Открыть файл», чтобы принудительно применить его для изменения текущей отображаемой папки. например Если в окне в настоящее время отображается «C: \», я хочу, чтобы API (или любой фрагмент кода) применял это окно, чтобы изменить текущую папку на «D: \» –

0

Какие действия вы пытаетесь сделать? У вас есть сообщение, помеченное как C#, но я не могу придумать причину, чтобы получить hwnds и использовать SendMessage.

Например, в WPF OpenFileDialog/SaveFileDialog вы можете установить свойство FileName (или имена файлов) или установить InitialDirectory.

+0

Я использую свой собственный пользовательский вид, чтобы показать файлы и папки, а также с помощью окна поиска, чтобы перейти к определенной папке. В этом случае Как отправить сообщение в диалоговое окно «Открыть файл», чтобы принудительно применить его для изменения текущей отображаемой папки. , например. Если в окне в настоящее время отображается «C: \», я хочу, чтобы API (или любой фрагмент кода) применял это окно для изменения текущей папки на «D: \». –

2

Почему вы используете SendMessage? Почему бы не использовать встроенные классы OpenFileDialog и SaveFileDialog?

Смотрите здесь подробности о OpenFileDialog:

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

+0

Я использую свой собственный пользовательский вид, чтобы показать файлы и папки, а также с помощью окна поиска, чтобы перейти к определенной папке. В этом случае Как отправить сообщение в диалоговое окно «Открыть файл», чтобы принудительно применить его для изменения текущей отображаемой папки. , например. Если в окне в настоящее время отображается «C: \», я хочу, чтобы API (или любой фрагмент кода) применял это окно для изменения текущей папки на «D: \». –

+0

Я не уверен, как это сделать. Мое первое предложение состояло в том, чтобы закрыть диалог, а затем снова открыть его с помощью нового 'InitialDirectory', но если это не жизнеспособное решение, я бы посмотрел на подкласс класса' FileDialog' и посмотрел, можете ли вы добавить эту функциональность таким образом. –

Смежные вопросы