我正在尝试编写一个自动处理文件上传的C#代码。 我需要实现的是从打开文件对话框中选择一个文件:
我设法使用users32.dll
FindWindow()
方法找到了该窗口。
但我不知道如何在对话框中设置输入并批准所选文件(选择文件并按“确定”)。
我的代码到目前为止:
[DllImport("user32.dll")]
public static extern int FindWindow(string lpClassName, string lpWindowName);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_CLOSE = 0xF060;
public const int WM_SETTEXT = 0x000C;
private void ChooseFile()
{
// retrieve the handler of the window
int iHandle = FindWindow("#32770", "File Upload");
if (iHandle > 0)
{
//Choose File
//Press OK
}
}
非常感谢任何帮助。
答案 0 :(得分:1)
您拥有C#类OpenFileDialog(http://www.dotnetperls.com/openfiledialog),对于user32.dll不是必需的。
答案 1 :(得分:1)
你要做的事情有点奇怪。你正在调用Win32函数,但你需要的只是使用OpenFileDialog类,这是正确的.NET方式(MSDN OpenFileDialog)
OpenFileDialog dlg = new OpenFileDialog();
DialogResult res = dlg.ShowDialog();
if (res == DialogResult.OK)
{
string filePath = dlg.FileName;
// do your upload logic here
}
答案 2 :(得分:0)
经过各种研究后,我找到了解决方案。
我使用Windodows.Form.SendKeys类来模拟键盘并将字符串发送到聚焦窗口。
这是代码:
SendKeys.SendWait(fileInfo.FullName);
Thread.Sleep(2000);
SendKeys.SendWait("{ENTER}");
Thread.Sleep(5000);