У меня проблема с классом Sendkeys, так как я хочу использовать этот класс для отправки нажатия клавиши активному приложению.
В качестве первого шага я хочу протестировать нажатие клавиши {Enter}, поэтому для этого я сделал простое приложение в vb.net 2010
Public Class Form1
Public Shared data As String
Private Sub SendintText(command As String)
Try
SendKeys.SendWait(command)
Catch e As Exception
MsgBox(e.StackTrace)
End Try
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
data = TextBox1.Text.ToString
SendingText(data)
End Sub
Конечный класс
Когда я пытался бежать за {Enter}, я получил ошибку бесконечного цикла:
Необработанное исключение типа «System.StackOverflowException» произошло в System.Windows.Forms.dll
Может ли кто-нибудь помочь мне?
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: Тем временем я нашел другой пример
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
System.Threading.Thread.Sleep(2000)
SendKeys.SendWait("{ENTER}")
End Sub
Если в фоновом режиме у меня есть два приложения:
- Visual Studio
- Целевое приложение
Как я могу сосредоточиться на целевом приложении, потому что теперь, когда я запускаю форму, эта форма стала активной ... есть какое-либо решение для вызова winform из командной строки с некоторым параметром (ключ, который я хочу отправить)
Позже Edit2
сильный текст
Я отказался от идеи для формы Windows, так что в конце концов я сделал простую программу в консольном приложении, которая имитирует нажатие клавиш ... Imports System
Импортирует System.Windows.Forms
Модуль Модуль1
Sub Main(ByVal args() As String)
Dim data As String = args(0)
Console.WriteLine("You insert the : {0}", data)
System.Threading.Thread.Sleep(5000)
SendKeys.SendWait(data)
End Sub
Конечный модуль
Кстати, чтобы использовать двойные кавычки в параметре, вам нужно \ "проверить \" ... (я потратил 15 минут, чтобы выяснить это), так что это может быть полезно ...
Еще раз спасибо за информацию.