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 Function
Moikka 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 Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.