C#でD&Dしたファイルを複数起動する方法

このQ&Aのポイント
  • C#で作成したプログラムで、D&Dした複数のファイルを同時に起動する方法について知りたいです。
  • 現在、XXX.exeというアプリを使用して1つのファイルを読み込んで表示するプログラムを作成しています。
  • しかし、D&Dした複数のファイルを同時に起動する方法がわからず困っています。どなたか教えてください。
回答を見る
  • ベストアンサー

C#でD&D時に同一アプリを複数起動したい

XXX.exeというアプリがあります。 このアプリは、フォーム1つからなり、1ファイルを読み込んで、対象の行を抽出し、1つのウィンドウ上に表示する簡単なプログラムです。 【やりたい事】 XXX.exeに複数ファイルをドラッグ&ドロップ(以下D&D)した時に、D&Dした数だけウィンドウが開く様にしたいです。 イメージとしては、テキストファイルを複数選択し、エンターキーを押すとメモ帳が複数起動する様な動作をD&Dで行えたらと思います。 (このプログラムも、現状、複数ファイルを選択し、エンターキーを押すことで複数起動ができるのですが、やりたい事としてはD&Dで複数ウィンドウを開きたく思います。) "別プロセス 起動"とか"ドラッグ&ドロップ 複数ファイル 起動"とか色々調べてみたのですが、二十起動禁止のものしか見つからりませんでした。 このような類のソフトは、たくさんあると思うのでもっと簡単にできそうな感じがするのですが。 どうなのでしょうか? どのようにすれば良いかご存知の方、アドバイス宜しくお願いいたします。

noname#181803
noname#181803

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6642/9410)
回答No.1

まず、複数のファイルをDrag&Dropしたときというのは。 "XXX.exe△file1△file2" ※△はスペース と、コマンドラインから打ち込んだのと同じことになります。 ですから当然、 argc = 3 argv[0] = "XXX.exe" argv[1] = "file1" argv[2] = "file2" という状態でプログラムの起動がかかるわけです。 それならば、argv[1] ~ argv[argc-1] までのループを回し、それぞれについてウインドウ(フォーム)生成すれば、その様な動作になるんではないでしょうか?

noname#181803
質問者

お礼

ありがとうございました。 なるほどですね。 蓋を開けてみれば単純なんですね・・・。 そこに気づかない私もあれなのですが。f(^^;) とりあえず、ファイルのD&Dのところは、後で実装するとして、 今回フォームを複数生成し、閉じるところまでなんとかできました。 アプリケーション自体の終了でかなり悩みましたが。。。 動きを理解するのが、難しいですね~。 これがオブジェクト指向というのですかね。 私は手続き型の古い人間なのでこれからもっと苦労しそうです。(^^;) 後は教えてもらったようにフォーム生成時に引数でargvを渡して初期化し、引数分フォームを生成すれば、なんとかいけそうな感じです! ありがとうございました。 助かりました!!!

関連するQ&A

  • コンソールアプリの起動パラメータ について

    ・環境   XP, Borland C++ Compiler 5.5 ・使用言語   C++ コンソールアプリを作成しています。 コンパイルして出来上がったEXEのアイコンに、何かファイルを ドラッグ&ドロップすると、そのファイルがパラメータとなって EXEが起動されると思うのですが、ここで疑問があります。 (1)最大パラメータ数というのはどこかに規定されているのでしょうか。 (2)複数のファイルをドラッグ&ドロップした時に、EXEに渡される順番というのはどのように決定されるのでしょうか。 よろしくお願い致します。

  • Windowsアプリ 外部プログラムの複数起動

    Windowsアプリを作成することになり、そのアプリで次の 動作をさせたいと思っています。 ・メニューバー内の項目をクリックすると同一exeファイルが  複数起動する。 ・例として、  ・・「ファイル(F)」のリスト内に「レポート」という    項目を作成し、「ファイル(F)」→「レポート」と    選択し「レポート」をクリックすると、Report.exe    (C:\Program Filesフォルダ内)を4個起動させる。  ・・4個のexeは、別々のウィンドウで表示される。  ・・その別々のウィンドウは、重ねて表示することや、    並べて表示することもできる。 開発環境を下記します。  WindowsXP Professional  Visual Studio.NET 2002  VC++ MFC そこで質問ですが、上記の動作は、  ・実現できますか。  ・実現できるならSDI、MDIのどちらになりますか。  ・実現できるなら参照するサイトやサンプルプログラム、   書籍、ヒントとなる関数やコードなど、なんでも   よろしいのでご存じなことを教えて頂けないで   しょうか。 ご存じの方すいませんがよろしくお願いします。

  • 勝手に別メモリー起動するアプリ?

    勝手に別メモリー領域で起動していると思われるアプリに時々出会い悩みます。 最初からそうであれば諦めるのですが、自分では無意識のうちに、いつの間にか挙動の変わることもあるのでその場合は悩みます。 なぜ別メモリー領域?と予想しているかと云いますと、 ある時を境に、以後データファイルのドラッグアンドドロップが出来なくなり困るからです。 exeファイルのプロパティを確認すると、互換性タブでの「管理者としてプログラムを実行する」チェックボックスはOFFのままです。 この現象は、Windowsの仕様上、何が起きている事になりますでしょうか?

  • タスクバーの複数起動した同一アプリの順を変える方法

    いくつものアプリケーションを起動すると、タスクバーに表示されますよね。IEを複数開くと、これをドラックandドロップすることで、他のアプリの前後に移動させたりすることもできます。 ですが、複数開いたIEの順番を変える事はできないでしょうか?シフトキーやコントロールキーを押しながらやってもできません。そういったことを可能にする方法やツールなどをご存知でしたら、お教えください。

  • SDIアプリ D&Dで複数のファイルを開く

    お世話になります。 Windowsプログラム初心者です。 「猫でも分かるプログラミング」のサイトを参考にSDIアプリケーションを作成しました。(単純なビットマップビュアーだと思っていただいてほぼ間違いありません。) 開きたい画像ファイルをアプリのアイコンにD&Dして開く仕組みも、「猫でも分かる」の256章を真似て組み込みました。 D&Dするファイルが一つだけならうまく開けるのようになったのですが、二つ以上D&Dしたときにすべてのファイルを開く仕組みが分かりません。 具体的には、 ・引数が複数与えられたことを知る方法。 ・引数与えられたときにもう、別ウィンドウを開いてそちらで引数を処理する方法。 おそらくこの二点が分かれば先に進めると思うのですが・・・ どなたか迷える子羊に道を示してください。 よろしくお願いします。

  • VBSを起動後にファイルをドラッグ&ドロップ

    [環境] Windows 7 お世話になります。 完全にお遊び程度の内容になりますが、 VBSでドラッグ&ドロップしたファイルのファイル名を取得するプログラムを 作成しているのですが、 検索してもそれらしき方法が見つからずヤキモキしています。 まだ起動していないVBSファイルに対してのドラッグ&ドロップする方法であれば 結構HITするのですが、そうではなく私がやろうとしているのは、 既に起動しているVBSのアプリにドラッグ&ドロップをしたファイル名を 取得したいのです。(ちなみに取得したいのはフルパス) 取得したファイル名はInputBoxか何かに表示する程度でいいのですが、 案外むずかしかったりするのでしょうか? ご回答よろしくお願いします。

  • バッチファイルで複数のWebページやアプリを起動する方法

     毎朝、複数のWebページとアプリを起動するのですが、いちいちIEを起動して、お気に入りからURLを選択したり、アプリを起動していたのですが、バッチファイルで一度にすべて起動できるのではないか。という情報を得たのでですが、良くわかりません。ご教示いただけますでしょうか。 私の環境ですが、OSはXPです。  今まで知り得た情報は下記のとおりです。 メモ帳を新規に起動して start "" "C:\Program Files\Internet Explorer\IEXPLORE.EXE" start "" "http://yahoo.co.jp/" start "" "C:\Program Files\Internet Explorer\IEXPLORE.EXE" start "" "http://www.google.co.jp/" start "" "C:\Program Files\Internet Explorer\IEXPLORE.EXE" start "" "http://goo.ne.jp/" start "" "C:\WINDOWS\system32\notepad.exe" と、入力し、ファイル名を 朝.bat にして保存する。 朝.batをダブルクリックすると、yahooとgoogleとgooとメモ帳がそれぞれ起動できると思ったのですが、IEが1つ多く起動します。  あと、可能であれば、最大化して開くためのオプションとかもあれば併せてご教示ください。  

  • C#:C#のFormから、WindowsのExplorerへのD&Dした時のパスの取得

    C#のプログラム歴1ヵ月の新参者です。 (C,C++の経験はありません。) C#のListViewのアイテムを、WindowsのExplorerに ドラッグ&ドロップしたときの、フォルダパスを C#側で拾いたいのですが、拾い方がわからず困っています。   ネットで検索してみたのですが、WindowsのExplorerから C#側へのドラッグ&ドロップの解説は沢山あるのですが、 Windows Explorerへのドラッグ&ドロップの解説をしてくれる所が、全く見つけられずトホホな状況になっています。 C#だけでの実装では無理なのでしょうか? すいませんが、よろしくお願いいたします。

  • あるアプリを複数、起動する

    例えば、GOM PLAYERは、一つ起動すると、別の映像などを再生しようとした時に現在再生している映像が止まって新しい映像が再生されてしまいます。 複数起動出来れば、二つの映像のファイルを再生出来ると思うのですが、こういったアプリの場合、どうすれば複数起動できるでしょうか?

  • アプリを開いた状態にする方法

    いつもお世話になります。 VC++でプロジェクト、「MFCアプリケーション」で Windowダイアログで用いてプログラムを書きましたが、 実行ファイル(.exe)を起動すると ウィンドウが閉じた状態になります(ディスクトップ画面に表示されず閉じて状態ではあるが、起動している状態)。 実行ファイル(.exe)を起動し、ウィンドウを開いた状態にする設定などはあるのでしょうか? ちなみに、閉じた状態で選択するとアプリは開きますが、あくまで、起動して開いた状態にしたいです。 どうぞよろしくお願い致します。

専門家に質問してみよう