ARCHIVE  ENTRY  COMMENT  TRACKBACK  CATEGORY  PROFILE  OTHERS
<< December 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>

ねんどたにあんシリーズ [NDS] サガ2・プレイ日記 Diablo HD MOD 週刊 ちょうさを作る

Win10でtaskmgrを最小化起動したい

  〜 2017/11/03 〜
中の人のリアルお仕事の関係上、そこそこコアにパソコンを利用する必要があり、タスクマネージャを利用することがよくあります。そして、CPUの動きはいつも気にしているので、「タスクマネージャは起動するけど、最小化してタスクトレイにアイコン化して表示」ということが多いのです。



実際の画面をお見せするとこんな感じ。設定していれば、タスクマネージャをタスクトレイに入れるとCPUのグラフが見えるようになるので、CPUが貼りついたりすると「あ、やっべ、無限ループ、っていうかキーボード操作も効かねぇwww」とか気づく訳です。パソコン起動時に自動でこの状態にする「自動で最小化起動」ですが、Windows7(8とVistaは使ったこと無いので分かりませぬ)までは…

1)スタートアップにタスクマネージャ(taskmgr.exe)のショートカットを置く
2)ショートカットの「実行時の大きさ」設定を「最小化」にする
3)タスクマネージャの設定を「最小化時に隠す」にする

で、出来てたんですよね。画面で説明すると、こんな感じ。



タスクマネージャの設定をして、このショートカットをスタートアップに登録しておけば、パソコン起動時に自動で最小化起動され、タスクバーにも表示されていないので非常に使い勝手が良かったのですが、これと同じことがなぜ故かWindows10で出来ずに悩んでいました。Windows10購入当時、色々ググったり試したりしたのですがどうしても実現できず、「まぁ、手動でも比較的簡単にできるからいっか…」と現実から目をそむいていました(;´Д`)

それから早数年、久しぶりに調べ直してみたのですが、やはり結果は変わらず…。ただ、恒久対策とは言わないまでも暫定対策程度のものは出来上がったので、全国で同じ悩みをお持ちの方が3人くらいはいらっしゃるだろうということで、書き残しておきます。


<Windows10でタスクマネージャを自動で最小化起動する方法>

【お約束】暫定対策かつ強引なドリブルなため、実行は自己責任でお願いします!
1)タスクマネージャを起動し、最小化するVBSを作成する(taskmgr.vbs)
2)作成したVBSファイルをスタートアップに登録する

  1. Set objShell = CreateObject("Shell.Application")
  2. If Wscript.Arguments.Count = 0 Then
  3.     objShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ runas", "", "runas", 1
  4.     Wscript.Quit
  5. End If
  6. Set objShell = CreateObject("WScript.Shell")
  7. objShell.Run "taskmgr.exe", 1, False
  8. Do
  9.     If objShell.AppActivate("タスク マネージャー") Then
  10.         objShell.SendKeys "% N"
  11.         Exit Do
  12.     End If
  13. Loop
  14. Set objShell = Nothing

まずは1のVBSファイルから、作成したのはこんな内容です。見て頂ければわかると思うのですが、色々ハマった&調べたことの補足を踏まえ、以下、簡単な説明。

1〜5行目:VBScript自体を管理者権限で実行しないと、後続処理の「SendKeysによる最小化」がうまく動きませんでした。Windows10ではユーザーアカウント制御(UAC)が原因でVBScriptを「管理者として実行」できないので、処理先頭で管理者権限へ昇格して、後続の処理を実行させるようにします。

8行目:Runメソッドの第二引数(intWindowStyle)ですが、MSのリファレンスを見てみると、今回の要件にピッタリ合いそうな「0」(ウィンドウを非表示にし、別のウィンドウをアクティブにします。)区分がありました。たしかに「0」で起動させると最小化した状態で立ち上がるのですが、タスクトレイのアイコンダブルクリックでタスクマネージャーを表示させることができず、「タスクトレイのアイコン右クリック>元のサイズに戻す」という操作が必要になります。これは流石にストレスたまるので、無難に「1」を指定しています。

10行目:タスクマネージャの起動までタイムラグがあるので、ウィンドウ名が「タスク マネージャー」のものが出てくるまで待機します。で、お目当てのウィンドウが見つかったら、後続処理のSendKyesメソッドが有効になるよう、AppActivateメソッドでアクティブにする…というのをIF文で。

11行目:ウィンドウをショートカットキーで最小化するには、そのウィンドウをアクティブにしてから「Alt+Spaceを押してN」なので、既にアクティブになっているタスクマネージャのウィンドウに対して、SendKeysメソッドでそれらを送り込みます(Alt+Space→"% "、その後にN→"N")。

あとは2にある通り、作成したVBSファイルをスタートアップに置いておけば完了です。スタートアップ時に一瞬タスクマネージャのウィンドウが見えちゃうのは若干気になりますが、まぁ、パソコン起動時は画面を見ていることがほぼない(帰宅→電源入れる→着替えるのコンボ)ので…。

実は、この暫定対策に行き着くまで、タスクスケジューラからの起動とかも試したのですが、そちらもうまくいきませんでした。仕事のPCはまだWindows7だからよいものの、うーん、Windows10、やっぱり使いにくい!!

もっとスマートな方法ありましたら、ぜひお教えください!\(^ω^)/
コメント
なんでこれ、こんな風に変更したんでしょうね?
GUIが退化している気がします。
taskmgr自体には最小化のコマンドラインオプションないみたいで(但し起動時のアクティブタブ指定スイッチはあると言う謎仕様)バッチファイルだけじゃ無理みたいです。
ウィンドウの大きさ変えにくいし、中間色のLookも無いから目が痛いし、どうなっとんじゃーウリャー(ノ*`ー´)ノ┫
  • での字
  • 2017.11.23 Thursday 18:45
>での字さん
多分あの"で"の字さんかな、コメントありがとうございます。

これって、MS側は意図してやってるんですかね?何となくですが、UACあたりの対応がバg…悪さしてる気がします。Win7まではショートカットファイルのオプションで指定できる「実行時の大きさ」が効いていたのですがWin10では無効で、管理者実行にしたらスタートアップできないっていう…。

そういえば、うちのUOクライアントでuo.cfgが有効にならないのも、UOAssist.exeとかUO.exeでは何をやってもダメですが、client.exe直だったらOKという謎挙動です。普段はこれらの実行時にさらにランチャー経由しているので、アプリ経由の際にUACおかしくなるバg…不良みたいなのがある気がします。

↑の日記書いて数週間経過しますが、タスクマネージャの起動自体は快適です。ただ、たったこれだけのことを実現するのに「こんな力業でやんなきゃできない」ってのは何だかなーって感じです(;´Д`)
  • ぺいる
  • 2017.11.25 Saturday 12:02
コメントする








 
この記事のトラックバックURL
トラックバック
トップへ




ウルティマ ゲームタイム 180 をAmazonで購入する ウルティマ ゲームタイム 90 をAmazonで購入する ウルティマ ゲームタイム 30 をAmazonで購入する
ウルティマ ゲームタイムの価格推移はこちら!
more...