taskeng.exeウィンドウのポップアップを停止します


18

Windows 7環境では、主にバックアップのために、バックグラウンドで実行されるいくつかのプロセスがスケジュールされています。

ただし、バックグラウンドで静かに作業するのではなく、タスクスケジューラは黒い(コンソールのような) "taskeng.exe"ウィンドウをポップアップします。ウィンドウは、他のすべてのウィンドウの前に配置されます。幸いなことに、キーボードフォーカスを盗むことはできませんが、すべてのビューをブロックします。

taskeng.exe

このウィンドウを回避する方法はありますか?または、少なくとも視覚的なフォーカスを奪うことなく、バックグラウンドで表示されますか?

報奨金を適用した後に編集した例:

ここに、WScriptのもの(RunSignatured.batという名前のファイル)を使用する最後の試みを示します。

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

signatured.batファイルには以下が含まれます。

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

私は、他のツールをインストールせずにVista SP2で動作し、タスクスケジューラから単純な(ただし、継続的に実行される-タイマーで)Javaアプリを実行するこの問題の解決策を探しています。以前は、インストールがホースでくまれる前に何らかの方法でこれを機能させていましたが、ボックスを(並べ替えて)復元したので、その方法を理解できません。( - )、目標batファイルを実行しない(または何らかの理由ですぐに殺されて明らかに決して私が仕事にWshShellスキームを得ていませんでした。)
ダニエル・R・ヒックス

(Javaプログラムには独自の内部タイマーループがあるため、開始後も引き続き実行されます。)
ダニエルRヒックス

@DanielRHicksは、このSUソリューションが役に立つかもしれません。
avirk

タスクによって実行されている実際のコマンドを提供できますか?
Ƭᴇcʜιᴇ007

@ techie007-編集が承認されたら、上記を参照してください。
ダニエルRヒックス

回答:


8

より具体的にはダニエルRヒックスの報奨金/例ですが、元の問題にも適用できると思います。

タスクスケジューラから起動されるバッチファイルの場合、最小化/非表示のバッチファイルを起動するだけでなく、バ​​ッチファイル自体を変更してコマンドを非表示で実行する必要があります。

だから変更:

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

次のようなものに:

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

または、バッチファイルを完全に削除して、タスクスケジューラから直接起動している(VBS)スクリプトからすべてを実行することもできます。

何かのようなもの:

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

techie007の提案に応えて、DanHが実装したソリューションで、賞金を満たします。

以下を含むRunSignatured.vbsという名前の1つのファイル:

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

上記はjava.exeがパスにあることに依存していることに注意してください。これは、フルパスを指定する場合、Program Filesの空白ではこの手法が機能しないためです。この問題を回避する他の方法は間違いありませんが、それは他の人が発見することです。

次にRunSignature.vbs、タスクスケジューラの「アクション」に「プログラム/スクリプト」名として追加します。


1
start /bアプローチのさまざまなバリエーションを試しました。ウィンドウをなくすものは何もありませんでした-batファイルの実行を開始するまでに作成されたと思うので、それでは遅すぎます。
ダニエルRヒックス

2番目のアプローチでは、(ファイルをダブルクリックして)直接実行しようとすると、「行:3エラー:指定されたファイルが見つかりません」というメッセージが表示されます。
ダニエルRヒックス

これは一例であり、完全にテストされたコードではありません。;)java.exeは指定されたパスに存在しますか?java.exeは時々奇妙な動作をすることがあるため、「notepad.exe」のような単純なものを起動してテストすることもできます。
Ƭᴇcʜιᴇ007

(パス名の空白の問題に注意してください-それに対処する方法は明確ではありません。)
ダニエルRヒックス

(しかし、パスを削除することは機能しているように見えます!どうやらjava検索パスに問題はありません。)
ダニエルRヒックス

4

別のユーザーとしてスケジュールされたタスクを実行することもできます。そうすれば、通常のアカウントの対話型デスクトップとはまったく対話しなくなります。これは、私が管理しているWindows2003サーバーで確実に機能するようです。ファイル許可とその他の認証の詳細が、この別のユーザーとしてunのときにタスクが必要なものにアクセスできるように設定されるように注意してください。

編集:または、コンソールツールを直接実行する代わりに、WScript.Shell.Runで「minimise、no focus change」オプションを使用してコンソールツールを実行することもできます。

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

次にwscript c:\scripts\test.vbs、ツールを直接呼び出す代わりに、タスクスケジューラ(コマンドラインはのようなもの)でこれを実行します。バッチファイルやその他のスクリプトも同様に呼び出すことができるはずです。「完全に非表示」オプションもあります(上記の7を0に置き換えます)。ただし、いずれの場合でも、非表示/最小化は初期ウィンドウのみを制御します。

runメソッドのオプションの完全なリストについては、http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspxを参照してください


いくつかのタスクにケルベロスの資格情報が必要なので、それは不可能だと思います。
BlaM

タスクを間接的に実行し、Windowsスクリプトホストのrunメソッドを使用して、タスクの初期ウィンドウの表示方法を制御することができます。編集を参照してください。
デヴィッドスピレット

vbsファイルを使用するには、同じ答えと同様の質問、:serverfault.com/questions/9038/...
アンソニーHatzopoulos

3

次のようにスケジュールされたタスクを実行してみてください。

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

start /b新しいウィンドウを作成せずにアプリケーションを起動する必要があります。

これが機能しない場合は、taskeng.exeウィンドウを非表示にするスタンドアロンAutoItスクリプトを作成できます。AutoItスクリプトは.exeにコンパイルできます。

.exeは、mybackup.batファイルの最初の行になります。AutoItコードは次のようになります。

WinSetState( "taskeng"、@SW_HIDE)

1
動作しないようです。
ダニエルRヒックス

1
最後に私のために働いた解決策!しかし、再起動後にのみ。
ファビアンレーリング

ところで、c:\ Windows \ System32 \ cmd.exeを実行する代わりに、使用するコマンドプロンプトインタープリターに設定されている%COMSPEC%を実行するだけです。詳細については、en.wikipedia.org
ブレントリッテンハウス


2

タスクスケジューラから起動されたアプリケーションを非表示にする最も簡単な方法は、「ユーザーがログオンしているかどうかにかかわらず実行する」ように設定することです。この設定は、スケジュールされたタスクのプロパティの[全般]タブにあります。


1

これが私が使用するSyncToyスクリプトです。ファイルの場所を囲む複数の引用符に注意してください。

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

0

どうやらSQLyog MySQL GUIがインストールされ、SQLyog Job Agentの実行がスケジュール されているようです。それはそれ自体を隠そうとしないコンソールアプリケーションのように見えます。

SQLyogを参照しているタスクのタスクスケジューラを調べて、そのエントリを修正する必要があります。cmd呼び出しの場合は/b、パラメーターリストに追加してみてください。実行可能ファイルへの単なる呼び出しである場合、この私の答えを考慮して修正することができます 。

このエントリを見つけるのに問題がある場合は、自動実行を使用してSQLyogの起動方法を見つけてください。regeditを使用して、SQLyogのすべての言及またはインストールディレクトリの名前を検索することもできます。

もちろん、必要でない場合は、SQLyog MySQL GUIをアンインストールすることもできます。

SQLyog MySQL GUIをインストールしていない場合、コンピューターが感染している可能性があります。あなたは使用することができますプロセスモニタをポップアップ表示されますが、それはSYSTEM32からtaskeng.exeかの一つであるかどうかを確認する際に確認するためにTaskeng.exeのルックそっくりサイト


すでに別の回答に投稿されていますが、機能していないようです
タマラWijsman

@TomWijsman:「/ b」の部分を参照する場合、完全を期すためだけに含めました。
harrymc

0

いくつかの調査を行った後、SQLyogを使用して正確な問題が発生していましたinvisible.vbs

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

invisible.vbsファイルを実行するタスクスケジューラを作成するよりも、それだけです!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.