Tôi là người viết ra chương trình Task Manager và tôi vừa nhớ ra một vài thứ…

by admin
r/techsupport

Tôi là người viết ra chương trình Task Manager và tôi vừa nhớ ra một vài thứ…

// Dịch giả: Windows Task Manager – trình quản lí tác vụ của Windows – là cái mà cứ lúc nào máy tính bị đơ là cậu nhấn tổ hợp phím Ctrl+Shift+Esc / Ctrl+Alt+Del để mở ra, và dùng nó để xóa chương trình làm cho máy đơ ấy //

Tôi nghĩ là tôi nên viết những thứ này ra trước khi tôi quên mất, và nơi tốt nhất để viết về Task Manager rõ ràng là r/techsupport rồi! Nếu có điều gì khó hiểu, tôi sẵn sàng giải thích thêm! Tôi không viết blog, vì thế câu từ có thể hơi lủng củng nhưng hãy đọc đi nhé…

Một số thông tin bản thân: Tôi từng là một nhà phát triển ứng dụng tại Microsoft (Redmond, 1993). Tôi đã viết Taskmgr tại nhà vào khoảng năm 1994 và sau đó các nhà phát triển Windows NT đã cho phép tôi thêm nó vào hệ thống mã nguồn chính, mặc dù lúc đó tôi vẫn còn là một người mới, thiếu kinh nghiệm. Điều đó đồng nghĩa với việc tôi phải đến hẳn chỗ làm để bắt đầu đánh bóng Taskmgr, biến nó thành một phần chính thức của Windows, nơi mà nó vẫn tồn tại cho đến ngày nay. Tôi được tự xác định công việc hàng ngày của mình, thật đó, và tôi rất thích điều đó! Tôi không biết bây giờ ở đó còn như vậy không, nhưng văn hóa và con người ở đó hồi đó thật là tuyệt vời.

Tất cả các điều sau đây đều dựa trên (Windows) XP (bởi vì tôi đã rời đi lâu rồi), nhưng ứng dụng cốt lõi bên trong của Task Manager thì vẫn vậy. Những điều sau đây không được sắp xếp theo một thứ tự nào:

– Khi Task Manager bị treo hoặc gặp sự cố, hãy mở một tiến trình Task Manager khác bằng cách nhấn Ctrl+Shift+Esc. Winlogon sẽ tìm kiếm xem đã có tiến trình nào đang được mở không, và nếu có thì cố gắng hồi sinh nó trong tối đa 10 giây. Nếu tiến trình Taskmgr cũ bị đơ và không phản hồi bằng một mã bí mật trong giới hạn thời gian đó, một tiến trình Taskmgr mới sẽ được mở. Nhờ đó, Taskmgr luôn luôn sẵn sàng cho bạn sử dụng, miễn là máy vẫn còn đủ tài nguyên để tải nó.

– Task Manager sẽ tải ở chế độ rút gọn nếu thiếu tài nguyên, như chỉ tải trang Processes (Tiến trình) nếu nó là tab được sử dụng. Đây là một trong số rất ít ứng dụng sẽ không “bỏ cuộc và chạy trốn” khi gặp sự cố.

– Nếu Task Manager bị hỏng từ bên trong, hãy tắt/đóng nó. Sau đó giữ phím CTRL, ALT và SHIFT khi mở lại Task Manager, và nó sẽ thiết lập lại TẤT CẢ các cài đặt của nó về cài đặt gốc. Tôi nghĩ rằng điều này áp dụng tương tự với mọi ứng dụng tôi từng viết, tôi nghĩ vậy!

– Nếu bạn thấy các thanh tiêu đề (title bars) biến mất và Task Manager chỉ hiển thị một biểu đồ, bấm click đúp (double-click) vào khoảng trắng để chuyển về chế độ bình thường. Chế độ ẩn thanh tiêu đề này là một chế độ tôi đã thêm vào để theo dõi tốc độ xử lí của Windows NT (trans: gốc “added to follow the NT clock”, chưa hiểu lắm cậu ạ, mình nghĩ nó là clock của CPU?). Bạn cũng có thể xóa đường viền của Task Manager nữa, nhưng chế độ này gây bối rối nhiều hơn giúp ích, tôi chắc chắn là thế.

– Ban đầu tôi đã vẽ các chỉ số theo dạng đèn LED 7 đoạn, nhưng hóa ra cái đó không phù hợp với một số nền văn hóa (Làm thế nào bạn thiết kế được đèn LED 7 đoạn từ phải sang trái cho người Ả Rập Xê-út hiểu được?). Vậy nên chúng chỉ tồn tại trong một hay hai phiên bản mà thôi.

– Ctrl+Shift+Esc sẽ khởi chạy Taskmgr mà không cần bất kỳ sự trợ giúp nào từ Shell, vì vậy nếu Shell/Explorer bị hỏng, hãy sử dụng tổ hợp phím này để mở Task Manager và khởi động lại Shell. Ngay cả khi thanh công cụ của bạn biến mất không hiển thị nữa, làm như trên sẽ hiện nó trở lại.

// Dịch giả: Windows Shell là giao diện người dùng cho hệ điều hành Microsoft Windows. Tưởng tượng shell là cái làm nên thanh công cụ, màn hình Start, hay các khung cửa sổ chương trình mà bạn thấy đó. Khi Shell bị hỏng, không chạy, thì máy tính vẫn chạy, nhưng các cửa sổ sẽ không có khung, màn hình trống trơn không thấy thanh công cụ ở dưới, không mở được Start menu, khi Alt+tab để chuyển chương trình sẽ thấy giao diện cơ bản thay vì giao diện đẹp lung linh của Windows 7 hay 10 bây giờ, v.v. //

– Nếu Shell không mở được chương trình nào đó hoặc bị treo, hãy thử Task Manager. Nó có một chế độ tải chương trình mà không cần bất kỳ tham chiếu nào đến shell32.dll, cho phép bạn khởi động các chương trình kiểu cmd.exe mà không cần tới Start menu.

– Bạn có thể tìm thấy file thực thi của bất kì tiến trình nào trong bảng tiến trình bằng cách nhấp chuột phải vào tiến trình đó và chọn “Hiển thị vị trí tệp” (Show file location). Bạn cũng có thể tìm kiếm nó trực tuyến (Search online), nhưng tôi không chắc là trên mạng có thông tin hữu ích về nó đâu.

– Không có gì mà Taskmgr không thể dừng – nó thậm chí sẽ tự nâng quyền và (nếu bạn có) đặt quyền gỡ lỗi cho bản thân để có thể gắn vào và dừng các ứng dụng theo cách đó nếu cần. Nếu có chương trình gì Task Manager không dừng được, khi đó máy bạn đã bị lỗi nhân hệ thống rồi.

– Có vẻ có khá nhiều người không biết Task Manager cho phép thêm nhiều cột, xóa bớt cột, kéo chúng loanh quanh để sắp xếp lại, v.v.

– Lí do có một Window class tên là “DavesFrameWndProc” là vì để Task Manager có thể thay đổi kích thước mà không bị giật hình, tôi cần các nhóm hình hộp không cố gắng vẽ đè lên nhau, vì thế tôi đã phân lớp chúng, cung cấp cho chúng wndproc của riêng mình và bật WS_CLIPSIBLING trong WM_CREATE. Ít nhất thi tôi nghĩ vậy!

– Task Manager là một trong những ứng dụng tôi tự hào nhất vì có lẽ đây là ứng dụng đầu tiên hoặc ít nhất là phức tạp nhất vào thời điểm đó có khả năng thay đổi kích thước tự do mà không bị giật hình. Hồi đó tôi rất khó tính về dung lượng và mức độ giật hình, vì vậy Task Manager chỉ nặng dưới 100 kB cho file exe và không bao giờ bị giật hình hay bị hỏng (crash), đó là điều làm tôi rất tự hào! Tất nhiên là những nhà phát triển GDI32 và User32 ở ngay phòng bên đã giúp tôi không ít.

Tôi cũng đã viết/port Space Cadet Pinball, tính năng nén thư mục, làm việc với Start menu, shell, calc, ole32, kích hoạt phần mềm và một số thứ khác. Tôi đã làm về MS-DOS trước đó nhưng tôi nghĩ là MS-DOS không còn được hỗ trợ nữa đâu!

Chỉnh sửa: Có vẻ như tính năng bình luận đã bị khóa rồi, vì vậy tôi sẽ cập nhật một lần với một số câu trả lời cho các câu hỏi thú vị/phổ biến nhất dưới đây!

– Tôi bị bối rối khi sử dụng cửa sổ dòng lệnh (command line) vì tôi không nhớ tham số truyền vào command line nào của nó cả!

– Space Cadet à, có chứ, bạn có thể chạy nó trên Windows 10, nhưng tôi nghĩ điều đó hợp thức hay hợp pháp đâu, vì vậy bạn cần sử dụng công cụ tìm kiếm yêu thích của bạn cho cái đó, nhưng nó khá dễ thôi. À và cần phải nói thêm là Maxis đã thực hiện bản Space Cadet gốc (M.Ridgeway), phiên bản của tôi chỉ là một bản viết lại bằng ngôn ngữ C 32-bit di động sử dụng đồ họa của họ thôi. Nhờ đó nó cũng chạy được trên PowerPC, Alpha và MIPS. Và đúng đó, trong bản gốc có “Chế độ Bất tử” nơi bạn có thể kéo quả bóng xung quanh, nhấp vào mục tiêu, v.v. Làm thế nào thì bạn hãy sử dụng công cụ tìm kiếm nhé.

– Những gì tôi đang làm hiện nay ư? Tôi tình nguyện dạy lập trình cho trẻ em ở trường, hoặc nói đúng hơn là tôi làm vậy cho đến gần đây. Bây giờ tôi chủ yếu lập trình và xây dựng kênh lập trình của mình, bạn có thể theo dõi tại đây: youtube.com/channel/UCNzszbnvQeFzObW0ghk0Ckw. Tôi cũng khôi phục các xe cũ, xe bán tải, v.v … Nhưng mà đó, tôi vẫn lập trình hàng ngày!

– Về việc có một số tiến trình mà Taskmgr không thể dừng được, chắc chắn có những tiến trình như vậy thời hậu XP, nhưng chúng là những giới hạn có chủ ý. Tôi nhớ đã từng đọc các bài báo về việc sử dụng Task Manager để tiêu diệt phiên winlogon gốc, làm cho hệ thống phải chủ động kiểm tra lỗi. Nhưng trên thực tế việc bất kì ai cũng có thể dễ dàng crash Windows NT theo ý muốn không phải là một ý hay, tôi nghĩ thế, vì vậy khả năng cao là Microsoft quyết định bảo vệ mọi người khỏi chính họ bằng cách không cho phép Task Manager dừng win32k.sys và các tiến trình thiết yếu khác.
_____________________
Link Reddit: https://redd.it/gqb915
_____________________
Bài đăng của bạn Tuấn Linh trong group: https://www.facebook.com/groups/rvn.group/permalink/554938308749715

You may also like

Leave a Comment