C++プログラミングでファイルドラッグ起動時のデフォルトパスを変更する方法

このQ&Aのポイント
  • C++プログラミングでファイルドラッグ起動時に、デフォルトパスを変更する方法を探しています。
  • 現在、プログラム内で指定しているファイル名の方法では、ファイルドラッグ起動時にエラーが発生してしまいます。
  • アプリケーションのパスを取得する関数を呼び出すこともできますが、処理が時間がかかってしまうため、別の方法を模索しています。
回答を見る
  • ベストアンサー

ファイルドラッグ起動時のデフォルトパス

C++でプログラミングをしている物ですが、 プログラム内でファイル名を指定するとき「Data/img.bmp」のように指定できるのですが、 このプログラムの実行ファイルにほかのファイルをドラッグして実行した場合、上のファイル名の指定の仕方だとエラーが出てしまいます。 それは実行ファイルのデフォルトのパスが変わってしまうのだとか・・・ で、ファイルを読み込むときにアプリケーションのパスを取得する関数などを呼び出してフルパスで指定することもできるのですが、読み込むファイルの量が膨大で、すべてにその処理をしていると時間がかかってしょうがありません。 そこで、アプリケーションのデフォルトのパスをプログラムで変える方法を探しているのですが見つかりません。 解決法を探しています。どなたかよろしくお願いします。

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

Win32 APIであればSetCurrentDirectory()、Cランタイムライブラリであれば(処理系依存ですが)chdir()ないし_chdir()というところです。

genki140
質問者

お礼

できました!! ありがとうございましたm(_ _)m

関連するQ&A

  • バッチファイル

    今画像処理のプログラムを作成しています. そのプログラムで,2つの入力画像データを読み込みたいのですが, うまくいきません. 下記のようにプログラムしています. //---------------------- C言語のソース -----------------------// strcpy(Img.FileNameIn1,argv[1]); //InputData1のファイル名の取得 MakeFileName(&Img,"ou1.bmp"); //出力ファイル名の作成 Readbmp(&Img); //InputData1のデータの読み込み strcpy(Img.FileNameIn2,argv[1]); //InputData2のファイル名の取得 MakeFileName(&Img,"out2.bmp");  //出力ファイル名の作成  ReadRaw(&Img); //InputData2のデータの読み込み //------------------------------------------------------------// //------- バッチファイルではこのように書いています ------// @echo off set COMAND = program.exe set PATH = * .bmp set PATH = *_s.bmp echo on for %%A in (%PATH%) do %COMAND% %%A //---------------------------------------------------------// しかし,両方とも,同じ名前の画像を取得してしまいます. 違う画像を取得するにはどのようにプログラムを書いたら よいのでしょうか.アドバイスよろしくお願いします.

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

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

  • exeファイルにドラッグすることで動作するプログラム

    現在、exeファイルのアイコンにデータファイルをドラッグすることで、プログラムを動かし、データファイルを読み込んで処理するプログラムをVisualC++2008ExpressEdtionで作成しています。 ここで質問が2つあります。 <質問1>  データファイル名に日本語(2バイトコード)が含まれている場合、CreateFile関数でエラーとなります。ファイル名に日本語を含む場合どのようにすればよいか教えてください。 <質問2>  現在作成しているプログラムでは、処理結果をファイルに出力しています。出力ファイルのフォルダをexeファイルのある場所にしたいのですが、プログラムコード上で相対パスで指定すると、上手く動きません(別フォルダに出力ファイルが作成されます)。ドラッグによってexeファイルを起動する場合、exeファイルのあるフォルダを知るにはどうしたらよいのでしょうか?

  • ドラッグ&ドロップについてです。(VB.NET)

    フォーム上に「PictureBox」コントロールを置いた状態で実行し、その「PictureBox」にデスクトップ等からファイルやフォルダをドラッグ、ドロップしまして、そのファイルやフォルダのパス名を取得するにはどうすればいいですか? そのプログラムのサンプルがあるサイトでもいいです。

  • ファイルドラックでアプリを起動したら・・・(MFC)

    いつもお世話になっております Win98SE VC++6.0 MFC SDI formview ベースのアプリケーションを作っているのですが、 アプリケーションのアイコンに開くファイルをドラックしたら以下のエラーのダイアログがでて、コマンドライン引数が受けられないばかりかアプリケーションが止まってしまいます。 ------------------------------------------ Microsoft Visual C++ Runtime Library Runtime Error! Program : "実行ファイルの名前" abnormal program termination ------------------------------------- どこをいじってそうなってしまったのかわからないので困っています。 心当たりのあるかたアドバイスお願いいたします。 普通に起動して、開くコマンドでファイルを開くのは大丈夫です。

  • 実行ファイルへのドラッグ&ドロップ起動

    VB6 WindowsXP 実行ファイルにファイルをドラッグ&ドロップして起動します。 Private Sub Form_Load() Dim FILE_NAME As String Dim EXE_PATH As String FILE_NAME = Mid(Command, 2, Len(Command) - 2) EXE_PATH = '********** End Sub ファイルの名前・パスは取得できるのですが、実行ファイルのパスが取得できずに困っています。 実行ファイルを通常起動した場合はCurDirで取得できますが、ドラッグ&ドロップ起動をした場合、CurDirではログインユーザーディレクトリを返してしまいます。 宜しくお願いします。

  • ファイルのドラッグ中にファイル名が表示されません。

    Windows XP SP3を使用しています。 なぜかドラッグ中にファイル名(フォルダ名)が表示されなくなりました。 例えば、左クリックでフォルダを選択し、ドラッグして別の場所に移動させるとします。 もしくは、右クリックしたままドラッグでファイルを移動し、別の場所にコピーするとします。 そんなとき、ドラッグ中はアイコンだけが表示され、 フォルダ名やファイル名が表示されないのです。 不思議なのはドラッグ中にファイル名が表示されるファイルもあることです。 どうやら拡張子によるらしく、少し調べてみると以下のような結果になりました。 <ドラッグ中にファイル名が表示されない> フォルダ / mp3 / txt / iso / jpg / gif / png / bmp / dat / avi / ai / html / xls <ドラッグ中にファイル名が表示される> exe / msi / zip / rar / vbe / psd また、ファイル名が表示されるファイルでも、二つ以上を選択してドラッグすると、 やはりドラッグ中はアイコンだけしか表示されませんでした。 表示は「一覧」を使用していますが、「アイコン」にしても同じ現象が起こりました。 「縮小版」では現象は起こりませんでした。 なお、システムの復元も行いましたが、状況は変わりませんでした。 表示されるファイルもある、ということはシステムの問題ではなく、 何か常駐アプリケーションが問題を引き起こしているのかと思っているのですが・・・。 何かおわかりの方がおられればご教授お願いします。

  • バッチファイルを実行するとエラーが出る

    win2000を利用しています。起動時に自動的にアプリケーションを実行させるバッチファイルを作りたいのですがエラーがでます。 以下のように書いています。このバッチファイルをスタートアップに入れて実行させたいと思っています。 そして試しに手動で実行してみると、構成ファイルが見つからない、パス名を確認してくださいと言ったいエラーが出ます。 パスが間違っているのかと思い、 「C:\Program Files\Internet Explorer\IEXPLORE.EXE」だけをファイル名を指定して実行をするとちゃんとIEが起動します。 何が間違っているのかわからないのですが、ヒントだけでもお願いします。 test.bat(ファイル名) --------------------------- start C:\Program Files\Internet Explorer\IEXPLORE.EXE ---------------------------

  • ファイルをドラッグした時にexcelを開く

    お世話になっています。 以下のことが実現したいのですが、まったく方法がわからず困っています。 1.サーバー上の特定のフォルダAに不特定のファイルB、C、D・・・・をドラッグする 2.ドラッグすると同時にA内にあるファイルX.xltmが開く 3.そこにB、C、D・・・のパスをハイパーリンクで順に書き込みたいのです。 (パスは\\サーバー名\A\Bとなり、Bの部分がC、D、と変わっていく感じです) やりたいことは、フォルダAにどんどん入れられていくファイルのリストを作成して、他の使用者がそこからハイパーリンクで必要なファイルを開く、ということです。 申し訳ありませんが、教えていただけると助かります。 宜しくお願いします。

  • ドラッグしたファイルのパスを取得したい

    Windows2000(sp3) VisualBasic6.0(sp5) で開発しています。 テキストボックス付きのあるアプリケーションを作成し、そのアプリのテキストボックス上へ、エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのフルパスを表示する。 ということをしたいと考えています。 例 コマンドプロンプトに、エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのパス付きの名称が表示される。 良い方法をご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。