C#でのディレクトリ指定時のユーザーネーム

このQ&Aのポイント
  • C#でプログラミングをする際に、ディレクトリを指定する際のユーザーネームについて解説します。
  • ボタンをクリックしてChromeを起動させたい場合、指定するディレクトリにはユーザーネームが含まれているため、プログラムで指定するのが困難です。
  • 具体的なソースコードの例を示し、ディレクトリ指定時のユーザーネームの取り扱いについて詳しく説明します。
回答を見る
  • ベストアンサー

C#でのディレクトリ指定時のユーザーネーム

C#でのディレクトリ指定時のユーザーネーム C♯でプログラミングをしています ボタンをクリックして時にChromeを起動させたいのですが、Chrome.exeのある場所はユーザーネームも含まれる場所にあるので、私の技術では指定できません ちなみにソースは以下の通りです private void button3_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(@"C:\Documents and Settings\○○○\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"); } よろしくお願いします

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

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

#1 です。 >もしよろしければ、サンプルをいただけないでしょうか? リンク先はご覧になりましたか? 下の方に、思いきりC#のサンプルが書いてあるんですが… (^^; 以下、改行は適宜補正してください。 string localAppDir = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); で、localAppDir に "C:\Documents and Settings\○○○\Local Settings\Application Data"までの文字列が格納されます。 よもや、この先がわからない、と言う事はないですよね。

pokemontoka
質問者

お礼

参考URLをご記入くださっていたのですね 自分、おっちょこちょいなところがあって見忘れてました すいませんm(__)m 無事に完成しました!!! ありがとうございました

その他の回答 (1)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

"C:\Documents and Settings\○○○\Local Settings\Application Data"までのパスは、EnvironmentクラスのGetFolderPathメソッドで取得可能です。 Environment.SpecialFolderのLocalApplicationDataメンバに格納されます。 参考URL 特殊ディレクトリのパスを取得する

参考URL:
http://dobon.net/vb/dotnet/file/getfolderpath.html
pokemontoka
質問者

補足

ご回答ありがとうございます もしよろしければ、サンプルをいただけないでしょうか? よろしくお願いします

関連するQ&A

  • C♯での特殊ディレクトリ取得について

    C♯での特殊ディレクトリ取得について ※僕はプログラミング初心者です それを踏まえてお読みください ボタンをクリックした時にChromeを起動させたいので、 System.Diagnostics.Process.Start(@"ファイルアドレス"); を使ってやることにしました しかしGoogleChromeのある場所は、 C:\Documents and Settings\ユーザーネーム\Local Settings\Application Data\Google\Chrome\Application\chrome.exe とユーザーネームが入っていて指定できません そこで、特殊ディレクトリ取得について調べてみたのですが、僕の関数の知識がないため、できませんでした サンプルを記述していただけるととても助かります 参考URL ttp://jeanne.wankuma.com/tips/csharp/path/systemdirectory.html

  • C#での書き方

    vb.netでは別のイベントを呼び出すとき下記のような書き方ができたのですが、C#ではどう書くんでしょうか? (ボタン2を押したらボタン1の処理が走る) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click MessageBox.Show("AAA") End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Button1_Click(sender, e) End Sub

  • C#でオブジェクトの有無を取得する

    オブジェクトが作られている時と作られていない時で処理をわけたいのですがうまくいきません。 この書き方の何がまずいのでしょうか? namespace オブジェクト検索 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Control c = Controls["form2"]; if (c != null) { ((TextBox)c).Text += "*"; } } private void button2_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); Application.DoEvents(); } } } ボタン2を押した時に新しいフォームが立ち上がり、そのフォームがあるときは*が出るようにしたいです。

  • C#でMediaPlayerを立ち上げた後

    お世話になります。 C#(.Net 4.0)で、MediaPlayerをコントロールでフォーム等に 張り付けるのではなく、System.Diagnostics内の Process.Start("wmplayer.exe","再生ファイル")で 外部プログラムとしてmp3や動画を開いたときに、 再生が終了(最後まで再生し終わったら)したら、 自動でMediaPlayerを終了させたいのですが、 その方法はありますでしょうか。 現在のコードはこうなっています(usingは省略)。 private void button1_Click(object sender, EventArgs e) { Process p = Process.Start("wmplayer.exe", @"C:\Users\hoge\Documents\abcde.mp4"); p.WaitForExit(); } 特に何の変哲もない、外部プログラムの起動ですが、 自動で閉じてもらわないと、下のWaitForExitに処理が回りません。 対策をお願いいたします。

  • VC#2008の動作について

    VC#2008について、下記の場合、button1をクリックし、 その次に、button2をクリックしても全く反応しません。 どのように改良すれば反応しますか? 処理が重く止まったと感じた時、メッセージを表示した後、 アプリケーションを終了したいと思っています。 どなたかご存知の方、教えていただけないでしょうか? 宜しくお願い致します。 namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1(){ InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { System.Threading.Thread.Sleep(10000000); } private void button2_Click(object sender, EventArgs e) { MessageBox.Show("close"); System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("myapp"); foreach (System.Diagnostics.Process k in p) { k.Kill(); } } } }

  • C++でメッセージボックスを表示したい

    C++でメッセージボックスを表示したい フォーム上にbutton1を設置しました。 クリックして、メッセージボックスを表示したいのですがどうすればいいのかわかりません。 vb.netで言う Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("test") End Sub をC++で書くとどうなるんですか? button1をダブルクリックして private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { } }; を表示させたのですが、どこにMessageBoxを入れればいいのか教えてください。 よろしくお願いします。

  • C#プログラムにて

    C#プログラムにて お世話になります。 C#初心者です。 プログラムコードを書き始めで、早速行き 詰っています。 ステップでコードの動きを確認したところ、 program.csのMainから下記のForm1.csに 移りForm1のデザイナが表示されるのですが、 button3を押してもForm3が表れません。 また、ステップの黄色いカーソルと言いますか ステップの位置情報も消えています。 何がどう悪いのか分からなく困っています。 どなたかご親切な方、ご教授頂きたく 宜しくお願い致します。     記 using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { Form3 cForm3 = new Form3(); cForm3.ShowDialog(); } private void button2_Click(object sender, EventArgs e) { DialogResult ans; ans = MessageBox.Show("最新のコード表を照会しますか?", "Microsoft Visual Studio", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (ans == DialogResult.OK) Application.Exit(); } private void button12_Click(object sender, EventArgs e) { Form4 cForm4 = new Form4(); cForm4.ShowDialog(); } } }

  • Sleep(0)について

    VS2010C++でWindowsフォームアプリケーションをつくろうとしています。 ループさせたいイベント(button1)中に、button2のイベントを行いたいのでSleep(0)を使って以下のようにしました。 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { while(1){ Sleep(0); // ループさせたいイベント ・・・・・・・・・・・・・・・・・・・・ } } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {    ・・・・・・・・・・・・・・・・・・・・ } アプリケーション起動後button1をクリックすると、Sleep(0)が無いときと同じようにボタンを受け付けなくなります。 Sleep(0)の使い方が間違っているのでしょうか。

  • メモ帳を開いて最大化するには?

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles cmd_ボタン.Click System.Diagnostics.Process.Start("notepad.exe") End Sub これでメモ帳を開くことはできたのですが、最大化するにはどうすればいいでしょうか? System.Diagnostics.Process.Start("notepad.exe") ,vbMaximizedFocus にすると エラーステートメントの終わりを指定してください。 になってしまいます。

  • C# フォーム追加後、旧フォームを閉じたい

    前略 ・C#で教えてください。 ・Form1 からshowDiag()メソッドでForm2をつくります。Form2が表示されたら非アクティブとなったForm1を閉じたいのですが どのようにしたらよいのかおしえてください。  下記は、Close() メソッドで Form2側から閉じようとしたプログラムですがFrom1を閉じることができません。 よろしくお願いします。 //----------------------------------------------- namespace formClose { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.ShowDialog(); } }   public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { Form1 form1 = new Form1(); form1.Close(); //Form1が閉じない!! } private void button1_Click(object sender, EventArgs e) { this.Close(); //Form2を閉じる }    } } 以上