Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Win32::Shortcut - странное поведение ярлыков, указывающих на cmd-шники 
:(
    Опции темы
aksined
Дата 11.9.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 26.12.2005

Репутация: 1
Всего: 1



Добрый день
Код рабочий. Ярлыки создаются. Непонятный аспект:
Ярлыки для папок и ехе-шника работают адекватно.
А вот с ярлыками на файлы cmd что-то совсем непонятное. При клике по ним вроде бы ничего не происходит (ожидается открытие консольного окна). На самом деле скрипт запускается и отрабатывает то, что от него требуется. Если в конце поставить pause, то в менеджере задач висит процесс. Такое ощущение, что окно консоли просто скрыто (hidden). Если его активировать, то весь вывод цмд-шника в нём будет.
Если же открыть свойства ярлыка и произвести незначащие действия, например удалить комментарий, после этого ярлык ведёт себя нормально - при старте открывается окно консоли (всё как обычно).
Получается, что перл создаёт какой-то странный ярлык

Для полноты картины привожу полный листинг:
Код

#!perl -w
use strict;
use Win32::Shortcut;
my $target = $ARGV[0];
my %h = ( 'open' => 'open',
            'secret' => 'secret',
            'crypt.cmd' => 'зашифровать',
            'decrypt.cmd' => 'расшифровать',
            'notepad.exe' => 'блокнот',
        );
for my $cur (keys %h) {
    my $link = Win32::Shortcut->new();
    $link->{'Path'} = "$target\\$cur";
    $link->{'WorkingDirectory'} = "$target";
    $link->{'Description'} = $h{$cur};
    (my $path = $ENV{'userprofile'}) =~ s!\\!/!g;
    if(-d "$path/Desktop"){ $path .= '/Desktop' }
    elsif(-d "$path/Рабочий стол"){ $path .= '/Рабочий стол' }
    else {
        print "There isn't 'Desktop' in userprofile, therefore you should create links manually\nPress <Enter> for exit...";
        <>;
        exit;
    }
    $link->Save("$path/$cur.lnk");
    $link->Close();
}



Это сообщение отредактировал(а) aksined - 11.9.2008, 19:57
PM MAIL   Вверх
nitr
Дата 12.9.2008, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 2
Всего: 84



Да, интересно. Проблема есть. А начинает работать ярлык при любом изменении ярлыка, т.е. когда вы применяете изменения, то Windows корректно записывает этот ярлык.lnk.

Добавлено через 12 минут и 51 секунду
Да и размер разный получается...

Добавлено через 13 минут и 10 секунд
Если никто не подскажет smile то пишите в bugtrack автору.


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0869 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.