Chciałbym mieć okno konsoli osadzone w Winformie. Czy jest jakiś sposób to zrobić?Jak dołączyć konsolę do WinForm?
Odpowiedz
Oh! Chcesz konsoli w oknie. Możesz napisać własne i potokowe wejście do i ze stdout i stdin. Lub możesz osadzić powershell, ale nie ma kontroli nad pieczeniem. - rerun Paź 12 '10 o 19:49
Wszystko, co musisz zrobić, to wywołać funkcję Windows API AllocConsloe następnie korzystania z normalną klasę konsoli Oto kodu formularza
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace waTest
{
public partial class Form1 : Form
{
[DllImport("Kernel32.dll")]
static extern Boolean AllocConsole();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (!AllocConsole())
MessageBox.Show("Failed");
Console.WriteLine("test");
string input = Console.ReadLine();
MessageBox.Show(input);
}
}
}
@rerun, co to jest, nie można znaleźć Kernal32.dll? To jest system x86. –
@rerun, musi być tak, że ustawiłem to jako aplikację konsolową, a nie jako aplikację WinForm. Zakładam, że Form1_Load ma być uruchamiany po załadowaniu formularza, czy to prawda? Jak uruchomić? –
Po prostu utwórz aplikację WinForm z 1 formularzem i kliknij dwukrotnie na formularzu, a utworzysz formularz form_load, możesz jednak wywoływać alokację wszędzie, ponieważ tylko jedna konsola może być powiązana z procesem. – rerun
Można to zrobić w zasadzie przez:
- Tworzenie cmd proces
- Ustawienie elementu nadrzędnego dla tego procesu (na przykład dla panelu)
- Podłącz zdarzenia, aby zmienić rozmiar w razie potrzeby
- Zabij proces, gdy proces główny nie potrzebuje już procesu cmd.
Musisz zadzwonić bezpośrednio do API (potrzebujesz SetParent i SetWindowPos). Oto artykuł o tym, jak to zrobić z przykładów:
http://www.geekpedia.com/tutorial230_Capturing-Applications-in-a-Form-with-API-Calls.html
- 1. Jak dołączyć pomoc? w pasku tytułu winform
- 2. Jak dołączyć proces do gdb
- 3. Chrome DevTools konsolę przedłużacza
- 4. Jak dodać konsolę jak element do programu aC# winforms
- 5. Julia: Jak wyczyścić konsolę
- 6. DataBinding do WinForm
- 7. Jak dołączyć "do łańcucha znaków
- 8. Jak dołączyć javascript do Asciidoc?
- 9. VBScript, jak dołączyć do WScript.Arguments?
- 10. Jak dołączyć libsodium.net do ASP.NET
- 11. Jak dołączyć tekst do pliku?
- 12. Jak dołączyć kawałek do łańcucha?
- 13. Jak dołączyć deklarację do XElement.ToString()
- 14. Jak przekonwertować projekt WinForm do projektu wpf
- 15. Jak dodać pomoc do winform C# application
- 16. Jak używać async do zwiększenia wydajności WinForm?
- 17. Jak wyprowadzać LogCat na konsolę?
- 18. datagrip - Jak ponownie podłączyć konsolę?
- 19. Jak zainstalować NodeBox na konsolę
- 20. Xcode 4: Jak wyświetlić konsolę?
- 21. Jak dołączyć debugera Rubymine IDE do procesu powłoki?
- 22. Migracja z WinForm do WPF
- 23. jquery dołączyć do okna
- 24. Resetuj konsolę IRB
- 25. Zapis na szynach konsolę
- 26. Czy mogę przekonać konsolę do wyświetlania chińskiego?
- 27. Data wydruku na konsolę
- 28. Utwórz konsolę "Polecenie"
- 29. Jak dołączyć plik javaScript do xslt
- 30. Jak dołączyć ciąg do właściwości w ant?
Dlaczego ta odpowiedź (jedyna, która jest prawdziwa odpowiedzią) nie jest na górze? –