Sendkeys.Send 和 InputSimulator 在 Win 7 中未触发



我是C#编程的新手,我希望这是一个简单的问题。

我有这段代码在带有WinXP的Visual Studio 2010上运行良好:

        SaveFileDialog saveFile2 = new SaveFileDialog();
        saveFile2.InitialDirectory = "C:\BARCODE";
        saveFile2.FileName = "modulaListaV.txt";
        saveFile2.DefaultExt = "*.txt";
        //saveFile2.Filter = ".txt File|*.txt";
        SendKeys.Send("{ENTER}");
        if (saveFile2.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
             saveFile2.FileName.Length > 0)
        {
            richTextBox3.SaveFile(saveFile2.FileName, RichTextBoxStreamType.PlainText);
        }         

在我迁移到Win 7和Visual Studio 2015之后,它不再触发ENTER键。

我还尝试用这个替换发送密钥:

InputSimulator.SimulateKeyPress(VirtualKeyCode.RETURN);(必须添加特定的.dll)

但这也行不通。

有人可以帮忙吗?

提前谢谢。

洛里多

不需要 SaveFileDialog,因为您不需要用户干预/输入。

请尝试以下操作:

var initialDirectory = @"C:BARCODE";
var fileName = "modulaListaV.txt";
var fullFileName = Path.Combine (initialDirectory ,fileName );
richTextBox3.SaveFile(fullFileName,RichTextBoxStreamType.PlainText);

或更短:

richTextBox3.SaveFile(@"C:BARCODEmodulaListaV.txt",RichTextBoxStreamType.PlainText);
    SaveFileDialog saveFile2 = new SaveFileDialog();
    saveFile2.InitialDirectory = "C:\BARCODE";
    saveFile2.FileName = "modulaListaV.txt";
    saveFile2.DefaultExt = "*.txt";
    //saveFile2.Filter = ".txt File|*.txt";
    System.Threading.Thread.Sleep(1000)
    SendKeys.Send("{ENTER}");
    if (saveFile2.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
         saveFile2.FileName.Length > 0)
    {
        richTextBox3.SaveFile(saveFile2.FileName,RichTextBoxStreamType.PlainText);
    }      

最新更新