Hentikan jendela taskeng.exe dari muncul

18

Saya memiliki beberapa proses yang dijadwalkan di lingkungan Windows 7 saya, terutama untuk cadangan, yang seharusnya berjalan di latar belakang.

Namun alih-alih hanya melakukan itu bekerja dengan tenang di latar belakang, penjadwal tugas muncul jendela "taskeng.exe" hitam (konsol). Jendela berjalan di depan semua jendela lain. Untungnya itu tidak mencuri fokus keyboard saya, tetapi menghalangi pandangan pada semuanya.

taskeng.exe

Apakah ada cara untuk menghindari jendela ini - atau setidaknya telah muncul di latar belakang tanpa mencuri fokus VISUAL saya?

Contoh diedit setelah karunia diterapkan:

Ini adalah upaya terakhir saya untuk menggunakan hal-hal WScript (dalam file bernama RunSignatured.bat):

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

File signatured.bat berisi:

cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature
BlaM
sumber
Saya mencari solusi untuk masalah ini yang berfungsi di Vista SP2 tanpa menginstal alat lain dan akan menjalankan aplikasi Java yang sederhana (tetapi terus menerus menyala) dari Penjadwal Tugas. Saya dulu memiliki ini berfungsi entah bagaimana sebelum instal saya disiram tetapi tidak tahu bagaimana melakukannya sekarang saya telah mengembalikan (semacam) kotak saya. (Saya tidak mendapatkan skema WshShell untuk bekerja - file target bat tampaknya tidak pernah berjalan (atau dibunuh segera karena alasan tertentu).)
Daniel R Hicks
(Program Java memiliki loop timer internal sendiri, artinya terus berjalan setelah dimulai.)
Daniel R Hicks
@DanielRHicks lihat solusi SU ini mungkin dapat membantu Anda.
avirk
Bisakah Anda memberikan perintah aktual yang dijalankan oleh Tugas?
Ƭᴇcʜιᴇ007
@ techie007 - Lihat di atas, setelah pengeditan disetujui.
Daniel R Hicks

Jawaban:

8

Lebih khusus untuk karunia / contoh Daniel R Hicks, tapi saya pikir itu masih dapat diterapkan pada masalah asli:

Jika ini adalah file batch yang diluncurkan dari Penjadwal Tugas, maka alih-alih hanya meluncurkan file Batch yang diminimalkan / tidak terlihat, Anda mungkin juga perlu memodifikasi file batch itu sendiri untuk menjalankan perintahnya secara tak terlihat.

Jadi ubah:

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

Untuk sesuatu seperti:

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

Atau mungkin menghapus file batch sepenuhnya dan hanya melakukan segalanya dari skrip (VBS) yang Anda luncurkan langsung dari Penjadwal Tugas.

Sesuatu seperti:

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

Solusi sebagaimana diterapkan oleh DanH, sebagai tanggapan atas saran techie007, memuaskan karunia:

Satu file, bernama RunSignatured.vbs, mengandung:

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

Perhatikan bahwa di atas bergantung pada java.exe yang berada di jalur, karena teknik ini tidak bekerja dengan kosong di Program Files ketika menentukan path lengkap. Tidak ada keraguan cara lain untuk mengatasi masalah ini, tapi itu untuk orang lain temukan.

Kemudian tambahkan RunSignature.vbsnama "program / skrip" di "Aksi" di Penjadwal Tugas.

Ƭᴇcʜιᴇ007
sumber
1
Saya mencoba berbagai variasi start /bpendekatan. Sepertinya tidak ada yang menghilangkan jendela - saya pikir itu sudah dibuat pada saat Anda mulai mengeksekusi file bat, jadi saat itu sudah terlambat.
Daniel R Hicks
Untuk pendekatan kedua, ketika saya mencoba menjalankannya secara langsung (dengan mengklik dua kali file) saya mendapatkan "Baris: 3 Kesalahan: Sistem tidak dapat menemukan file yang ditentukan."
Daniel R Hicks
Itu adalah contoh, kode tidak sepenuhnya diuji. ;) Apakah java.exe ada di jalur yang disediakan? Mungkin menguji dengan meluncurkan sesuatu yang sederhana seperti "notepad.exe", karena java.exe kadang-kadang dapat memiliki beberapa kebiasaan aneh.
Ƭᴇcʜιᴇ007
(Perhatikan masalah dengan kosongnya nama jalur - tidak jelas bagaimana menghadapinya.)
Daniel R Hicks
(Tapi menghapus jalan tampaknya berhasil! Rupanya javaberhasil masuk ke jalur pencarian OK.)
Daniel R Hicks
4

Anda dapat menjalankan tugas yang dijadwalkan sebagai pengguna yang berbeda, sehingga mereka tidak akan berinteraksi dengan desktop interaktif akun normal Anda sama sekali. Ini tampaknya bekerja pada server Windows2003 yang saya kelola. Berhati-hatilah untuk memastikan bahwa izin file dan detail otentikasi lainnya diatur sedemikian rupa sehingga tugas-tugas tersebut dapat mengakses apa yang mereka butuhkan ketika tidak menjadi pengguna yang berbeda ini.

Sunting: Atau alih-alih menjalankan alat konsol secara langsung, Anda dapat memiliki skrip kecil yang menjalankannya menggunakan WScript.Shell.Run dengan opsi "kecilkan, tidak ada perubahan fokus":

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

kemudian jalankan ini dengan penjadwal tugas (baris perintah menjadi sesuatu seperti wscript c:\scripts\test.vbs) alih-alih memanggil alat secara langsung. Anda harus bisa memanggil file batch dan skrip lain juga. Ada juga opsi "sepenuhnya sembunyikan" (ganti 7 di atas dengan 0), meskipun dalam kedua kasus hanya menyembunyikan / memperkecil mengontrol jendela awal: jika alat membuka lebih banyak sendiri maka mereka mungkin masih mencuri fokus seperti sebelumnya.

Lihat http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspx untuk daftar lengkap opsi untuk metode run.

David Spillett
sumber
Saya khawatir itu tidak mungkin karena saya memerlukan kredensial kerberos saya untuk beberapa tugas.
BlaM
Anda bisa mencoba menjalankan tugas secara tidak langsung dan menggunakan metode menjalankan host skrip windows yang memungkinkan Anda mengontrol bagaimana jendela awal tugas disajikan. Lihat edit.
David Spillett
Pertanyaan serupa, dengan jawaban yang sama untuk menggunakan vbs: serverfault.com/questions/9038/…
Anthony Hatzopoulos
3

Coba jalankan tugas terjadwal Anda seperti ini:

C: \ Windows \ System32 \ cmd.exe / c mulai /bc:\fullpath¡mybackup.bat

The start /bharus memulai aplikasi tanpa membuat jendela baru.

Jika ini tidak berhasil, maka Anda dapat membuat skrip AutoIt mandiri yang akan menyembunyikan jendela taskeng.exe. Script AutoIt dapat dikompilasi ke .exe.

.Exe akan menjadi baris pertama dalam file mybackup.bat Anda. Kode AutoIt akan terlihat seperti ini:

WinSetState ("taskeng", @SW_HIDE)
jftuga
sumber
1
Sepertinya tidak berhasil.
Daniel R Hicks
1
Akhirnya solusi yang berhasil buat saya! Tetapi hanya setelah restart.
Fabian Röling
btw, alih-alih melakukan c: \ Windows \ System32 \ cmd.exe, Anda cukup melakukan% COMSPEC%, yang disetel ke juru bahasa command-prompt yang digunakan. Untuk info lebih lanjut, lihat: en.wikipedia.org/wiki/COMSPEC
Brent Rittenhouse
2

Coba 4trayMinimizer . Anda dapat menetapkan aplikasi yang disembunyikan secara default.

integratorIT
sumber
2

Cara paling sederhana untuk menyembunyikan aplikasi yang diluncurkan dari Penjadwal Tugas adalah dengan mengaturnya menjadi "Jalankan apakah pengguna masuk atau tidak". Pengaturan ini dapat ditemukan di Tab Umum dari Properti Tugas Terjadwal.

dingin
sumber
1

Inilah skrip SyncToy yang saya gunakan. Perhatikan beberapa kutipan di sekitar lokasi file:

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

Tampaknya Anda telah menginstal SQLyog MySQL GUI , yang telah menjadwalkan eksekusi Agen Pekerjaan SQLyog . Sepertinya itu adalah aplikasi konsol yang tidak berusaha menyembunyikan diri.

Anda harus mencari di Penjadwal Tugas untuk tugas yang merujuk ke SQLyog dan memperbaiki entri tersebut. Jika ini adalah panggilan cmd, coba tambahkan /bke daftar parameter. Jika itu hanya panggilan ke executable, Anda bisa memperbaikinya mengingat jawaban saya ini .

Jika Anda kesulitan menemukan entri ini, gunakan autoruns untuk menemukan bagaimana SQLyog dimulai. Anda juga dapat menggunakan regedit untuk mencari semua sebutan SQLyog atau apa pun nama direktori instalasinya.

Anda tentu saja juga dapat menghapus SQLyog MySQL GUI, jika Anda tidak membutuhkannya.

Jika Anda belum menginstal SQLyog MySQL GUI, maka komputer Anda mungkin terinfeksi. Anda bisa menggunakan Monitor Proses untuk memverifikasi ketika popup muncul, untuk melihat apakah itu adalah taskeng.exe dari system32 atau salah satu yang mirip dengan Taskeng.exe .

harrymc
sumber
Sudah diposting di jawaban lain, sepertinya tidak berfungsi .
Tamara Wijsman
@ TomWijsman: Jika Anda merujuk ke bagian "/ b", saya hanya memasukkannya untuk kelengkapan.
harrymc
0

saya mengalami masalah persis menggunakan SQLyog setelah melakukan beberapa penelitian saya memperbaikinya membuat file yang disebut invisible.vbsdan memasukkan kode ini:

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

Daripada membuat Penjadwal Tugas untuk menjalankan invisible.vbsfile dan hanya itu!

Ered
sumber