Đó là một câu hỏi rất hay, đặc biệt nếu bạn có nhiều HTA, như tôi làm.
Giải pháp của tôi là liên kết phần mở rộng tệp .hta với tập lệnh thay vì MsHta.exe. Kịch bản lệnh này lấy tên Hta và lập luận từ dòng lệnh. Sau đó, nó tạo ra một bản sao MsHta.exe trong một thư mục dành riêng cho các bản sao đó và đặt cho nó tên của Hta. Cuối cùng, nó chạy .exe được sao chép với tên hta và args.
Chẳng hạn, trình kiểm tra trạng thái modem của tôi, ModemStatus.hta, được thực thi bởi một bản sao của MsHta.exe có tên ModemStatus.hta.exe - và đó là những gì xuất hiện trong Trình quản lý tác vụ.
Phương pháp này nhất thiết phải phổ biến các bản sao của MsHta.exe, đó là lý do tại sao tôi đặt tất cả chúng vào một thư mục chuyên dụng. Đương nhiên, thư mục được kiểm tra để xem liệu nó đã có bản sao hay chưa thay vì tạo một bản mới mỗi khi Hta chạy. Ban đầu tôi đã thử nó bằng các liên kết cứng nhưng tất cả chúng đều được phân giải thành MsHta.exe nên các bản sao là cần thiết.
Tôi nói "liên kết phần mở rộng tệp .hta với tập lệnh" nhưng thực ra tôi là một exe được biên dịch từ tập lệnh AutoIt. AutoHotKey cũng sẽ hoạt động tốt và cũng có thể được biên dịch thành exe, nhưng bạn cũng có thể thực hiện công việc bằng cách sử dụng một cái gì đó được viết dưới dạng WScript.