Sendkeys.Send和InputSimulator在Win 7中没有触发

时间:2016-06-13 13:40:37

标签: c# .net visual-studio

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

我有这个代码在Visual Studio 2010上使用WinXP正常工作:

        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键了。

我还尝试用这个替换SendKeys:

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

但那也不起作用。

任何可以请求帮助的人?

提前致谢。

Lorrido

2 个答案:

答案 0 :(得分:1)

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

请尝试以下方法:

var initialDirectory = @"C:\BARCODE";
var fileName = "modulaListaV.txt";
var fullFileName = Path.Combine (initialDirectory ,fileName );

richTextBox3.SaveFile(fullFileName,RichTextBoxStreamType.PlainText);

或更短:

richTextBox3.SaveFile(@"C:\BARCODE\modulaListaV.txt",RichTextBoxStreamType.PlainText);

答案 1 :(得分:0)

    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);
    }