Dừng cửa sổ taskeng.exe bật lên


18

Tôi có một số quy trình được lên lịch trong môi trường Windows 7 của mình, chủ yếu để sao lưu, được cho là chạy trong nền.

Tuy nhiên, thay vì chỉ làm việc lặng lẽ ở chế độ nền, trình lập lịch tác vụ bật lên một cửa sổ "taskeng.exe" màu đen (giống như bàn điều khiển). Cửa sổ đi trước tất cả các cửa sổ khác. May mắn thay, nó không lấy cắp bàn phím của tôi, nhưng nó chặn tầm nhìn về mọi thứ.

taskeng.exe

Có cách nào để tránh cửa sổ này - hoặc ít nhất là nó xuất hiện ở chế độ nền mà không lấy cắp tiêu điểm VISUAL của tôi không?

Ví dụ được chỉnh sửa sau khi tiền thưởng được áp dụng:

Đây là nỗ lực cuối cùng của tôi trong việc sử dụng công cụ WScript (trong tệp có tên RunSignatured.bat):

Set Shell = CreateObject("WScript.Shell")
Shell.Run C:\Users\danh\Bin\signatured.bat, 0, False

Tệp Signatured.bat chứa:

cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature

Tôi đang tìm giải pháp cho vấn đề này hoạt động trên Vista SP2 mà không cần cài đặt các công cụ khác và sẽ thực thi một ứng dụng Java đơn giản (nhưng liên tục chạy - trên bộ hẹn giờ) từ Trình lập lịch tác vụ. Tôi đã từng làm việc này bằng cách nào đó trước khi cài đặt của tôi bị hỏng nhưng không thể tìm ra cách thực hiện ngay bây giờ khi tôi đã khôi phục (sắp xếp) hộp của mình. (Tôi đã không nhận được chương trình WshShell làm việc - các file bat mục tiêu rõ ràng là không bao giờ chạy (hoặc bị giết ngay lập tức đối với một số lý do).)
Daniel R Hicks

(Chương trình Java có vòng lặp hẹn giờ bên trong riêng, có nghĩa là chương trình tiếp tục chạy sau khi bắt đầu.)
Daniel R Hicks

@DanielRHicks kiểm tra giải pháp SU này có thể nó có thể giúp bạn.
avirk

Bạn có thể cung cấp lệnh thực tế đang được chạy bởi Nhiệm vụ không?
Ƭᴇcʜιᴇ007

@ techie007 - Xem ở trên, một khi chỉnh sửa được phê duyệt.
Daniel R Hicks

Câu trả lời:


8

Cụ thể hơn đối với tiền thưởng / ví dụ của Daniel R Hicks, nhưng tôi nghĩ nó vẫn có thể được áp dụng cho vấn đề ban đầu:

Nếu đó là một tệp bó được khởi chạy từ Trình lập lịch tác vụ, thì thay vì chỉ khởi chạy tệp Batch được thu nhỏ / vô hình, có lẽ bạn cũng cần phải sửa đổi tệp bó để chạy các lệnh của nó một cách vô hình.

Vì vậy, thay đổi:

cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature

Để một cái gì đó như:

cd C:\Users\danh\bin
start /b "C:\Program Files\Java\jre7\bin\java.exe" Signature

Hoặc có thể loại bỏ hoàn toàn tệp bó và chỉ cần thực hiện mọi thứ từ tập lệnh (VBS) mà bạn đang khởi chạy trực tiếp từ Trình lập lịch tác vụ.

Cái gì đó như:

Set Shell = CreateObject("WScript.Shell")
Shell.CurrentDirectory = "C:\Users\danh\bin" 
Shell.Run "C:\Program Files\Java\jre7\bin\java.exe Signature", 0, False

Giải pháp được DanH triển khai, đáp lại các đề xuất của techie007, đáp ứng tiền thưởng:

Một tệp có tên RunSignatured.vbs, chứa:

Set Shell = CreateObject("WScript.Shell")
Shell.CurrentDirectory = "C:\Users\danh\bin" 
Shell.Run "java.exe Signature", 0, False

Lưu ý rằng phần trên phụ thuộc vào java.exe nằm trong đường dẫn, vì kỹ thuật này không hoạt động với khoảng trống trong Tệp chương trình khi chỉ định đường dẫn đầy đủ. Không có nghi ngờ gì về những cách khác để giải quyết vấn đề này, nhưng đó là để người khác khám phá.

Sau đó thêm RunSignature.vbslàm tên "chương trình / tập lệnh" trong "Hành động" trong Trình lập lịch tác vụ.


1
Tôi đã thử rất nhiều biến thể của start /bcách tiếp cận. Dường như không có gì để loại bỏ cửa sổ - Tôi nghĩ rằng nó được tạo ra khi bạn bắt đầu thực hiện tập tin bat, vì vậy lúc đó đã quá muộn.
Daniel R Hicks

Đối với cách tiếp cận thứ hai, khi tôi cố chạy trực tiếp (bằng cách nhấp đúp vào tệp) tôi nhận được "Dòng: 3 Lỗi: Hệ thống không thể tìm thấy tệp được chỉ định."
Daniel R Hicks

Đó là một ví dụ, mã không được kiểm tra đầy đủ. ;) Java.exe có tồn tại ở đường dẫn được cung cấp không? Có lẽ thử nghiệm với việc khởi chạy một cái gì đó đơn giản như "notepad.exe", vì đôi khi java.exe có thể có một số điểm kỳ quặc.
Ƭᴇcʜιᴇ007

(Lưu ý vấn đề với khoảng trống trong tên đường dẫn - không rõ cách xử lý vấn đề đó.)
Daniel R Hicks

(Nhưng loại bỏ đường dẫn có vẻ hoạt động! Rõ ràng javalà đang thực hiện thông qua đường dẫn tìm kiếm.)
Daniel R Hicks

4

Bạn có thể chạy các tác vụ theo lịch trình như một người dùng khác, theo cách đó chúng sẽ không tương tác với máy tính để bàn tương tác thông thường của tài khoản của bạn. Điều này chắc chắn dường như hoạt động trên các máy chủ Windows2003 mà tôi quản lý. Chỉ cần cẩn thận để đảm bảo rằng các quyền của tệp và các chi tiết xác thực khác được đặt sao cho các tác vụ có thể truy cập những gì chúng cần khi un như người dùng khác này.

Chỉnh sửa: Hoặc thay vì chạy trực tiếp công cụ bảng điều khiển, bạn có thể có một tập lệnh nhỏ chạy nó bằng WScript.Shell.Run với tùy chọn "thu nhỏ, không thay đổi tiêu điểm":

' sample script: c:\scripts\test.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "c:\location\of\tool\utility.exe", 7

sau đó chạy cái này với bộ lập lịch tác vụ (dòng lệnh là một cái gì đó giống như wscript c:\scripts\test.vbs) thay vì gọi công cụ trực tiếp. Bạn cũng có thể gọi các tệp bó và các tập lệnh khác theo cách đó. Ngoài ra còn có tùy chọn "ẩn hoàn toàn" (thay thế 7 ở trên bằng 0), mặc dù trong cả hai trường hợp, ẩn / thu nhỏ chỉ điều khiển cửa sổ ban đầu: nếu công cụ tự mở nhiều hơn thì chúng vẫn có thể lấy cắp tiêu điểm như trước.

Xem http://msdn.microsoft.com/en-us/l Library / d5fk67ky% 28VS85% 29.aspx để biết danh sách đầy đủ các tùy chọn cho phương thức chạy.


Tôi sợ điều đó là không thể bởi vì tôi cần thông tin đăng nhập kerberos của mình cho một số nhiệm vụ.
BlaM

Bạn có thể thử chạy tác vụ một cách gián tiếp và sử dụng phương thức chạy của máy chủ kịch bản windows cho phép bạn kiểm soát cách thức cửa sổ ban đầu của một tác vụ được trình bày. Xem chỉnh sửa.
David Spillett

Câu hỏi tương tự, với cùng một câu trả lời để sử dụng vbs: serverfault.com/questions/9038/iêu
Anthony Hatzopoulos

3

Hãy thử chạy tác vụ theo lịch trình của bạn như thế này:

C: \ Windows \ System32 \ cmd.exe / c bắt đầu /bc:\fullpath\mybackup.bat

Các start /bcần khởi động ứng dụng mà không cần tạo một cửa sổ mới.

Nếu điều này không hoạt động, thì bạn có thể tạo một tập lệnh AutoIt độc lập sẽ ẩn cửa sổ taskeng.exe. Các kịch bản AutoIt có thể được biên dịch thành .exe.

.Exe sẽ là dòng đầu tiên trong tệp mybackup.bat của bạn. Mã AutoIt sẽ trông như thế này:

WinSetState ("taskeng", @SW_HIDE)

1
Dường như không hoạt động.
Daniel R Hicks

1
Cuối cùng là một giải pháp hiệu quả với tôi! Nhưng chỉ sau khi khởi động lại.
Fabian Röling

btw, thay vì làm c: \ Windows \ System32 \ cmd.exe, bạn chỉ có thể thực hiện% COMSPEC%, được đặt thành trình thông dịch nhắc lệnh được sử dụng. Để biết thêm thông tin, hãy xem: vi.wikipedia.org/wiki/COMSPEC
Brent Rittenhouse


2

Cách đơn giản nhất để ẩn ứng dụng được khởi chạy từ Trình lập lịch tác vụ là đặt ứng dụng thành "Chạy cho dù người dùng có đăng nhập hay không". Cài đặt này có thể được tìm thấy trong Tab Chung của Thuộc tính tác vụ theo lịch trình.


1

Đây là tập lệnh SyncToy tôi sử dụng. Lưu ý nhiều trích dẫn xung quanh vị trí tệp:

' SyncToy Scheduler
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """C:\Program Files\SyncToy 2.1\SyncToyCmd.exe"" -R" ,7

0

Rõ ràng bạn đã cài đặt SQLyog MySQL GUI , đã lên lịch thực hiện Tác nhân công việc SQLyog . Có vẻ như đây là một ứng dụng giao diện điều khiển không cố gắng che giấu chính nó.

Bạn nên tìm trong Trình lập lịch tác vụ cho một tác vụ tham chiếu đến SQLyog và sửa mục nhập của nó. Nếu đó là một cuộc gọi cmd, hãy thử thêm /bvào danh sách tham số. Nếu nó chỉ là một cuộc gọi đến một thực thi, bạn có thể sửa nó theo quan điểm của câu trả lời này của tôi .

Nếu bạn gặp khó khăn trong việc định vị mục này, hãy sử dụng autorun để tìm cách SQLyog được bắt đầu. Bạn cũng có thể sử dụng regedit để tìm kiếm tất cả các đề cập đến SQLyog hoặc bất cứ tên nào là thư mục cài đặt của nó.

Tất nhiên bạn cũng có thể gỡ cài đặt SQLyog MySQL GUI, nếu bạn không cần nó.

Nếu bạn chưa cài đặt SQLyog MySQL GUI, thì máy tính của bạn có thể bị nhiễm. Bạn có thể sử dụng Trình theo dõi tiến trình để xác minh khi cửa sổ bật lên xuất hiện, để xem liệu đó là taskeng.exe từ system32 hay một trong những cái nhìn tương tự của TASkeng.exe .


Đã được đăng trong một câu trả lời khác, dường như không hoạt động .
Tamara Wijsman

@TomWijsman: Nếu bạn đề cập đến phần "/ b", tôi chỉ bao gồm nó cho đầy đủ.
harrymc

0

tôi đã gặp vấn đề chính xác khi sử dụng SQLyog sau khi thực hiện một số nghiên cứu, tôi đã sửa nó tạo một tệp có tên invisible.vbsvà chèn mã này:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "C:\Program Files (x86)\SQLyog\"
WshShell.Run "SJA.exe C:\Users\REPLACE_UR_USER\Desktop\test.xml -lC:\Users\REPLACE_UR_USER\AppData\Roaming\SQLyog\sja.log -sC:\Users\REPLACE_UR_USER\AppData\Roaming\SQLyog\sjasession.xml ", 0

Hơn tạo một Trình lập lịch tác vụ để chạy invisible.vbstệp và đó là nó!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.