设置“Windows对话框输入”

本文关键字:输入 对话框 Windows 设置 | 更新日期: 2023-09-27 17:53:25

我想写一个c#代码,自动处理文件上传。下面我需要实现的是从打开的文件对话框中选择一个文件:

  • 需要控制的对话框

我设法找到使用users32.dll FindWindow()方法的窗口。但我不知道如何设置输入,如果对话框和批准所选文件(选择一个文件&按OK)。

My Code so far:

[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
    }
}

设置“Windows对话框输入”

你有c#类OpenFileDialog (http://www.dotnetperls.com/openfiledialog), user32.dll不需要。

你想做的事情有点奇怪。你正在调用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
}

经过一番研究,我找到了解决办法。

我使用了windows . form . sendkeys类,它模拟键盘并将字符串发送到焦点窗口。

下面是代码:
 SendKeys.SendWait(fileInfo.FullName);
 Thread.Sleep(2000);
 SendKeys.SendWait("{ENTER}");
 Thread.Sleep(5000);