不使用Gtk4 GtkAppChooser类控件 启动一个应用程序
Posted 从善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用Gtk4 GtkAppChooser类控件 启动一个应用程序相关的知识,希望对你有一定的参考价值。
Gtk4 启动一个应用程序
CUI : 命令行用户接口
GUI : 图形用户接口
在CUI模式下我们可以使用system()、fork()、exec()家族函数等启动一个应用,那么在GUI模式下怎么启动一个应用,接着看下面的讲解。
核心函数
g_app_info_create_from_commandline()
这个函数定义在gio库中,具体含义如下:
AppInfo *
g_app_info_create_from_commandline (const char *commandline,
const char *application_name,
GAppInfoCreateFlags flags,
GError **error);
commandline : 在CUI中启动这个应用/运行脚本 所使用的命令
application_name:应用名称,如果置为NULL,则使用参数commandline
flags:用来定义应用的一些细节参数
error:这个变量用来反馈创建GAppInfo时的错误信息
这个函数根据给定的APP信息创建一个GAppInfo对象,之后便可以使用函数g_app_info_launch() 启动APP了。
一个实例
#include <glib.h>
#include <gio/gio.h>
//#include <gtk/gtk.h>
static const gchar *SCRIPT_PATH = "/path/to/shellscript.sh";
int main(int argc, char *argv[])
{
GAppInfo *appinfo = NULL;
gboolean ret = FALSE;
//gtk_init(&argc, &argv);// !! HERE is required!
appinfo = g_app_info_create_from_commandline(SCRIPT_PATH,
NULL,
G_APP_INFO_CREATE_NEEDS_TERMINAL,
NULL);
g_assert(appinfo != NULL); // TODO error handling is not implemented.
ret = g_app_info_launch(appinfo,
NULL,
NULL,
NULL);
g_assert(ret == TRUE); // TODO error handling is not implemented.
return 0;
}
执行上面的code,会自动执行"/path/to/shellscript.sh"脚本,在windows下可以将文件换成.exe格式便可自动启动一个应用程序了。
以上是关于不使用Gtk4 GtkAppChooser类控件 启动一个应用程序的主要内容,如果未能解决你的问题,请参考以下文章