AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Вызов Exec и двойные кавычки
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
[Yustas.NeO]



Joined: 12 Mar 2007
Posts: 258

PostPosted: Thu Jun 03, 2010 12:58 pm    Post subject: Вызов Exec и двойные кавычки Reply with quote

Как правильно составить вызов Exec, если вызываемая программа требует жестко "двойные кавычки" в параметре своей командной строки, а AkelPad воспринимает первую же из них как завершение параметров Exec?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5398

PostPosted: Thu Jun 03, 2010 3:14 pm    Post subject: Reply with quote

[Yustas.NeO]
Использовать ` и '. В документации к Exec() же есть примеры.
Back to top
View user's profile Send private message Send e-mail
[Yustas.NeO]



Joined: 12 Mar 2007
Posts: 258

PostPosted: Fri Jun 04, 2010 9:43 am    Post subject: Reply with quote

Да, прошу прощения, недоглядел.
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Fri Jun 04, 2010 11:54 am    Post subject: Reply with quote

А стандартный \" не работает?
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2054
Location: Vinnitsa, Ukraine

PostPosted: Fri Jun 04, 2010 1:46 pm    Post subject: Reply with quote

Fr0sT
Quote:
А стандартный \" не работает?
А не подскажите по какому стандарту? Даже если подскажите - вы уверенны что Интсруктор делает это именно по этому стандарту?
ESC последовательность \" описанная в стандартах C/C++ применима только для тех, кто пишет трансляторы C/C++. Это же касается других всевозможных стандартов. Инструктор вроде бы не заявлял что АкелПад подчиняется какому-то конкретному стандарту. Потому не стоит удивляться что оно не делает то, что не обязано делать(в данному случае не слэш назад ескейпит ограничитель литерала)
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Sat Jun 05, 2010 11:03 am    Post subject: Reply with quote

FeyFre продолжаем цепляться к словам?
Стандарт для языка, на котором создан Акель, и для функций *printf, которые наверняка используются при преобразовании строки для Exec.
Кроме того, эскейп слэшами широко используется и в С-подобных языках, как-то JS, Php и др.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2054
Location: Vinnitsa, Ukraine

PostPosted: Sat Jun 05, 2010 5:16 pm    Post subject: Reply with quote

Quote:
Стандарт для языка, на котором создан Акель, и для функций *printf, которые наверняка используются при преобразовании строки для Exec.
Не используют :Р
Quote:
Кроме того, эскейп слэшами широко используется и в С-подобных языках, как-то JS, Php и др.
И?
Какое отношение имеет упомянутый стандарт к сабжу? Или быть может Вы ещё вспомните о стандарте составления чертежей, которым пользовались при проектировании стула, сидя на котором Инструктор писал АкелПад?
Ескейп последовательности С-стиля нигде не заявлены и не упомянуты. Более того в примерах четко поставлено ударение что для кавычко-содержащих аргументов нужно использовать альтернативные кавычки(что широко используется в тех же самых JS, PHP и др)
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Jun 07, 2010 6:41 am    Post subject: Reply with quote

Quote:
Какое отношение имеет упомянутый стандарт к сабжу?

Думаю, не ошибусь, если скажу, что большинство активных пользователей сабжа, которые не ленятся править конфиги, так или иначе связаны с кодингом. А для кодера, по-моему, эскейпить слэшем - первое, что приходит в голову. Впрочем, если printf действительно не используется, то в самом деле не стоит напрягаться, чтобы включить поддержку слэшей. Я-то думал, это из коробки получится.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2054
Location: Vinnitsa, Ukraine

PostPosted: Mon Jun 07, 2010 12:08 pm    Post subject: Reply with quote

Quote:
Думаю, не ошибусь, если скажу, что большинство активных пользователей сабжа, которые не ленятся править конфиги, так или иначе связаны с кодингом.
Согласен
Quote:
А для кодера, по-моему, эскейпить слэшем - первое, что приходит в голову.
А вот тут не согласен. Кодеры, которые это в первое что приходит в голову(т.е. C/C++) в блокноте не пишут, а если и пишут, то им точно ескейпинг не требуется, ибо для более менее сложных задач они логично выбирают IDE. Не C/C++ кодеры же с ескейпингом встречаются очень и очень редко(и в PHP, и в JS они просто выбирают альтернативный вид кавычек, ибо нагромождение `\` - очень не читаемая вещь)
Quote:
Впрочем, если printf действительно не используется, то в самом деле не стоит напрягаться, чтобы включить поддержку слэшей. Я-то думал, это из коробки получится.
Даже если бы использовалось, разницы никакой бы не было. \" - обрабатывается компилятором, а не libcmt, и в любом случае пришлось бы делать вручную.(Помоему Вы спутали уровни абстракции)
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Tue Jun 15, 2010 10:59 am    Post subject: Reply with quote

Quote:
Кодеры, которые это в первое что приходит в голову(т.е. C/C++) в блокноте не пишут, а если и пишут, то им точно ескейпинг не требуется, ибо для более менее сложных задач они логично выбирают IDE

Причем тут где они пишут? Я говорил о привычке.
Quote:
и в PHP, и в JS они просто выбирают альтернативный вид кавычек, ибо нагромождение `\` - очень не читаемая вещь

Это субъективно, по мне уж лучше эскейпленные кавычки, чем мешанина из трёх видов.
Quote:
Даже если бы использовалось, разницы никакой бы не было. \" - обрабатывается компилятором, а не libcmt, и в любом случае пришлось бы делать вручную.(Помоему Вы спутали уровни абстракции)

Вот здесь вообще ничего не понял, какие уровни абстракции, какой libcmt.
Back to top
View user's profile Send private message
Andrey_A_A



Joined: 03 Jun 2010
Posts: 579
Location: Сочи, Хоста

PostPosted: Sun Jan 23, 2011 10:30 pm    Post subject: Метод Exec(...) Reply with quote

Можно ли подправить метод, чтобы запускались команды подобные этим

Exec('%WINDIR%\System32\services.msc`)
Exec('%WINDIR%\SYSTEM32\control.exe userpasswords`)
Exec('%WINDIR%\system32\Firewall.cpl`)
Exec('%WINDIR%\system32\control.exe /name Microsoft.WindowsDefender`)
Exec('%WINDIR%\System32\perfmon.exe /rel`)
Exec('%WINDIR%\SYSTEM32\control.exe admintools`)
Exec('%WINDIR%\SYSTEM32\rundll32.exe shell32,Control_RunDLL appwiz.cpl,,2`)
или может я не правильно записываю, тогда подскажите синтаксис

ещё один нюанс. некоторые команды срабатывают не правильно
к примеру
"Безопасное извлечение" Exec('%WINDIR%\System32\rundll32.exe shell32.dll,Control_RunDLL hotplug.dll.`)
и ещё, если вставить это в меню в тулбар , то после этой команды другие не отображаются, как-то странно
Back to top
View user's profile Send private message Send e-mail Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2614
Location: Киев, Русь

PostPosted: Mon Jan 24, 2011 8:25 am    Post subject: Reply with quote

Я думаю, правильно будет так:
Code:
"Безопасное извлечение" Exec(`%WINDIR%\System32\rundll32.exe shell32.dll, Control_RunDLL hotplug.dll`)
т.е.
1. открывающий символ строки должен совпадать с закрывающим;
2. в конце строки не должно быть точки.

P.S. Думаю, что вопрос относится к ContextMenu-плагину.
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1629

PostPosted: Mon Jan 24, 2011 4:58 pm    Post subject: Reply with quote

Тогда уж, на случай пробелов в %windir% (хотя их там быть, вроде бы, не должно):
Code:
"Безопасное извлечение" Exec(`"%WINDIR%\System32\rundll32.exe" shell32.dll, Control_RunDLL hotplug.dll`)
Back to top
View user's profile Send private message Visit poster's website
Andrey_A_A



Joined: 03 Jun 2010
Posts: 579
Location: Сочи, Хоста

PostPosted: Tue Jan 25, 2011 10:32 am    Post subject: Reply with quote

Спасибо, разобрался! Выложил системное меню
с почти со всеми разными вариантами Exec(...)
http://akelpad.sourceforge.net/forum/viewtopic.php?p=11127#11127
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Andrey_A_A



Joined: 03 Jun 2010
Posts: 579
Location: Сочи, Хоста

PostPosted: Tue Aug 16, 2011 7:35 pm    Post subject: Reply with quote

Есть ли в методе Exec функция "запуск приложения в свёрнутом виде"
пример, я запускаю команду
"Завершить процесс Wscript.exe" Exec("%ComSpec% /c taskkill /f /im wscript.exe") Icon("%a\AkelPadImage.dll",528)
хотелось бы, чтобы командная консоль не появлялась центре окна, т.е. запуск в свёрнутом виде...
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group