微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Windows 窗体中的默认 CSV 编辑器打开文件?

如何解决如何使用 Windows 窗体中的默认 CSV 编辑器打开文件?

我正在开发这个备份程序,它使用 Windows 窗体进行设计。
除了一个按钮外,一切都运行良好,所以我将保留整个代码
我有一个 Button 允许用户从某个位置打开一个 CSV 文件以在他们的认 CSV 编辑器程序(即 Excel、Libre 等)中进行编辑,并且该按钮工作正常:

private: System::Void button17_Click(System::Object^ sender,System::EventArgs^ e) {
String^ CSVLoc = textBox1->Text;
string CSVLoc1 = msclr::interop::marshal_as<std::string>(CSVLoc);
system(("start " + CSVLoc1 + "\\SystemIPs.csv").c_str());
}

但是,我想避免使用 system 功能,因为我不喜欢它在启动认编辑器程序时闪烁命令窗口。

我试过了:

private: System::Void button17_Click(System::Object^ sender,System::EventArgs^ e) {
String^ CSVLoc = textBox1->Text;
string CSVLoc1 = msclr::interop::marshal_as<std::string>(CSVLoc);
WinExec(("start " + CSVLoc1 + "\\SystemIPs.csv").c_str(),SW_HIDE);
}

但是当我点击按钮时什么也不做。
WinExec 可以替代我的其他系统函数命令,但不是在这里

按钮的功能不是从我的程序中进行任何编辑,因此不需要读取或写入它。只需要它在认编辑器中打开而不弹出命令窗口即可。

我已经搜索了几个小时试图找到一个没有运气的解决方案。
我对这里的任何建议持开放态度,即使它正在使用系统功能,但我目前不知道有一些巧妙的隐藏方式。

该程序仅适用于 Windows,并设置为作为 Windows 应用程序运行。使用 CLR 和 .Net 是 4.7.2。正如我所提到的,一切正常,只是想找到一种方法来隐藏那个讨厌的命令窗口弹出窗口。

解决方法

正如 Jimi 所说,您可以使用 Process.Start 方法使用默认编辑器打开 csv 文件。

首先,请添加命名空间引用。

using namespace System::Diagnostics;

其次,您可以尝试以下代码打开它。

private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {
        String^ str = textBox1->Text;
        Process::Start(str);
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。