2010-02-25 55 views
9

Tôi đang cố viết ứng dụng bảng điều khiển. Nó có giao diện điều khiển ban đầu của nó, chúng ta hãy đặt tên cho nó an ủi A. Và tôi muốn ứng dụng này để làm những điều sau đây qua C#:Chính xác "Bảng điều khiển" là gì?

  1. mở một giao diện điều khiển B trong chủ đề khác, sau đó nhận được thông tin từ A và đầu ra nó để B;
  2. nhập lệnh trong A, chẳng hạn như dir và hiển thị kết quả bằng B;

trong khi làm những điều trên (vẫn chưa xong. X_X), tôi thấy mình thiếu một đường hiểu biết về gì một cửa sổ giao diện điều khiển là, và làm thế nào nó được gán cho một ứng dụng giao diện điều khiển, đặc biệt là bảng điều khiển đầu tiên khi ứng dụng bảng điều khiển của tôi bắt đầu chạy. Một số người có thể làm sáng tỏ tôi không?

Có phải cửa sổ bảng điều khiển thực là vùng bộ nhớ trong bộ nhớ video? Hay cái gì khác? Các luồng khác nhau trong cùng một quy trình có giao diện điều khiển riêng của nó cho riêng I/O của nó không?

Rất cám ơn ...

Hi, guys, bây giờ tôi đang sử dụng một ứng dụng giao diện điều khiển để bắt đầu một ứng dụng giao diện điều khiển trong một quá trình mới. Vì vậy, tôi có thể có 2 đầu ra bàn giao tiếp cùng một lúc.


Giờ đây tôi hiểu rằng, đối với hệ điều hành Windows, một bảng điều khiển là một cửa sổ đặc biệt, hệ điều hành được gán cho ứng dụng không có giao diện người dùng. Hệ điều hành Windows xử lý việc nối dây giữa cửa sổ bảng điều khiển do hệ thống chuẩn bị với ứng dụng UI-less của chúng tôi.

+11

Bàn điều khiển là một phần của máy tính có đèn và bật lên, và có thể là đầu đọc băng giấy, trên các mẫu đắt tiền hơn. –

Trả lời

6

Trong thuật ngữ Windows, Bảng điều khiển là cửa sổ GUI văn bản mà bạn thấy khi bạn chạy "cmd.exe". Nó cho phép bạn viết văn bản và đọc văn bản từ, cửa sổ không có cửa sổ có bất kỳ giao diện người dùng chrome nào khác như thanh công cụ, menu, tab, v.v ..

Để bắt đầu, bạn sẽ muốn tải Visual Studio , tạo một dự án mới và chọn "Ứng dụng Console". Thay đổi mã boilerplate mà Visual Studio tạo ra để:

using System; 
using System.Text; 

namespace MyConsoleApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.Write("Hello, world!"); 
      Console.ReadKey(); 
     } 
    } 
} 

Khi bạn chạy ứng dụng, cửa sổ bảng điều khiển sẽ mở ra với dòng chữ "Hello, world!" và nó sẽ vẫn mở cho đến khi bạn nhấn một phím. Đó là một ứng dụng giao diện điều khiển.

Cửa sổ bảng điều khiển có phải là khu vực bộ nhớ trong bộ nhớ video không? Hay cái gì khác?

Đó không phải là khu vực bộ nhớ trong bộ nhớ video, đó là "thứ gì đó khác". Trang Wikipedia Win32 console cung cấp cho một sự hấp dẫn khá mạnh mẽ của các ins and outs.

+2

"là giao diện văn bản" ummmm .... không phải là GUI (Giao diện người dùng đồ họa) có nghĩa là đồ họa, vì vậy bàn điều khiển không phải là giao diện đồ họa (hoàn toàn thiếu đồ họa, giảm giá nghệ thuật ASCII). Đó là toàn bộ điểm phân biệt một cái gì đó như có một GUI, nó không có một giao diện thuần túy dựa trên ASCII. –

+0

Bàn điều khiển thường được gọi là CLI (giao diện dòng lệnh) hoặc CLUI (giao diện người dùng dòng lệnh) –

+0

@Grant, có thể là "cửa sổ giao diện người dùng văn bản" có thể là cách tốt hơn để đặt nó. Các ngón tay của tôi bị mắc kẹt G trong đó mà không có tôi thậm chí suy nghĩ về nó, hoặc nhận ra! =) – Rob

2

Ứng dụng bảng điều khiển chỉ có một cửa sổ. Nó không có chức năng quản lý cửa sổ để sinh ra "console" con.

Bạn có thể bắt đầu các ứng dụng giao diện điều khiển bổ sung, nhưng đây là các thực thể riêng biệt.

+0

@Johannes - bạn nên đăng bài đó như một câu trả lời vì điều đó dường như là những gì OP là sau. –

+0

@Johannes Rossel: Bạn có thể tạo nhiều bảng điều khiển nhưng quá trình của bạn chỉ có thể được liên kết với một bộ xử lý tại một thời điểm. –

1

A (OS) giao diện điều khiển là một quá trình (có chứa có một hoặc nhiều chủ đề các vụ hành quyết, tất cả trong số họ chia sẻ không gian bộ nhớ giống nhau), và quá trình này có:

  • đầu vào tiêu chuẩn (một dòng byte đầu vào), những gì bạn quan trọng trong
  • đầu ra tiêu chuẩn (một dòng sản lượng byte), những gì các bản in chương trình
  • sai số chuẩn (một dòng sản lượng byte), những gì chương trình in khi khiếu nại về điều gì đó

Vì vậy, nếu bạn muốn tạo một bảng điều khiển khác (từ .Net) và liên kết đầu vào/đầu ra, tôi hiểu bạn phải tạo một quy trình (thực thi "cmd.exe" theo ví dụ).

Tôi không biết API của .Net cho thao tác quy trình nhưng nếu nó giống như Java bạn có thể treo lên stdin, ra và err để bạn có thể chơi với quá trình tạo của bạn từ bản gốc.

1

Ứng dụng cửa sổ có thể có một bảng điều khiển hoặc không có bảng điều khiển, ứng dụng này không được có nhiều bảng điều khiển. Xem tài liệu cho AllocConsole. Bàn điều khiển về cơ bản là mô phỏng các ngày 'trước Windows' khi có nghĩa đen là 'bảng điều khiển điều khiển' tức là bàn phím và màn hình được gắn với máy tính lớn. Để thực hiện những gì bạn muốn, bạn có thể sinh ra một tiến trình khác với giao diện điều khiển riêng của nó và giao tiếp giữa hai hoặc tạo một ứng dụng GUI trông giống như một cửa sổ giao diện điều khiển.

Các vấn đề liên quan