Eli nyt olisi tarkoitus lähettää komentoja pelin erilliseen console-ikkunaan.
Tähän mennessä olen kyllä saanut lähetettyä tekstiä muistioon, mutta en tiedä consolen textinputin nimeä joten sinne lähettäminen ei onnistu.
Olisiko jotain vinkkejä kuinka saisin textinputin nimen selville tai jotain muita keinoja lähettää tekstiä sinne?
Tässä koodi jolla teksti lähtee notepadiin jossa siis muokattavan alueen nimi on "edit":
http://pastebin.com/f4fa34d0b
Kyseessä siis vb2008
Moikka calstap!
Jos haluat lähetellä windows-sovelluksesta komentoja windowsin komentokehoteikkunaan niin jutska hoituu esim. vaikkapa seuraavasti...
Sub Button1Click(sender As Object, e As EventArgs)
Dim progid As Object = GetProcessId("cmd")
If progid Is Nothing Then
Shell("cmd", AppWinStyle.NormalFocus)
Else
AppActivate(progid)
End If
Dim cmdstr As String = _
"@echo Morjens" + Environment.NewLine
SendKeys.Send(cmdstr)
End Sub
Function GetProcessId(ByVal AppName As String) As Object
For Each proc As Process In Process.GetProcesses()
With proc
If .ProcessName.ToLower _
= AppName.ToLower Then
Return .Id
Exit Function
End If
End With
Next
Return Nothing
End FunctionMoikka taas calstap!
Mikäli sattuisi tökkimään niin tässä vielä vaihtoehto SendKeys-viritelmille...
Sub Button1Click(sender As Object, e As EventArgs)
Static cnt As Long: cnt += 1
Dim cmdstr As String = _
"@echo Morjens (" + CStr(cnt) + _
". kerta)>C:\testi.txt"
Dim Enc As New ASCIIEncoding
Dim chars As Char() = _
Enc.GetChars(Enc.GetBytes(cmdstr))
Dim sinfo As New ProcessStartInfo
With sinfo
.CreateNoWindow = False
.UseShellExecute = False
.FileName = "cmd.exe"
.WindowStyle = ProcessWindowStyle.Normal
.RedirectStandardOutput = True
.RedirectStandardInput = True
End With
Dim proc As New Process
With proc
.StartInfo = sinfo
.Start
.StandardInput.AutoFlush = True
.StandardInput.WriteLine(chars)
.WaitForExit
End With
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.