0
我有一個表示DBF編輯器,允許你有3種方式打開文件的C#/ WPF項目: - 與apposit按鈕在工具欄 - 通過拖放&下降 - 與雙擊文件 現在我用一個TabControl包含每個打開的dbf。 我可以用我的內部按鈕處理它,並將添加項目拖到容器。 如果我用雙擊打開一個文件,並且有一個打開的實例,我想將它添加到容器中,而是打開一個新的實例。 我的代碼:如何用已打開的可執行文件打開文件?
- 應用
公共部分類應用:應用 {
private static Editor mainWindow = null;
protected override void OnStartup(StartupEventArgs e)
{
Editor mainWindow = new Editor(e.Args);
mainWindow.Show();
}
}
編輯:
公共部分類編輯:窗口
{ChooseMessage.Choose choose; public Dictionary<int, DBFStructure> ds; string DbfName; private string[] OldNew; public Editor(string[] e) { InitializeComponent(); ds = new Dictionary<int, DBFStructure>(); OldNew = new string[2]; choose = ChooseMessage.Choose.OK; if (e.Length > 0) if (File.Exists(e[0]) && e[0].EndsWith(".dbf", StringComparison.InvariantCultureIgnoreCase)) EffOpen(e[0]); } private void dbf_Drop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop, true) == true) { string filename = ((string[])e.Data.GetData(DataFormats.FileDrop, true))[0]; if (File.Exists(filename) && filename.EndsWith(".dbf", StringComparison.InvariantCultureIgnoreCase)) EffOpen(filename); } } .... }
我爲代碼顯示抱歉,我不能正確地設置它。
我的問題是攔截從最後一個打開的編輯器實例打開一個dbf並將其添加到controltab,否則創建一個新的實例。
P.S. EffOpen(文件名)表示,通過
由於傳遞FIL名,加載它,並將它添加到容器的所有
Windows中沒有檢測到另一個進程打開文件的機制。畢竟這是一款反惡意軟件產品,這並非完全不可能。但需要使用C#無法完成的操作系統補丁。不應該用任何語言來做,錯誤對用戶的機器是非常不穩定的。 –