既存のプログラム(他の人が作成したもの)を参考にプログラムを作成しましたが、どうしても、希望通りの挙動となりません。ShellExecuteの部分が要点と思いますので、その点について教えてください。言語は JavaScript です。
以下のような記述がありました。
----
var launcher = new ActiveXObject("Shell.Application");
launcher.ShellExecute(cmd, param, "", "open", "1");
----
ShellExecute の引き数の cmd は、実行ファイル名(ファイルパス付)、param は実行ファイルの引き数です。これはこれで動いています。
さて、これを参考に、cmd の部分にDOSコマンドを与えました。すると、DOSコマンドは実行されたものの、実行の瞬間に黒いウィンドウ(おそらく、コマンドプロンプトと思われます)が一瞬表示されました。この黒いウィンドウを表示させずにDOSコマンドを実行させたいのですが、引き数を調整することでそのようなことは可能でしょうか。
Webで調べたところ、ShellExecute の引き数として SW_SHOWNORMAL や SW_MAXIMIZE などを与える方法もあるようですが、SW_*** を紹介しているWebページでは、そもそも引き数の個数が上記と異なっていたりします。
ご助言をお願い致します。
No.1ベストアンサー
- 回答日時:
最後の引数を0にしたらどうですか。
launcher.ShellExecute(cmd, param, "", "open", 0);
ShellExecuteという名前はWin32APIから来ています。
他の言語であっても同名で似たような動作をする関数が大概存在しますが、
当然、名前を一緒にしただけなので引数などのインターフェースが違ってきます。
そういうわけで検索するときは「Shell.Application」を付けて検索するなどした方がいいかもしれません。
http://msdn.microsoft.com/library/default.asp?ur …
情報をご提供くださり、ありがとうございます。
最後の引数を 1 → 0 に変更して試行したのですが、それでも黒い画面が一瞬表示されてしまいました。他の方からの情報も加味すると、これについてはどうしようもないものと考えました。今回実行しようとしているDOSコマンドに相当する関数を探す、などの方向転換をするつもりです。
ご教示いただいたURLですが、いくら探しても見つからなかった ShellExecute のインタフェース(引数)が分かり、大変参考になります。
どうもありがとうございました。
No.2
- 回答日時:
★『ShellExecute』関数では無理です。
・引数に『SW_SHOWNORMAL』や『SW_MAXIMIZE』を与えてもそれは『コマンド・プロンプト』の
ウインドウを制御するものではありません。実行させる DOS コマンドなどへの指示です。
つまり、メモ帳などを起動させようとして『SW_MAXIMIZE』を指定するとメモ帳のウインドウが
最大化されて表示されます。また、『SW_HIDE』を指定してもメモ帳などのウインドウが非表示
になるだけです。
・あと Web で調べて ShellExecute の引数の数が違うのは、Web での情報が Windows の API 関数
の引数を説明しているページがほとんどで、Java Script はその API 関数も利用できるように
機能を取り込んでいるだけです。このため、引数の順番も何か違っていますね。注意が必要!
・『Java Script』はあまり詳しくありませんが、API関数ならば『CreateProcess』関数などの
プロセスを起動させる方法で『コマンド・プロンプト』を非表示で実行できたと思います。
『Java Script』にも似たような関数があればそれを検索などして探して下さい。
・以上。『ShellExecute』関数では無理という事だけアドバイスします。
・おわり。
参考URL:http://msdn.microsoft.com/library/ja/default.asp …
情報をご提供くださり、ありがとうございます。
使用している関数 ShellExecute は、「SW_MAXIMIZE」を引数として受け付けるものとは異なるという事が分かり、これについて無駄に調査時間を消費しなくて済ませることができました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- その他(コンピューター・テクノロジー) Power Shellコマンドで作成日時を一括シフトする方法 3 2022/10/21 12:37
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- その他(パソコン・スマホ・電化製品) データの復元ができる無料ソフト(一部ファイルでもよいです) 4 2023/06/04 02:30
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ShellExecuteってなんで関数?
Access(アクセス)
-
ShellExcuteのprint”がExcel2016で実行されない"
Excel(エクセル)
-
VB.netでShellExecuteがしたい
Visual Basic(VBA)
-
-
4
外部exe呼び出しの方法 ShellExecuteEx, System...
C言語・C++・C#
-
5
system関数がうまくいかない
C言語・C++・C#
-
6
ShellExecuteでエクセルファイルが起動しません。
Visual Basic(VBA)
-
7
VC++から引数付きexeファイルの実行
C言語・C++・C#
-
8
ShellExecuteでDOSコマンド実行したら...
C言語・C++・C#
-
9
AccessのRefresh・Requery・Repaintの違い
Access(アクセス)
-
10
モジュールとクラスの違いってなんなんですか?
Visual Basic(VBA)
-
11
ShellExecuteExでハンドルの取得
C言語・C++・C#
-
12
html上で、バッチやexeファイルの起動をしたい
ホームページ作成・プログラミング
-
13
[VB6]プログレスバーコントロールの使用法について
Visual Basic(VBA)
-
14
コンソールアプリケーションのコマンドプロンプト画面を非表示
Visual Basic(VBA)
-
15
他のウィンドウのボタンを自動的に押したい
C言語・C++・C#
-
16
VBA でshell関数を使ってコマンドプロンプト立ち上げてコマンドの入力方法
Visual Basic(VBA)
-
17
C言語を用いたファイルの一括削除について
C言語・C++・C#
-
18
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
19
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
20
PDFファイルを開かずに印刷したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ShellExecuteの使い方について
-
MacOS:ターミナルではNPMのコ...
-
C#からバッチファイルを起動で
-
コンパイルできるのに実行できない
-
SYSTEM関数等を用いて複数のコ...
-
jarファイルをバッチで実行させ...
-
CloudSticky.jarが起動しない。
-
ACCESSでタイトルバーを非表示...
-
javaからバッチファイル実行
-
staticのメモリ共有について
-
Eclipseのアンインストールの仕方
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
シンボルが見つかりませんとい...
-
split関数で区切り文字がない場合
-
vs codeはオフラインでも使用で...
-
classファイルについて
-
Eclipse(JAVA)のデバッグで他...
-
JAVAにのeclipseに関する質問で...
-
マイクラjavaでForgeを入れたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでタイトルバーを非表示...
-
VBプログラムから「管理者とし...
-
ShellExecuteの使い方について
-
CloudSticky.jarが起動しない。
-
windowsのタスクスケジューラを...
-
ブレークポイントを設置してな...
-
32bitアプリから64bitアプリの...
-
staticのメモリ共有について
-
実行したらがメモ帳出て来てしまう
-
ShellExecuteでDOSコマンド実行...
-
batよりjava起動
-
C# コマンドプロンプト画面で表...
-
jarファイルをバッチで実行させ...
-
コマンドを実行してコマンドラ...
-
Tomcatのメモリー使用量が知りたい
-
windows power shell icacl
-
SYSTEM関数等を用いて複数のコ...
-
コンパイルできるのに実行できない
-
C#からバッチファイルを起動で
-
「SimpleEntry を型に解決でき...
おすすめ情報