• ベストアンサー

SetWindowPosについて

haporunの回答

  • haporun
  • ベストアンサー率40% (230/562)
回答No.1

APIのShellExecute関数の最後の引数にSW_SHOWNOACTIVATEを指定すると、起動したアプリケーションがアクティブにならずに起動しますよ。

kudo1
質問者

お礼

回答ありがとうございます。 他アプリケーションの起動にはCreateProcess関数を使っていますが、 そちらの引数wShowWindowでフォーカスを持たせずに起動することも 可能なことが分かりました。Shell関数を用いた方法も調べてみよう と思います。大変参考になりました。重ねて御礼申し上げます。

関連するQ&A

  • VC++2010ウインドウを常に最前面に表示する

    VC++2010ExpressEditionのフォームアプリケーションにより、簡単な機能のボタンの付いた小さいウインドウを作成しました。 起動した時に、これを常に最前面に配置する方法を教えてください。 いろいろ調べた結果、SetWindowPos を用いればよいことは分かったのですが これを具体的に、どこに書けばいいのか分かりませんでした。 Form1.h の中に書くのでしょうか? その他の場所でしょうか? また、その時の引数のハンドルは、どのように取得するのでしょうか? 基本的なことだと思いますが、インターネットを数時間調べても分からなかったので、質問させて頂きます。 よろしくお願いします。

  • EXCELの最前面設定解除について

    こんにちは。 VBでFindWindow関数を使用してEXCELのハンドルを取得し、SetWindowPos関数で 最前面に設定しているのですがEXCEL標準のダイアログボックスを開いたり (オプション設定や列幅設定等)、タイトルバーをダブルクリックしたり最大化 ボタンを押下して画面最大にしその後画面を元に戻した後、他のウィンドウが 上位に来たりして最前面設定が消えていました。 これはなぜでしょうか?この現象が起こらない(何をしても常に最前面)ように するにはどうすればよいでしょうか? 長くなりましたがどうか宜しくお願いします。

  • 他のアプリからVBのFormへフォーカスを戻したい。

    「他のアプリケーションにフォーカスがある場合に、 ショートカットキー(例:Ctrl+a)を押すと、 VBのFormへフォーカスが移る」ということをVBでプログラムしたいのですが、APIを使うのでしょうか? VBのイベントなどを使用したプログラミングの経験はあるのですが、APIの使い方は分かりません。 どなたか教えてください。よろしくおねがいします。

  • Accessで他アプリケーションのパラメータの取得をしているのですがう

    Accessで他アプリケーションのパラメータの取得をしているのですがうまく値が取れません 他アプリケーション(VB)から Accessを起動させてパラメータを送っているのですが Access起動時に cData = Trim$(Command) と記述しても cData の中身が空っぽです どのようにしたら取得できるのでしょうか?

  • プログラム終了時の戻り値

    現在、VBとJAVAのファイル連携で簡単なテストプログラムを組んでいます。自分は、VB側を担当しています。 内容は、VBの実行ファイルにパラメータをくっつけて起動し、そのパラメータを終了時に戻り値として返そうとしています。 パラメータを引数に起動するのは、Command()関数で行えることが分かったのですが、VB側が終了時にパラメータを返すことはできるのでしょうか? 起動時 aaa.exe A 戻り値   A よろしくお願いします。

  • VBAにてメッセージボックスを最前面に表示させる

    エクセルVBAにて、指定時刻になったらメッセージボックスを、最前面に表示させるプログラムを作成中です。 時刻の指定は、ontimeメソッドの使用でできました。 しかし、最前面(他のアプリケーションを開いていても、メッセージボックスが手前に表示される)がどうしてもできません。。 VBだとAPI関数を使って、フォームを常に最前面表示はできました。 メッセージボックスで、このような表示方法は実現可能なのでしょうか? どなたか教えて下さい。よろしくお願いします。

  • メインフォームとサブフォームについて

    こんにちは。 VBを勉強中の初心者です。 今メインとして使っているフォームをForm1とします。 サブとして使っているフォームをFrom2とします。 プログラムの実行時にForm1がでてくるのですが、 Form1を起動せず、Form2を起動したいです。 (メインフォームとサブフォームを入れ替えたいです) この場合はどうすればいいでしょうか? よろしくお願いします。

  • 他のアプリケーションの終了処理

    Shell関数を使って起動した他アプリケーションを 今度はその、他アプリケーションからではなく、V Bで作成したメイン画面の終了と同時に終了させた いのですが方法、又は適切な文法が分かりません。 よろしくお願いします。 ※ちなみにVBで作成したメイン画面の終了と同時 に終了させたい他アプリケーションは1つだけです。 しかも決まったパスに置いていて、この先もずっと 固定です。条件としては以上です。

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

  • VBで他のアプリケーションを操作する

    VBを使って、たとえばブラウザや適当なアプリケーションのテキストボックスに文字を書いて検索ボタンを押すことはできますか。 ブラウザなどは立ち上げておいて、最大化してテキストボックスの位置がわかっているものとして構いません。 マウスの位置を動かして、ウインドウをクリックして(VBのフォーカスは失われる)、文字列を送り込んで、ボタンを押すということができるのでしょうか。 もちろんVBのFormの中では個々の操作ができることはわかっています。 まるで人が操作しているかのように他のアプリケーションを間接的に操作できるかどうかを教えてください。