
既存のプログラム(他の人が作成したもの)を参考にプログラムを作成しましたが、どうしても、希望通りの挙動となりません。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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batよりjava起動
-
VBプログラムから「管理者とし...
-
SYSTEM関数等を用いて複数のコ...
-
バッチファイルの書き方について
-
C#からバッチファイルを起動で
-
C++ で DIR コマンド
-
jarファイルをバッチで実行させ...
-
ACCESSでタイトルバーを非表示...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
「ワークスペースをビルド中」...
-
JSPのクラスをコンパイルできな...
-
Eclipseのアンインストールの仕方
-
この <windows.h> はどこに在る...
-
Javascriptの値をJava(JSP)へ渡...
-
vs codeはオフラインでも使用で...
-
自分で作成したservletを起動す...
-
Javaのコンパイル結果が表示さ...
-
classファイルについて
-
JAVAにのeclipseに関する質問で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBプログラムから「管理者とし...
-
MacOS:ターミナルではNPMのコ...
-
ACCESSでタイトルバーを非表示...
-
32bitアプリから64bitアプリの...
-
batよりjava起動
-
CloudSticky.jarが起動しない。
-
コマンドを実行してコマンドラ...
-
コマンドプロンプトの使い方
-
コマンドプロンプトが使えない
-
ShellExecuteの使い方について
-
VB6.0 ラベルが文字化け
-
実行したらがメモ帳出て来てしまう
-
staticのメモリ共有について
-
ACCESS VBA からエクセルを最小化
-
windowsのタスクスケジューラを...
-
jarファイルをバッチで実行させ...
-
javac のエラーメッセージについて
-
javaの中で環境変数を設定する。
-
FAT32→NTFS変換がうまくいきません
-
外部コマンドを実行する方法
おすすめ情報