crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как открыть каталог в проводнике(Windows)?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 29.6.2010, 10:28
 
Цитата(AntonH851 @ 29.6.2010, 12:35) *
Поздно я увидел ваше сообщение.... успел написать свою функцию замены разделителей)

Написать свою реализацию - это всегда полезно в плане тренировки, но пользоваться после этого лучше готовым средством :) К тому же, у нас тут кроссплатформенность
AntonH851 Дата 29.6.2010, 9:35
 
Цитата(molchanoviv @ 29.6.2010, 10:21) *
Слеши. В explorer-е слеши в другую сторону. Т.е. путь должен выглядеть как С:\QP\GTD\debug\10101110_010610_0002052

Точно, проблема решена, спасибо!

Цитата(Алексей1153 @ 29.6.2010, 10:30) *
QDir::absolutePath ()
и
QDir::toNativeSeparators()

:)

Поздно я увидел ваше сообщение.... успел написать свою функцию замены разделителей)
Алексей1153 Дата 29.6.2010, 9:30
  QDir::absolutePath ()
и
QDir::toNativeSeparators()

:)
molchanoviv Дата 29.6.2010, 9:21
  Слеши. В explorer-е слеши в другую сторону. Т.е. путь должен выглядеть как С:\QP\GTD\debug\10101110_010610_0002052
AntonH851 Дата 29.6.2010, 9:07
 
Цитата(molchanoviv @ 29.6.2010, 10:01) *
Цитата(AntonH851 @ 29.6.2010, 9:54) *
не получилось...

Поподробнее. Что выдает на консоль. Запускается ли процесс?



На консоль ничего не выдает, проводник запускается, но выдает ошибку:
Цитата
Путь "С:/QP/GTD/debug/10101110_010610_0002052" не существует или не является каталогом

Хотя каталог такой существует...
molchanoviv Дата 29.6.2010, 9:06
  Кстати тебе стоит проверять process.waitForStarted() и process.waitForFinished()
Алексей1153 Дата 29.6.2010, 9:01
  Попробуй в качестве запускаемого просто полный путь к каталогу указать

ShellExecute(
    h,
    0,
    tr("c:/111/222/333"),
    0,
    0,
    SW_RESTORE
);


Будет эквивалентно щелчку мышью по каталогу
molchanoviv Дата 29.6.2010, 9:01
 
Цитата(AntonH851 @ 29.6.2010, 9:54) *
не получилось...

Поподробнее. Что выдает на консоль. Запускается ли процесс?
AntonH851 Дата 29.6.2010, 8:54
  Добрый день.
Вот такая проблема: нужно открыть указанный каталог в проводнике из программы.
Пробовал через QProcess:
    QProcess process;
    QString command;
    command = "explorer " + path;
    process.start(command);

не получилось...
Решил попробовать ShellExecute, но не знаю какой тип строк передавать в качестве параметов:
    HWND h;
    ShellExecute(h, QString("explore").toStdString().c_str(),
                 path.toStdString().c_str(),
                 NULL, NULL, SW_RESTORE);

Ругается:
Цитата
C:/QP/GTD/files.cpp:85: error: cannot convert 'const char*' to 'const WCHAR*' for argument '2' to 'HINSTANCE__* ShellExecuteW(HWND__*, const WCHAR*, const WCHAR*, const WCHAR*, const WCHAR*, INT)'


Подскажите что-нибудь пожалуйста, или по QProcess(что предпочтительней) или по ShellExecute.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 12:32