Clarion и PowerShell?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Clarion и PowerShell?

Сообщение vic7tar »

Admin писал(а): 04 Ноябрь 2015, 6:06Просто было интересно. Пусть будет, может пригодится когда.
А можно ли как-нибудь подружить Clarion и PowerShell?
C10, Win10x64
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Clarion & LUA || Python

Сообщение kreator »

vic7tar писал(а): 17 Июль 2017, 17:52 А можно ли как-нибудь подружить Clarion и PowerShell?
Не вот это случайно - viewtopic.php?f=8&t=3695?
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Clarion & LUA || Python

Сообщение Дед Пахом »

vic7tar писал(а): 17 Июль 2017, 17:52А можно ли как-нибудь подружить Clarion и PowerShell?
например, ShellExecute.
С уважением, ДП
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Clarion и PowerShell?

Сообщение vic7tar »

Хорошо, что перенесли в отдельную тему.
Помню пара месяцев назад Дед Пахом написал пример для 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('Новое сообщение!')
14-я вдобавок голосом Ирины Майкрософтовской говорит в динамик.
Можно конечно через 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
Ответить