не может выполнить iexplore.exe, когда я создаю символическую ссылку на него

Вот пример примера приложения в 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;
}
1
задан 9 April 2012 в 06:56

2 ответа

Это потому, что вам нужно создать скрипт (сортировку), чтобы WINE правильно нашел .exe.

Вот пример:

Создайте ссылку (как вы сделали в своем вопросе). Откройте текстовый редактор и введите следующее:
wine /path/to/link
Сохраните файл как iexplore. Сделайте исполняемый файл. Поместите этот файл в /usr/bin.

Альтернативный метод (если ссылка все еще вызывает проблемы) заключается в том, чтобы скопировать файл iexplore.exe /usr/bin и просто сказать сценарию указать к нему:

wine iexplore.exe

Третьим вариантом было бы указать скрипт непосредственно на файл:

wine /path/to/iexplore.exe

0
ответ дан 25 May 2018 в 16:45
  • 1
    но не думайте, что wine неявно вызывается, так как я вижу wine: cannot find L"Z:\\usr\\bin\\iexplore. как сообщение об ошибке! – Vineet Menon 18 November 2011 в 12:05
  • 2
    Жесткой ссылки, вероятно, достаточно. – enzotib 18 November 2011 в 13:54
  • 3
    Вино VineetMenon не называется правильно и, вероятно, изменчиво, поэтому лучше указывать вино непосредственно на исполняемый файл (особенно при использовании командной строки). – RolandiXor♦ 18 November 2011 в 22:26

Сначала - удалите ссылку, которую вы создали, это нехорошо, затем -

Вы можете попробовать это - хотя я, вероятно, скопирую в / 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 в вино

0
ответ дан 25 May 2018 в 16:45

Другие вопросы по тегам:

Похожие вопросы: