2008-08-19 35 views
6

Sản phẩm chúng tôi đang làm việc trên cho phép người dùng dễ dàng thiết lập để chạy tự động bất cứ khi nào máy tính khởi động. Điều này rất hữu ích vì sản phẩm là một phần của môi trường làm việc cơ bản của hầu hết người dùng của chúng tôi.
Tính năng này được thực hiện cách đây không lâu và trong một thời gian là tốt, nhưng khi chúng tôi bắt đầu thử nghiệm tính năng này trên Vista, sản phẩm bắt đầu hoạt động thực sự kỳ lạ khi khởi động. Cụ thể, sản phẩm của chúng tôi sử dụng một sản phẩm khác (cho phép gọi nó là X) mà nó khởi chạy bất cứ khi nào nó cần các dịch vụ của nó. Vấn đề thực tế là bất cứ khi nào X được khởi chạy ngay lập tức sau khi đăng nhập, nó bị treo hoặc báo cáo các lỗi nghiêm trọng liên quan đến truy cập đĩa (điều này xảy ra ngay cả khi X được khởi chạy trực tiếp - không thông qua sản phẩm của chúng tôi).Tại sao các ứng dụng tự động chạy của tôi hoạt động lạ trên Vista?

Điều này xảy ra bất cứ khi nào chúng tôi chạy sản phẩm của chúng tôi bằng cách đăng ký nó trong "Run" chìa khóa trong registry hay đặt một shortcut cho nó trong "Startup" thư mục bên trong "Start Menu", ngay cả khi chúng ta đặt một sự chậm trễ ~ 20 giây trước khi thực sự bắt đầu chạy. Khi chúng tôi thay đổi sự chậm trễ đến 70 giây, tất cả là tốt.

Chúng tôi đã cố gắng tái tạo sự cố bằng cách khởi chạy sản phẩm của chúng tôi theo cách thủ công ngay sau khi đăng nhập (bằng cách nhấp đúp vào lối tắt được đặt trên màn hình) nhưng không có kết quả.

Làm cách nào để các ứng dụng chạy bình thường sau một phút sau khi đăng nhập báo cáo lỗi cứng như vậy khi bắt đầu ngay sau khi đăng nhập?

Trả lời

6

Đây là hiệu ứng của tính năng mới trong Vista có tên "Boxing": Windows có nhiều cơ chế cho phép người dùng/quản trị thiết lập ứng dụng tự động chạy khi cửa sổ khởi động. Tính năng này chủ yếu được sử dụng cho một trong các mục đích sau: 1. Các chương trình là một phần của môi trường làm việc cơ bản của người dùng, chẳng hạn hành động đầu tiên mà người dùng thường sẽ thực hiện khi khởi động máy tính là bắt đầu. 2. Tất cả các loại "đại lý" nền - skype, messenger, winamp, vv

Khi quá nhiều (hoặc quá nặng) các chương trình được đăng ký để chạy khi khởi động kết quả cuối cùng là người dùng không thể thực sự làm bất cứ điều gì trong vài giây đầu tiên/phút sau khi đăng nhập, điều này có thể thực sự gây phiền toái. Trong tính năng "Boxing" của Vista:

Tóm lại, Vista buộc tất cả các chương trình được gọi thông qua phím Run để hoạt động ở mức ưu tiên thấp trong 60 giây đầu tiên sau khi đăng nhập. Điều này ảnh hưởng đến cả ưu tiên I/O I/O (được đặt thành Cực thấp) và ưu tiên CPU. Các yêu cầu I/O ưu tiên rất thấp không đi qua bộ nhớ cache của tệp, nhưng đi trực tiếp vào đĩa. Do đó, chúng chậm hơn nhiều so với I/O thông thường. Độ dài của thời gian quyền anh được đặt bằng giá trị đăng ký: "HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced \ DelayedApps \ Delay_Sec".

Đối với một lời giải thích chi tiết hơn thấy herehere

0

Chương trình có thể cần một số thông tin hơn đưa vào tính chất của nó. Nó cần phải "Run As", thay vì chỉ chạy.

Có thể ứng dụng này sẽ được phát triển thành dịch vụ thay vì chương trình được khởi chạy hoặc bạn có thể có dịch vụ khởi chạy chương trình khi xác định cửa sổ cơ hội tốt nhất.

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