- PR -

印刷結果のイメージファイル出力後、カレントディレクトリが変更される

1
投稿者投稿内容
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-06-29 02:06
こんばんわ、深山です。

[環境]
OS : WinXP SP2
言語 : C# VS2003
プリンタ : Microsoft Office Document Image Writer バージョン:11.0.1897.0(Office2003付属)

上記の環境で、開発をしていたのですが、
PrintDocumentコントロールを使用して、Microsoft Office Document Image Writerで印刷結果をファイル出力をすると、
アプリ起動時に設定しているカレントディレクトリが変更されてしまいます。

コード:

private void button1_Click(object sender, System.EventArgs e)
{
	string current_old = string.Empty;
	string current_new = string.Empty;

	current_old = Directory.GetCurrentDirectory();

	// 設定INIファイルの存在確認
	if (File.Exists(@"./setting.ini"))
	{
		this.printDocument1.Print();
	}

	current_new = Directory.GetCurrentDirectory();		
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
	using(Bitmap bmp = new Bitmap(@"c:\Image.bmp"))
	{
		e.Graphics.DrawImage(bmp, new Point(0, 0));
		e.HasMorePages = false;
	}
}



印刷結果をファイル出力してからカレントディレクトリを調べると、ファイル出力したフォルダがカレントディレクトリに設定されてしまいます。

当初、印刷設定ファイルを読み込んでから、印刷を開始していたのですが、
相対パスでファイル指定をしていたため2回目以降は印刷されず少し悩んでしまいました。。。
#相対パスでファイル指定するなよ(,,゚Д゚)∩

ファイル生成のときに、カレントディレクトリが変更されるのからと思い、
File.Createメソッドでファイルを生成しましたが、変更されませんでした。

この現象はPrintDocumentまたはMicrosoft Office Document Image Writerの仕様なのでしょうか?

何が原因で起こった現象なのかわからないのですが、ご存知の方がいましたらご教授ください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-29 10:23
引用:

深山さんの書き込み (2006-06-29 02:06) より:

#相対パスでファイル指定するなよ(,,゚Д゚)∩


同意です。

どこかで書いたことがあるような気がしますが、CurrentDirectory はどうなるか保証がないので、
自分で作成したプログラムでは使わない方がよいでしょうね。
使わなければ影響ないわけで...

# Application.ExecutablePath プロパティなどを使うようにしています。

引用:

この現象はPrintDocumentまたはMicrosoft Office Document Image Writerの仕様なのでしょうか?
何が原因で起こった現象なのかわからないのですが、ご存知の方がいましたらご教授ください。


Microsoft へフィードバックした方が良いと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-06-30 00:31
じゃんぬねっとさん,レスありがとうございます。

MSDNフォーラムのこちらにフィードバックさせていただきました。

この件に関する情報などがありましたら、ご投稿お願いします。
1

スキルアップ/キャリアアップ(JOB@IT)