2016-06-13 2 views
0

Я новичок в программировании на C#, и я надеюсь, что это простой вопрос.Sendkeys.Send и InputSimulator не запускаются в Win 7

У меня есть этот код, который работал отлично на 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, это не стрельбе из больше клавишу ВВОД.

Я попытался также заменить SendKeys с этим:

InputSimulator.SimulateKeyPress (VirtualKeyCode.RETURN); (пришлось добавить конкретный .dll)

Но это тоже не работает.

Любой, кто может помочь?

Заранее спасибо.

Lorrido

+0

Возможный дубликат [SendKeys.send заблокирован] (http://stackoverflow.com/questions/4665952/sendkeys- send-is-blocked) – fruggiero

+0

Я добавляю ту же самую проблему, большую часть времени пропускают ее (а не код), чтобы добавить System.Threading.Thread.Sleep (5); перед вашим SendKeys.Send ("{ENTER}") ;. Окно иногда не имеет «времени» для получения ключей. – jsls

+0

Спасибо, Jrsls, но, к сожалению, это не исправление. –

ответ

0

Нет необходимости 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); 
+0

Удивительно, что это решение моей проблемы, оба решения работают , благодаря. –

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

. Я также попытался поставить 1 секунду задержки, но он все еще не запускает кнопку ENTER –

Смежные вопросы