2017-11-18 12 views
-2

私はC#、.NetプラットフォームでWindowsフォームアプリケーションを使用して小さなプログラムを作成しています。ペイントアプリを作って、私が行った絵を保存したいとしましょう。プログラムを使用して一部の部品を変更できるように、私が行った変更を保存してもう一度開くことはできますか?ウィンドウのデフォルトペイントプログラムと同じように、私はそれを保存してもう一度開く必要があります。ペイントプログラムやtxtファイルである必要はありませんが、私はカスタムプログラムで行った作業を保存し、プログラムの拡張子で保存することができます(ペイントしてみましょう)。c#.netでカスタム拡張を使用してカスタムプログラムを保存/開く方法

+1

あなたは何か研究をしましたか、自分で試しましたか? – Sefe

+0

この質問は具体的ではありません。ファイルを保存し、それを.NETで開くのは非常に簡単です。 System.IO名前空間がありますが、実際の質問であるファイルに書き込むものは何ですか。オブジェクトを(バイナリ、XML、JSON)としてシリアル化したり、CSVファイル、.xlsx、.docx、pdfなどを作成することができます。独自のファイル構造を作成できます。イメージを保存する場合は、System.Drawing名前空間Imageオブジェクトを使用します。これにはSave()メソッドがあります。 何を保存するかを決めることをお勧めします。もう一度質問してください。なぜなら、今この質問に対する良い答えはないからです。 – Major

+0

オートキャドを想定します。作業をして保存すると、.cadとして保存され、ソフトウェア会社のロゴがファイルに表示されます。開くファイルをクリックすると、AutoCADソフトウェアに関連付けられます。私は研究をしましたが、インターネット上で何かを見つけることができませんでした。あなたができるなら、それを私と共有してください。ありがとう – arda30

答えて

0

つのオプション:

  1. は、あなたのプログラムを使ってファイルの拡張子を関連付けることができインストーラを書きます。あなたのプログラムで
  2. ファイルの拡張子は、あなたのプログラムに関連付けられているか、されていない場合は、単純にファイルをクリックして、プログラムが自動的に

サンプルコードを開き、自分自身にそう次回ユーザを関連付けない場合は、Windowsのレジストリをチェックし、起動:

public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription) 
{ 
    CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true); 
    CurrentUser.DeleteSubKey("UserChoice", false); 
    CurrentUser.Close(); 

    // Tell explorer the file association has been changed 
    SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero); 
} 

[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2); 

このプログラムを実行するには、管理者特権が必要です。

関連する問題