• ベストアンサー

C# アプリ起動バスについて

ビルドした後に、exeを置いている、起動パスを取得したいのです。 どうしたらいいか、教えてください。

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

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.3

No.1です。 実行ファイル自身のPATHは下記でいいのでは? 実行ファイルも含む場合は Application.ExecutablePath 実行ファイルを含まない場合は Application.StartupPath Formロード時の事例は添付画像参照。 --- > この「@」って、なんのオマジナイですか。 文字列テキストに円記号が含まれる場合 (ファイル パスなど) の記述方法です。 マイクロソフトの「文字列 (C# プログラミング ガイド)」の 「標準リテラル文字列と逐語的リテラル文字列」参照。 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/strings/

tochanboy
質問者

補足

回答ありがとうございます。 質問の記述が不十分で、お手数をかけましたが、解決いたしました。 ありがとうございます。 > この「@」って、なんのオマジナイですか。 とりあえず、 string PH = Application.StartupPath; PH = PH + "\"; MessageBox.Show(PH); を実行すると、エラー PH = PH + @"\"; すると、OK。 ・・・ということで、プチ理解。 「標準リテラル文字列と逐語的リテラル文字列」も、恥ずかしながら、半わかりで、ぼちぼち理解を深めたいと思います・

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

>System.IO.Path.GetDirectoryName(@"c:\windows\system32\notepad.exe"); この「@」って、なんのオマジナイですか。 "~"内の \によるエスケープを無効にします。 なので "\\\\" は @"\\" と書けます。

tochanboy
質問者

補足

回答、ありがとうございます。 理解できました。 申し訳ないのですが、Best Answer は、質問の行きがかり上、他の方を選ばせていただきました。 今後とも、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.1

「起動パス」? ディレクトリを取得したい、ということであれば GetDirectoryNameメソッドではどうですか。 たとえば System.IO.Path.GetDirectoryName(@"c:\windows\system32\notepad.exe"); なら c:\windows\system32 が返ります。 --- powershell で split-path c:\windows\system32\notepad.exe -parent のように実行して確認してみてください。

tochanboy
質問者

補足

回答ありがとうございます。 知りたいのは、ビルド後に、作成したアプリが、必要とするデータを 読み込みたいわけです。作成したアプリと同じ場所に、データも置きたいと思ってます。 なので、FormLoadしたときに、このアプリとデータを置いてあるexeのフルパスが知りたいのです。 追加ですが、 >System.IO.Path.GetDirectoryName(@"c:\windows\system32\notepad.exe"); この「@」って、なんのオマジナイですか。 同様な例で、以前に"c:\windows\system32\notepad.exe"の部分を、文字列変数でやろうしたらしくじりました。どうすればいいのですか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Visual C++ 2010 Expressについて。

    Visual C++ 2010 Expressについて。 Visual C++ 2010 Expressを使っているのですが、 プロジェクトを開いて1回目ビルドすると必ずエラーが出ます。 ビルドした後1回閉じて開き直してビルドすると正常にビルドできます。 エラー内容 C:\(省略)\ファイル名.vcxproj : error MSB4014: 内部エラーのため、ビルドは予期せず停止しました。 C:\(省略)\ファイル名.vcxproj : error MSB4014: Microsoft.Build.Exceptions.BuildAbortedException: ビルドが取り消されました。MSBuild.exe は、場所 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" に見つからなかったため、子ノードとして起動できませんでした。必要に応じて、BuildParameters または MSBUILD_EXE_PATH 環境変数で正しい場所を指定してください。 と出ます。 原因を色々調べてみたのですが分かりませんでした。 かもしれないということでもいいので答えて頂けると助かります。 環境 XP SP3 Visual Studio 2005が入っています。 ちなみに、2005は正常に出来ます。

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

    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ではログインユーザーディレクトリを返してしまいます。 宜しくお願いします。

  • 他アプリの起動

    builderC++を使用してます。 sample.exeを起動した際にもう一つの他アプリ(sample2.exe)を起動させ、 sample.exeを終了した際に一緒に起動したsample2.exeも終了させるコードはどういう風に書けばよろしいですか? WindowsAPIのCreateProcessを使い起動させようとしてます。 ご教授お願いします。

  • 起動中のファイルのパス取得

    WindowsXPで、起動しているにもかかわらず、プロセスに表示されていないexeファイルの絶対パスを取得するにはどうしたらいいんですか? 検索(ファイル名.exe)しても出てきません。 でも、スタートアップには登録されているみたいで。。 「いじくるつーる」でスタートアップのファイルを調べてみたんですが、なかったです。 iniファイルを削除してもまた復活します。。 一体、どうやって起動させているのかが不思議です。 ちなみに、そのソフトは「WatchYourPC」です。 困ってるので早めにお願いします!!

  • Cドライブから起動してセットアップさせたい

    付属のFDDが外付けでなぜか使えなく、内臓なら使え、CDドライブと共に使えないもんで。 フォーマットしたCドライブ(ハードディスク)で、起動ディスク で起動するのと同じように、DOSを起動したいのですが、どうすればいいのでしょうか? 起動ディスクのデータをDOSでコピーするだけでいいので すか? コマンド等も教えてください。 WIN95 98 ME どのディスクもあります。 WIN98の起動ディスクでやってみたところ。 次のように出てしまいました。 ------------------------ シークエラーです。 読み取り中ドライブA 診断ツール用の一時ドライブを作成できませんでした。 処理に必要な拡張メモリが不足している可能性があります。 パスが見つかりません - \COMMAND.COM パスが見つかりません - \EXTRACT.EXE パスが見つかりません - README.TXT コマンドまたはファイル名が違います。 診断ツールが ドライブに読み込まれました。 ファイルが見つかりません。 ---------------------- AUTOEXEC.BATの path=%RAMD%:\;a:\;%CDROM%:\ を path=%RAMD%:\;c:\;%CDROM%:\ に変えました。 CONFIG.SYSはA:\となっているところはありませんでした。 どうすれば正常に起動し、CD-ROMドライブを認識しますか?

  • VB2008アプリをWindowsXPで実行するには

    VB2008でビルドされたアプリがあります。 これをWindowsXP上で実行したいのですが、Windows Updateから.NET FrameWork3.5をインストールし、PCを再起動しましたが、EXEを起動するとアプリケーションエラーとなってしまいました。 何か足りないのでしょうか?

  • アプリを起動できない。

    アプリ(-.exe)を起動すると、ポップ(メッセージ無しの赤いバツ印)が出て正しくアプリが動作しません。 なぜ動かないのか分からなくて困っています。

  • ほかのアプリのフルパス?

    こんばんわ。E46-M3です。 さっそくですが、自身のアプリケーションのフルパスを 取得することは出来たのですが (GetModuleFileName使用) 他の起動中アプリケーションのフルパスを 取得することが出来ません。 どなたかご存知な方いましたら教えて下さい。 具体的なサンプルコード等ありましたら なおうれしいです。よろしくお願い致します。

  • アプリをXX秒後に起動する(VB.NET)

    Shell("C:\Program Files\SOURCENEXT\驚速xp3\SFBRun.exe", AppWinStyle.NormalFocus) 都合によりスタートアップに色々入れています。 しかし起動が遅くなるので、起動時に無効にするとこができる(キャンセルしないとXX秒後に起動するソフト)を作りたいのですが(※)なぜかうまくできません。 他のアプリは(メーラー)出来たのですが、コレがうまくできません。 インストールはデフォルトで行っています。 パスは正しいとおもうのですが、なにがいけないのでしょうか? 日本語かなとも思ったのですが、他のアプリで試すとうまく出来たので、なにがいけないのかよくわかりません。 ※・・・なおワクチンソフトなどを無効化するのはダメであり、Shiftを押しながら起動するというのは却下とします。

  • Visual Basic 6.0 で、位置とサイズを指定して外部アプリを起動させたい。

    Visual Basic 6.0 で、位置とサイズを指定して外部アプリを起動させたいのですが、どのような命令を組み合わせれば良いのでしょうか? 今やりたい事は、メモ帳(notepad.exe)を画面の左上(0,0)の位置、サイズを100x100にして起動させたいと思っています。 一度普通に起動させ、その後でウィンドウタイトルからハンドルを取得して位置とサイズを変更するのは出来るのですが…。 よろしくお願い致します。

このQ&Aのポイント
  • 卒業旅行の計画で友達と高速バスの予約をしていたが、友達からキャンセルして電車で行くことを提案された。
  • 入金済みだったためキャンセル料が発生し、友達に請求するか迷っている。
  • 友達との関係を考え、請求するのが申し訳ないが、支払いに余裕がないため請求したい。
回答を見る

専門家に質問してみよう