Простенькая задачка, но я что-то потерялся.
Нужно прочитать путь к файлу из стандартного диалога открытия файла, зная только его hWnd
желательно без MFC, используя только API функции + С#
27.08.05 22:44: Перенесено модератором из '.NET' — AndrewVK
Может сообщение попало не в тот форум (при чем тут MFC?)? По идее, можно конечно использовать GetOpenFuleName, но может все-таки стандартный .NET диалог OpenFileDialog (или как там его

)?
Здравствуйте, impusik, Вы писали:
I>Простенькая задачка, но я что-то потерялся.
I>Нужно прочитать путь к файлу из стандартного диалога открытия файла, зная только его hWnd
I>желательно без MFC, используя только API функции + С#
Здравствуйте, impusik, Вы писали:
I>Простенькая задачка, но я что-то потерялся.
I>Нужно прочитать путь к файлу из стандартного диалога открытия файла, зная только его hWnd
I>желательно без MFC, используя только API функции + С#
Если хочешь получить путь к файлу из стандартного диалога в C# не нужно даже знать его hWnd. Всё делается очень просто:
Кидаем на форму компонент OpenFileDialog.
далее в нужном событии пишем:
if(openFileDialog1.ShowDialog == DialogResult.OK) //получает путь к файлу если нажали в диалоге кнопку "Ок"
{
string sFilePath = openFileDialog1.FileName; //в переменную sFilePath получаем путь к файлу
string[] sFilesPath = openFileDialog1.FileNames; //в массив sFilesPath получаем путь к нескольким файлам(если multiselect = true и выбрали несколько файлов)
}
ну вот в принципе и всё.
Здравствуйте, impusik, Вы писали:
I>Простенькая задачка, но я что-то потерялся.
I>Нужно прочитать путь к файлу из стандартного диалога открытия файла, зная только его hWnd
I>желательно без MFC, используя только API функции + С#
[DllImport("User32",CharSet=CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd,uint Msg,uint wParam,[MarshalAs(UnmanagedType.LPTStr)]string lParam);
public const int MAX_PATH=260;
public const int FILES=128;
public const int WM_USER=0x0400;
public const int CDM_FIRST=WM_USER+100;
public const int CDM_GETFILEPATH=CDM_FIRST+0x0001;
string file = new string(new char[MAX_PATH*FILES]);
SendMessage(targetHwnd,CDM_GETFILEPATH,(uint)file.Length,file))
Vot tak.
[DllImport("User32",CharSet=CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd,uint Msg,uint wParam,[MarshalAs(UnmanagedType.LPTStr)]string lParam);
public const int MAX_PATH=260;
public const int FILES=128;
public const int WM_USER=0x0400;
public const int CDM_FIRST=WM_USER+100;
public const int CDM_GETFILEPATH=CDM_FIRST+0x0001;
string file = new string(new char[MAX_PATH*FILES]);
SendMessage(targetHwnd,CDM_GETFILEPATH,(uint)file.Length,file))
Vot tak.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение