Вот пример примера приложения в C. Это версия «только для индикаторов» (без окна) примера, представленного в Ubuntu Wiki:
#include <libappindicator/app-indicator.h>
static void activate_action (GtkAction *action);
static GtkActionEntry entries[] = {
{"New", "document-new", "_New", "<control>N",
"Create a new file", G_CALLBACK(activate_action)},
{"Open", "document-open", "_Open", "<control>O",
"Open a file", G_CALLBACK(activate_action)},
{"Save", "document-save", "_Save", "<control>S",
"Save file", G_CALLBACK(activate_action)},
{"Quit", "application-exit", "_Quit", "<control>Q",
"Exit the application", G_CALLBACK(gtk_main_quit)},
};
static guint n_entries = G_N_ELEMENTS(entries);
static const gchar *ui_info =
"<ui>"
" <popup name='IndicatorPopup'>"
" <menuitem action='New' />"
" <menuitem action='Open' />"
" <menuitem action='Save' />"
" <menuitem action='Quit' />"
" </popup>"
"</ui>";
static void activate_action(GtkAction *action)
{
const gchar *name = gtk_action_get_name (action);
GtkWidget *dialog;
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
"You activated action: \"%s\"",
name);
g_signal_connect(dialog, "response",
G_CALLBACK(gtk_widget_destroy), NULL);
gtk_widget_show(dialog);
}
int main(int argc, char **argv)
{
GtkWidget* indicator_menu;
GtkActionGroup* action_group;
GtkUIManager* uim;
AppIndicator* indicator;
GError* error = NULL;
gtk_init(&argc, &argv);
/* Menus */
action_group = gtk_action_group_new("AppActions");
gtk_action_group_add_actions(action_group, entries, n_entries,
NULL);
uim = gtk_ui_manager_new();
gtk_ui_manager_insert_action_group(uim, action_group, 0);
if (!gtk_ui_manager_add_ui_from_string(uim, ui_info, -1, &error)) {
g_message("Failed to build menus: %s\n", error->message);
g_error_free(error);
error = NULL;
}
/* Indicator */
indicator = app_indicator_new("example-simple-client",
"go-jump",
APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
indicator_menu = gtk_ui_manager_get_widget(uim, "/ui/IndicatorPopup");
app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE);
app_indicator_set_attention_icon(indicator, "indicator-messages-new");
app_indicator_set_menu(indicator, GTK_MENU(indicator_menu));
gtk_main();
return 0;
}
Это потому, что вам нужно создать скрипт (сортировку), чтобы WINE правильно нашел .exe.
Вот пример:
Создайте ссылку (как вы сделали в своем вопросе). Откройте текстовый редактор и введите следующее:wine /path/to/link
Сохраните файл как iexplore. Сделайте исполняемый файл. Поместите этот файл в /usr/bin. Альтернативный метод (если ссылка все еще вызывает проблемы) заключается в том, чтобы скопировать файл iexplore.exe /usr/bin и просто сказать сценарию указать к нему:
wine iexplore.exe
Третьим вариантом было бы указать скрипт непосредственно на файл:
wine /path/to/iexplore.exe
Сначала - удалите ссылку, которую вы создали, это нехорошо, затем -
Вы можете попробовать это - хотя я, вероятно, скопирую в / usr / local / bin или ~ / bin вместо [!d1 ]
sudo cp /usr/bin/notepad /usr/bin/iexplore
Затем либо переместите iexplore.exe в папку ~ / .wine / drive_c / windows или ~ / .wine / drive_c / windows / system32, либо сделайте ссылку на него либо в
Пример
ln -s '/home/deostroll/.wine/dosdevices/c:/Program Files/Internet Explorer/iexplore.exe' '/home/deostroll/.wine/dosdevices/c:/windows/'
Тогда команда iexplore должна открыть iexplore.exe (что бы это ни было
. Что это значит, это создать скрипт винной оболочки с именем iexplore, который запустит iexplore.exe в вино