А можно ли как-нибудь подружить Clarion и PowerShell?
Clarion и PowerShell?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Clarion & LUA || Python
Не вот это случайно - viewtopic.php?f=8&t=3695?
We are hard at work… for you.
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Clarion и PowerShell?
Хорошо, что перенесли в отдельную тему.
Помню пара месяцев назад Дед Пахом написал пример для Notification. Для себя повторил то же самое с помощью Shell_NotifyIcon (из Shell32.dll).
Но вот 13 строк командлетов делают то же самое:
14-я вдобавок голосом Ирины Майкрософтовской говорит в динамик.
Можно конечно через Run запустить скриптовый файлик или отдельный командлет - но все это вызывает запуск оболочки PowerShell, долго, да и еще сама оболочка высвечивается.
Нельзя ли как нибудь все полезности этой оболочки использовать в CLa, StdOut осуществить в строковые переменные? Ну типа (на птичьем языке):
Ну что-то такое.
Помню пара месяцев назад Дед Пахом написал пример для Notification. Для себя повторил то же самое с помощью Shell_NotifyIcon (из Shell32.dll).
Но вот 13 строк командлетов делают то же самое:
Код: Выделить всё
$notificationTitle = [DateTime]::Now.ToShortTimeString() + " : время пить чай"
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
$template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastImageAndText01)
$toastXml = [xml] $template.GetXml()
$toastXml.GetElementsByTagName("text").AppendChild($toastXml.CreateTextNode($notificationTitle)) > $null
$imElem = $toastXml.getElementsByTagName("image")
$imElem[0].src = "c:\test\clarion.gif"
$xml = New-Object Windows.Data.Xml.Dom.XmlDocument
$xml.LoadXml($toastXml.OuterXml)
$toast = [Windows.UI.Notifications.ToastNotification]::new($xml)
$notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("Clarion Notify")
$toast.ExpirationTime = [DateTime]::Now.AddMinutes(5)
$notifier.Show($toast);
$spNote=new-object -com 'SAPI.spvoice' ; $spNote.Speak('Новое сообщение!')
Можно конечно через Run запустить скриптовый файлик или отдельный командлет - но все это вызывает запуск оболочки PowerShell, долго, да и еще сама оболочка высвечивается.
Нельзя ли как нибудь все полезности этой оболочки использовать в CLa, StdOut осуществить в строковые переменные? Ну типа (на птичьем языке):
Код: Выделить всё
hret=CreateObject(PS_Object)
PS_Object.Run( "new-object -com 'SAPI.spvoice' ; $spNote.Speak('Новое сообщение!')" )
sfile="c:test.txt"
scont=PS_Object.Run("$string = get-content -Path " & sfile)
...
C10, Win10x64