バッチパイプを使用するか、Sendkeysメソッドを使用して " Y " キーをアクティブなウィンドウ (プロセス) に送信します。
バッチで:
Echo Y|ctrbld.exe warp7.p
バッチ パイプを使用する VBS の場合:
Set Shell = CreateObject("WScript.Shell")
Shell.RUN "CMD /k ""Echo Y|CMD.exe /k Process.exe"""
SendKeys を使用する VBS の場合:
Set Shell = CreateObject("WScript.Shell")
Shell.RUN "CMD.exe /K"
wscript.sleep(500) ' Wait 500 ms for CMD to fully load, change it if you need more time.
Shell.AppActivate "CMD"
Shell.SendKeys "Y"
C# でバッチ パイプを使用する (VB.Net で開発しているため、構文が間違っている可能性があります)
Process.start("CMD.exe", "/K ""Echo Y|CMD /K Process.exe""")
C# で SendKeys を使用(VB.Net で開発しているため、構文が間違っている可能性があります)
Process.start("Process.exe")
Threading.thread.sleep(500) // Wait for process to load
AppActivate(Handle) // Activate the process window passing a Window Handle
SendKeys.Send("Y")
また、おまけとして、以前に書いたこの関数を提供します。オンライン/オフライン コード トランスレータを使用して C# に変換できます。私のコードでは、キーを送信するためにウィンドウをアクティブにする必要はありません (ただし、キーのみであり、特別なものではありません)。キー)。
Windows メッセージを使用する VB.NET の場合:
#Region " SendKeys To App "
' [ SendKeys To App Function ]
'
' // By Elektro H@cker
'
' Examples :
' SendKeys_To_App("notepad.exe", "By Elektro H@cker" & vbCrLf & "... :D")
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const EM_REPLACESEL = &HC2
Private Function SendKeys_To_App(ByVal App_Name As String, ByVal str As String) As Boolean
Dim nPadHwnd As Long, ret As Long, EditHwnd As Long
Dim APP_WindowTitle As String
If App_Name.ToLower.EndsWith(".exe") Then App_Name = App_Name.Substring(0, App_Name.Length - 4) ' Rename APP Name
Dim ProcessArray = Process.GetProcessesByName(App_Name)
If ProcessArray.Length = 0 Then
Return False ' App not found
Else
APP_WindowTitle = ProcessArray(0).MainWindowTitle ' Set window title of the APP
End If
nPadHwnd = FindWindow(App_Name, APP_WindowTitle)
If nPadHwnd > 0 Then
EditHwnd = FindWindowEx(nPadHwnd, 0&, "Edit", vbNullString) ' Find edit window
If EditHwnd > 0 Then ret = SendMessage(EditHwnd, EM_REPLACESEL, 0&, str) ' Send text to edit window
Return True ' Text sended
Else
Return False ' Name/Title not found
End If
End Function
#End Region