ちょっと変わったマニアな作品が集結

Windows7 SP1です。
タスクバーの通知領域にある、とあるアイコンをダブルクリックすると、
あるプログラムの画面が立ち上がるのですが、コマンドラインから
同じことをしたいと思っています。

上記は常駐しているセキュリティ関連のプログラムなのですが、
その実行ファイル(exe)を実行すると、二重起動ができない旨、ダイアログが
出て終了します。

当該exeにコマンドラインオプションがあるのか調べたのですが、
マニュアルも無く、調べる方法がありません。

そこで、上記のように、通知領域のアイコンへの操作をコマンドラインから
できないかと考えております。

ちょっと違うのですが、キーボードショートカットとしては、Win+bと
カーソル移動で同じことができるのは調べてわかりました。ただ、特定の
常駐ソフトウェアを指定する方法まではわかりませんでした。

・コマンドラインで、特定の通知領域アイコンをダブルクリックする方法
・上記で使う通知領域アイコンのID?を調べる方法

について、どなたかご教示いただけませんでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>・コマンドラインで、特定の通知領域アイコンをダブルクリックする方法


DOSおよびWindowsで拡張されたコマンドにはそのようなコマンドは用意されていない。
従って素のコマンドラインからは不可能。

Windows Power Shellからは可能かもしれないが、
自分はWindows Power Shellに詳しくないので実際にできるかまでは分からない。
    • good
    • 0
この回答へのお礼

コメントありがとうございました。

"Windows Power Shell スクリプト 通知領域"で検索したところ、
あっさり同じような質問がみつかりました。

> スクリプトで通知領域にあるソフトを実行したい。
> https://oshiete.goo.ne.jp/qa/5557795.html

時間があるときに、この方向で考えてみます。

ありがとうございました。

お礼日時:2015/11/30 13:29

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qスクリプトで通知領域にあるソフトを実行したい。

環境:Windows Xp
Script:Windows Script(の予定)

現在、スクリプトで通知領域にあるソフトを実行出来るようにしたいと思っています。
(通知領域=タスクバーの右側のアレ)

以下の操作は実現するにはどうしたらいいのでしょうか?

<したい操作の例(以下の条件で)>
ソフト:sample.exe
通知に出るタイトル:サンプルです

(1)上の通知領域のを右クリックでメニューを出す。
(2)ショートカットキーで選択し実行。(&S⇒&Qみたいに)

調べてWindow Scriptで出来そうだと思ったのですが、
タイトルでソフトをアクティブにして操作の見本までしか見つからず、
通知領域に手を出す方法がわかっていない状態です。

わかる方がいればよろしくお願いします。

Aベストアンサー

最終的にMissing0001さんのやりたいことが実現できるかわかりませんが、【C#プログラムで】秀丸エディタの通知領域のアイコンをクリックし、ファイルを開くダイアログを表示することに成功しましたので、ご報告します。

通知領域のアイコンをクリックするのはWSH(Windows Script Host)では困難だと思います。そもそもWindows標準のスクリプトの機能ではアイコンを右クリックすることすらできません。

ご質問を見て最初に思いついたのは、アイコンをクリックするために、WSHで呼び出せるフリーソフトを使うことでした。
http://www.autoitscript.com/autoit3/

AutoItというフリーソフトをインストールすると下のようなWSH JScriptを書けます(もちろんVBScriptでも書けます)。

-----
var Aix = WScript.CreateObject("AutoItX3.Control");
var Wsh = WScript.CreateObject("WScript.Shell");
Aix.MouseClick ("Left", 1294, 880); // アイコン座標決め打ち
WScript.Sleep(100);
Wsh.SendKeys("O");
-----

しかしご覧のとおり、AutoItでも通知領域の中を検索することはできないので、アイコン座標決め打ちです。使えないこともないですが…。

そこでスクリプトはあきらめ、.NET Framework 3.5上でWindowsオートメーションAPIを使ったC#プログラムを書いてみました。これなら通知領域の中も検索できます。

WindowsオートメーションAPIはWindowsXP、Vistaの場合、重要度推奨の更新プログラムKB971513になっていて、意図して組み込む必要があります。なおVistaの場合、KB971513はKB971644に含まれています。これらの更新プログラムは2009/10月末から11月初めに公開されています。

http://support.microsoft.com/kb/971513/ja

VistaのVisual C# 2008 Experess Editionでコンソールプログラムを作成し、Windows XPでも動作することを確認しました。

PowerShellでスクリプト風に実行できるかどうかは研究中です。

-----
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Automation;
using System.Runtime.InteropServices;
// 下記を参照に追加する。
// System.Drawing, System.Windows.Forms, UIAutomationClient, UIAutomationTypes, WindowsBase

namespace TrayClick
{
class Program
{
// SendInputのための宣言は、緑のバイクさんの 初めてのC# ~覚え書き~
// マウスの自動操作をコピーする。38行省略。
// http://homepage3.nifty.com/midori_no_bike/CS/userIO.html#268

static void Main(string[] args)
{
AutomationElement aeDesktop = null;
aeDesktop = AutomationElement.RootElement;
if (aeDesktop == null)
throw new Exception("内部エラー - デスクトップが求まらない。");

AutomationElement aeTray = null;
aeTray = aeDesktop.FindFirst(TreeScope.Descendants,
new PropertyCondition(AutomationElement.NameProperty, "通知領域"));
if (aeTray == null)
throw new Exception("内部エラー - 通知領域が求まらない。");

AutomationElement aeTarget = null;
aeTarget = aeTray.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.NameProperty, "秀丸エディタ"));
if (aeTarget == null)
{
MessageBox.Show("指定のアイコンが見つかりません。", "エラー");
return;
}
if (aeTarget.Current.IsOffscreen)
{
MessageBox.Show("指定のアイコンは画面外です。", "エラー");
return;
}
System.Windows.Point clickablePoint = aeTarget.GetClickablePoint();
Rectangle rec = Screen.PrimaryScreen.Bounds;

INPUT[] input = new INPUT[3];
input[0].mi.dx = screen_length * (int)clickablePoint.X / rec.Width;
input[0].mi.dy = screen_length * (int)clickablePoint.Y / rec.Height;
input[0].mi.dwFlags = MOUSEEVENTF_MOVED | MOUSEEVENTF_ABSOLUTE;
input[1].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
input[2].mi.dwFlags = MOUSEEVENTF_LEFTUP;

SendInput(3, input, Marshal.SizeOf(input[0])); // アイコンをクリックする。

System.Threading.Thread.Sleep(100); // 必要があればメニューが出るのを待つ。

SendKeys.SendWait("O"); // 文字を送る。
}
}
}
-----

最終的にMissing0001さんのやりたいことが実現できるかわかりませんが、【C#プログラムで】秀丸エディタの通知領域のアイコンをクリックし、ファイルを開くダイアログを表示することに成功しましたので、ご報告します。

通知領域のアイコンをクリックするのはWSH(Windows Script Host)では困難だと思います。そもそもWindows標準のスクリプトの機能ではアイコンを右クリックすることすらできません。

ご質問を見て最初に思いついたのは、アイコンをクリックするために、WSHで呼び出せるフリーソフトを使うこ...続きを読む

Qショートカットをデスクトップに作るコマンドを教えて下さい

お世話になります。

WindowsXPや2000のパソコンが100台以上あります。
サーバーに置いてあるTESTER.EXEを各パソコンにコピーするバッチを作るまでは完成しました。
次に、このTESTER.EXEのショートカットをデスクトップに作りたいのですが、どういうコマンドになりますか?
ユーザー名はパソコンによってバラバラなので、その辺のコマンドの書き方もどう書いていいのかわかりません。
なんか変数みたいな何かがあったような気がしますが、よく覚えていません。

参考までにTESTERCOPY.BATはこのようになっています。
最後の行にコマンドが入れば完成となります。
------------------------------------------------------------
C:
CD "\Program Files"
MD AAA
XCOPY /S "\\192.168.0.1\AAA\TESTER.EXE" "C:\Program Files\AAA\"
(TESTER.EXEのショートカットをデスクトップに作るコマンド)
------------------------------------------------------------

以上、宜しくお願いします。

お世話になります。

WindowsXPや2000のパソコンが100台以上あります。
サーバーに置いてあるTESTER.EXEを各パソコンにコピーするバッチを作るまでは完成しました。
次に、このTESTER.EXEのショートカットをデスクトップに作りたいのですが、どういうコマンドになりますか?
ユーザー名はパソコンによってバラバラなので、その辺のコマンドの書き方もどう書いていいのかわかりません。
なんか変数みたいな何かがあったような気がしますが、よく覚えていません。

参考までにTESTERCOPY.BATはこのように...続きを読む

Aベストアンサー

過去の質問です。
参考になるよね?
http://oshiete1.goo.ne.jp/qa2930427.html

Qタスクバー関連(通知領域)の表示・非表示

タスクバー右側のアイコン表示ですが、Vistaでは通知領域で非表示設定にしても、インジケータを触ると表示されてしまします。
非表示設定で、確実に表示させない方法って有るのでしょうか?

Aベストアンサー

タスクトレイにある時計や、他のアイコンを非表示する(完全に)設定はレジストリの操作になります。タスクトレイには何も表示されなくなりますが、これで良ければ。
スタート→ファイル名を指定して実行→ regedit 入力→OK。
+を押して次まで進みます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Policies\Explorer

右側画面に、NoTrayItemsDisplay があってDWORDの「値」が「0」になっていると思います。
NoTrayItemsDisplayをクリック→編集→修正→「値」のデータを「1」に変更します。(半角数字)

レジストリエディタを閉じて、PCを再起動します。
再度、アイコンを表示させるには「値」を戻すか、右クリックして削除します。

この操作は、ご自分の判断で行って下さい。

Qコマンドプロンプトを使ってipアドレスからコンピュータ名を知る方法

ipアドレスは分かっていますがコンピュータ名が分かりません。リモート接続ソフトなどは使えないので、それでコンピュータ名を調べることはできません。
コマンドプロンプトを使ってipアドレスからコンピュータ名を知る方法を教えてください!

Aベストアンサー

なんか回答がバラバラなので整理しましょう。
調査している自分自身が使用している端末は、Windows XPのPCであると仮定します。
また、調べるのは基本的に外部から名前解決可能な名前(No.2さんの言う"2"に相当する名前)とします。

パターン1:
対象のIPアドレスがWindows端末機で、自分が使用している端末と同じネットワークに属しているか同一のWINSサーバを参照しているとき……No.4さんの答えで検索できます。

nbtstat -A <IP Address>

パターン2:
ネットワーク管理者がDNSをきちんと管理しており、対象IPについても管理者の管理下にある場合……以下2つのいずれかの方法で検索できます。

  nslookup <IP address>

または

  nslookup -q=ptr <reverse ip>.in-addr.arpa.
  ex) 192.168.12.1 のIPを調べたい場合、以下のように入力する
  nslookup -q=ptr 1.12.168.192.in-addr.arpa.

  (DNSサーバで逆引きが設定されていないと、正しく検索できない場合があります)

パターン3:
上記以外の場合

外部から名前解決できないので、調べようがありません。または、調べてもそれが正しいホスト名である保証がありません。
そのIPの端末自体に設定されているホスト名を直接調べるしかありませんが、それには実際にそのIPの端末を操作して調べるしかありません。
つまり、No.2さんの回答となるのですが、
IPを使用しているのがWindows PCやUnixサーバなどである保証はないので、確認するコマンドはその端末の種類(OS)によって異なります。

なお、tracert (traceroute)を使用する、という回答がありますが、これはパターン1またはパターン2のいずれかまたは両方を満たしていないと表示されませんので、厳密には正しい答えとはいえません。
(たいていの場合、"tracert <IP address>" や "ping <IP address>"で用が足りてしまうことも多いので、必ずしも間違いではないのですが)

なんか回答がバラバラなので整理しましょう。
調査している自分自身が使用している端末は、Windows XPのPCであると仮定します。
また、調べるのは基本的に外部から名前解決可能な名前(No.2さんの言う"2"に相当する名前)とします。

パターン1:
対象のIPアドレスがWindows端末機で、自分が使用している端末と同じネットワークに属しているか同一のWINSサーバを参照しているとき……No.4さんの答えで検索できます。

nbtstat -A <IP Address>

パターン2:
ネットワーク管理者がDNSをきちんと管理して...続きを読む

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Q「プログラムと機能」の一覧を取得したい

OSを再インストールしたいのですが
今、コンパネの「プログラムと機能」に入ってる一覧をどこかに書き出す方法はありますか?

インストールしているプログラム一覧のメモを取りたいのですが、
いい方法が思いつきません。

原始的ですが
スクショを撮ってパワポとかに貼り付けするしかないのかなー
なんて思ってます。

もっと効率のいい方法があれば教えてください。

Aベストアンサー

下記のレジストリのサブキーをsaveして(export)してリストで見るという方法もあります。
appwiz.cplを実行して表示されるuninstall可能なプログラムのすべてが取得できます。
ただしメモというよりも,内容が詳しすぎるかもしれません。
メリットは標準機能でsaveできることです。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Qショートカットキーでタスクトレイのアイコンを操作出来ますか

表題のとおりです。
タスクトレイのアイコンをショートカットキーで
操作できますか?

Aベストアンサー

Windows XP の場合ですと、例えば次の方法でできます。

1. デスクトップにカーソルを合わせます。(Winキー + D)
2. Shift + Tab を押して、タスクトレイの部分にカーソルを移動します。
3. アイコンが複数ある場合は、カーソルキーを押して希望のアイコンにカーソルを移動します。
4. メニューを表示するには、アプリケーションキーを押すか Shift + F10 を押します。(右クリックと同じ)
スペースキーを押すと、左クリックと同じになります。

※ デスクトップにカーソルを合わせた後、Tab キーを押すとスタートボタンやタスクバーなどにカーソルを移動できます。

Qバッチファイルを作成して、アプリケーションをアンインストールしたい。

バッチファイルを作成して、アプリケーションをアンインストールしたい。
同じアプリケーションを複数の方がインストールしていますが、コントロールパネルからの削除は危惧しております。このアプリケーションはアンインストールexeが無いため、バッチファイルを作成して、簡単に削除することはできないてしょうか。
いろいろと調べましたが、なかなか見つからないため、質問しました。
よろしくお願いします。

Aベストアンサー

レジストリエディタで下記を参照
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Uninstallフォルダ以下に各当アプリのフォルダを探して開きます、右側にUninstall Stringとありパスが確認できます。
そのパスを指定すれば追加と削除の「削除」を選んだのと同じになるので、アンインストーラーを起動した感じになります。

例)Firefoxをbatファイルで削除
Uninstall String に N:\Program Files\Mozilla Firefox\uninstall\helper.exe
とあったので

cd "N:\Program Files\Mozilla Firefox\uninstall"
start helper.exe
上記の様にし実行して確認しました。
※batファイルへの書き方が最善であるかどうかは分かりません。

QPC上で設定されているプリンタ一覧をバッチファイルを利用してテキストフ

PC上で設定されているプリンタ一覧をバッチファイルを利用してテキストファイルに出力したいです。
どなたかご存知の方がいらっしゃいましたらご教授ください。

【要件詳細】
○目的
PC端末(OS:WindowsXP)上でバッチファイルを使い、設定されているプリンタ一覧をテキストで出力したい。
数台程度であれば手動で確認するが数十台の為、手間をかけずに情報取得したい
(端末利用者が専門知識を有しないため極力手動作業の負担はなくしたいのです)

○プリンタの接続形式
LAN
シリアル

○試したこと
「rundll32 printui.dll,PrintUIEntry」コマンドを利用して試してみたのですが
うまくいきませんでした。。。

以上、よろしくお願いいたします。

Aベストアンサー

WindowsXPならばC:\Windows\system32のなかに

 prn*.vbs というシリーズのスクリプトが何個か入っています

この中のprnmngr.vbsでプリンタ定義を出力できます。

cscript prnmngr.vbs -? で使用法がでます

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html


人気Q&Aランキング