Вверх ↑
Этот топик читают: Гость
Ответов: 438
Рейтинг: 78
#46: 2022-08-27 18:00:12 ЛС | профиль | цитата
Пример запуска кода C# в пакете Windows(delphi).
https://forum.hiasm.com/getfile/39534
Код взят отсюда - https://github.com/tarikguney/ascii-table-creator и без каких-либо изменений вставлен в схему.
Проверен на Windows10/64

Редактировалось 1 раз(а), последний 2022-08-27 18:03:30
карма: 9

0
файлы: 1ascii-table-creator.zip [3.3KB] [37]
Ответов: 182
Рейтинг: 6
#47: 2022-08-28 08:50:16 ЛС | профиль | цитата
Gunta писал(а):
без каких-либо изменений

Очень интересно.
Можно сделать компонент для вставки кода C# ?

Редактировалось 1 раз(а), последний 2022-08-28 08:55:21
карма: 1
HiAsm Studio
0
Ответов: 2041
Рейтинг: 133
#48: 2022-08-28 11:42:33 ЛС | профиль | цитата
envoy_sky писал(а):
Можно сделать компонент для вставки кода C# ?

Тогда уж из этого https://bellard.org/tcc/
Скорость компиляции и выполнения кода невероятная!
А вот это понастоящему крутая вещь! https://terralang.org/
Только надо читать https://habr.com/ru/post/336406/ вдумчиво и с пониманием, а то все фишки можно пропустить и не понять. (можно и без LUA а только с hiasm(пробовал, работает!), и вставить С\С++ или любой другой язык - в любой другой язык, в том числе и hiasm, кроссплатформенность...)

Редактировалось 5 раз(а), последний 2022-08-28 11:54:56
карма: 6

0
Ответов: 5147
Рейтинг: 578
#49: 2022-08-28 18:17:33 ЛС | профиль | цитата
Сделать из NET COM объекты и в последствии их использовать не рекомендуется. Это просто очередная брешь в системе безопастности.
В KOL достаточно средств для продвижения проекта.
карма: 5
0
Ответов: 438
Рейтинг: 78
#50: 2022-08-28 22:58:10 ЛС | профиль | цитата
andrestudio писал(а):
Сделать из NET COM объекты и в последствии их использовать не рекомендуется.

Из Wikipedia
.NET и будущее COM
В 2002 году была официально выпущена платформа Microsoft .NET, которая на сегодняшний день объявлена Microsoft рекомендуемой основой для создания приложений и компонентов под Windows. По этой причине в .NET включены и средства, позволяющие обращаться к компонентам COM из приложений .NET, и наоборот. По словам представителей Майкрософт, COM (точнее, COM+) и .NET являются отлично взаимодополняющими технологиями.
andrestudio писал(а):
Это просто очередная брешь в системе безопастности.

"Верить в наше время нельзя никому. Порой даже самому себе. Мне — можно." ©(Мюллер) "Семнадцать мгновений весны".
Вот "обычный" прогноз погоды - https://forum.hiasm.com/getfile/39535
карма: 9

0
файлы: 1test_weather.rar [43.7KB] [29]
Ответов: 5147
Рейтинг: 578
#51: 2022-08-30 17:10:14 ЛС | профиль | цитата
Gunta, дело в том что после директивы assemblies все объектные файлы NET преобразуются в COM объекты (собственно зарегистрированные в системе dll с хуевой тучей ссылок на каждый класс раздувая реестр) и после этих манипуляций (даже просто при компиляции твоей схемы с запуском) эти COM объекты будут всегда доступны для браузера в виде VBS и JS скриптов. Так вот кто работает в IT и внимательно читает должностную инструкцию а не википедию таких ужей с ежами не допускают.

--- Добавлено в 2022-08-30 17:12:24

andrestudio писал(а):
В KOL достаточно средств для продвижения проекта.

Мне и добавить то нечего.

Редактировалось 2 раз(а), последний 2022-08-30 17:21:33
карма: 5
0
Ответов: 438
Рейтинг: 78
#52: 2022-08-30 22:41:08 ЛС | профиль | цитата
andrestudio, Powershell -язык программирования используется во всех ОС Microsoft начиная с Windows XP SP3.
Начиная с Windows 7 поставляется вместе с системой. Версии с 1 по 5.1 это .NET Framework.
В проектах Hiasm powershell запускается в отдельном потоке и взаимодействие с программой происходит через стандартные устройства in-out, консоль, буфер обмена и др.
Не нравится Wikipedia, вот документация самой microsoft - https://docs.microsoft.com/ru-ru/powershell/scripting/samples/creating-.net-and-com-objects--new-object-?view=powershell-7.2

https://docs.microsoft.com/ru-ru/dotnet/framework/interop/exposing-com-components

https://docs.microsoft.com/ru-ru/powershell/scripting/samples/sample-scripts-for-administration?view=powershell-7.2

Я делаю примеры для тех, у кого не сложилось с HiAsm.NET (как у меня) но хотел бы встраивать элементы .Net в свои проекты. Тем более возможностей у PowerShell значительно больше чем у VBS и JS .

Редактировалось 1 раз(а), последний 2022-08-31 07:12:15
карма: 9

1
Голосовали:Dad2016
Ответов: 438
Рейтинг: 78
#53: 2022-08-31 06:47:23 ЛС | профиль | цитата
Пример передачи данных из PowerShell по протоколу UDP.

Add(MainForm,10237418,105,273)
{
Left=20
Top=105
Width=550
Height=387
Caption="Test"
ClientSize=0
Point(onClose)
link(onCreate,6678770:doOpen,[])
link(onClose,6678770:doClose,[(158,300)(158,314)])
}
Add(UDP,6678770,168,287)
{
LocalPort=1002
LocalIP="127.0.0.1"
Point(LocalIP)
link(onReceive,4168011:doCharset,[])
}
Add(WinExec,11401622,294,105)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(doConsoleInput)
Point(onConsoleTerminate)
Point(onConsoleResult)
Point(onConsoleError)
}
Add(FormatStr,4794102,231,119)
{
DataCount=1
Mask="$Message = '%1'\r\n[int]$Port = 1002\r\n$IP = '127.0.0.1'\r\n\r\n$Address = [system.net.IPAddress]::Parse($IP)\r\n$End = New-Object System.Net.IPEndPoint $address, $port\r\n$Saddrf = [System.Net.Sockets.AddressFamily]::InterNetwork\r\n$Stype = [System.Net.Sockets.SocketType]::Dgram\r\n$Ptype = [System.Net.Sockets.ProtocolType]::UDP\r\n$Sock = New-Object System.Net.Sockets.Socket $saddrf, $stype, $ptype\r\n$Sock.TTL = 26\r\n$sock.Connect($End)\r\n# $Enc = [System.Text.Encoding]::ASCII\r\n$Enc = [System.Text.Encoding]::Unicode\r\n$Buffer = $Enc.GetBytes($Message)\r\n$Sent = $Sock.Send($Buffer)\r\n\r\n\r\n"
link(onFString,11401622:doConsoleExec,[])
link(Str1,3013988:Text,[])
}
Add(Menu,8475728,105,112)
{
Menu=#4:Send|5:Clean|
Point(onSelectNum)
link(onSelectNum,16231780:doEvent,[])
}
Add(Charset,4168011,217,287)
{
Type=9
link(onCharset,11001438:doConvert,[])
}
Add(IndexToChanel,16231780,168,119)
{
link(onEvent1,4794102:doString,[])
link(onEvent2,1332877:doClear,[(221,132)(221,167)])
}
Add(StrList,3013988,231,63)
{
Strings=#42:Артикул;Название;Кол-во;Ед.изм.;Цена;Сумма|56:23544122;Carbon disc ?44,7/38,3x5,8mm;10;PC;16,92;169,20|56:23544122;Carbon disc ?44,7/38,3x5,8mm;10;PC;16,92;169,20|54:23544122;Carbon disc ?44,7/38,3x5,8mm;2;PC;16,92;33,84|64:21200159;Top part UNIFL3/4 for steel bot.part;25;PC;30,09;752,25|57:24400111;Hose f. pump compl. UNIWASH;153;PC;10,58;1618,74|58:13225;Piston complete for valve UNIWASH3;4;PC;27,09;108,36|60:12200105;Vacuumgauge glycerine ?100mm 3/8";5;PC;40,57;202,85|54:21200141;Thread bush UNIFLOW3 steel;130;PC;1,93;250,90|45:25100146;O-ring ?16,1x1,6mm;175;PC;0,36;63,00|57:21200127;Holder rocking lever, UNIFLOW3;170;PC;0,26;44,20|50:21200131;Rocking lever UNIFLOW3;150;PC;0,89;133,50|65:25200132;Valve button inside UNIFLOW3 steel FA;225;PC;0,72;162,00|61:21200129;Bar closing device UNIFLOW3 steel;225;PC;1,09;245,25|55:25200124;Valve flap outside UNIFLOW3;225;PC;1,56;351,00|60:14400212;Solenoid valve sgl. invensys 230vac;5;PC;8,50;42,50|62:14400213;Solenoid valve dobb. invensys 230vac;5;PC;14,13;70,65|48:21200131;Rocking lever UNIFLOW3;20;PC;0,89;17,80|63:25200132;Valve button inside UNIFLOW3 steel FA;20;PC;0,72;14,40|43:25100146;O-ring ?16,1x1,6mm;20;PC;0,36;7,20|55:21200127;Holder rocking lever, UNIFLOW3;20;PC;0,26;5,20|58:21200130;Bar closing device UNIFLOW3 steel;20;PC;0,34;6,80|58:25200119;Guard bracket UNIFLOW3 steel SBS;20;PC;3,38;67,60|55:13474;Valve flap exterior UNIFLOW3 SBS;20;PC;1,56;31,20|59:26400104;Terminal wheel for lock guide str;20;PC;1,12;22,40|67:25215022;Rubber liner UNIFL. 15022-?22 UNIFLEX FA;96;PC;2,39;229,44|55:14800695;Hose guide f. SAC115 complete;10;PC;9,17;91,70|36:14306;Filter for IDC;20;PC;0,40;8,00|51:25515435;Rubber hose ?27/16 mm - FA;15;M;5,24;78,60|63:13930;Double-action Quickstart II rem. L=740mm;1;PC;98,66;98,66|54:13100201;Spray gun for udder washer;20;PC;17,77;355,40|0:|
}
Add(StreamConvertor,11001438,266,287)
{
Mode=7
link(onResult,11559680:doLoadFromStream,[])
}
Add(MST_Load,11559680,315,280)
{
MSTControl="asd"
link(onLoadFromStream,681341:doColAction,[])
}
Add(MTStrTbl,9953103,448,287)
{
Left=405
Top=210
Align=5
Name="asd"
}
Add(MST_Clear,1332877,231,161)
{
MSTControl="asd"
}
Add(MST_ColAction,681341,371,287)
{
Action=9
Index=-2
MSTControl="asd"
}

карма: 9

0
Ответов: 5147
Рейтинг: 578
#54: 2022-08-31 18:00:25 ЛС | профиль | цитата
Gunta, Ради интереса, твои схемы работают под учёткой пользователя
Если нет тогда смысл какой
карма: 5
0
Ответов: 438
Рейтинг: 78
#55: 2022-08-31 19:10:49 ЛС | профиль | цитата
andrestudio писал(а):
Ради интереса, твои схемы работают под учёткой пользователя

Под той учётной записью под которой запускалась программа.
Это легко проверить
Add(MainForm,2953706,133,140)
{
link(onCreate,6128134:doString,[])
}
Add(WinExec,11401622,245,140)
{
FileName="POWERSHELL"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,1021983:doCharset,[])
}
Add(Charset,1021983,301,154)
{
link(onCharset,9860473:doAdd,[])
}
Add(FormatStr,6128134,189,154)
{
DataCount=1
Mask="$env:UserName\r\n$env:USERPROFILE\r\n$env:ComputerName"
link(onFString,11401622:doConsoleExec,[])
}
Add(Memo,9860473,357,154)
{
Width=655
Height=490
Align=5
ScrollBars=3
}


Редактировалось 1 раз(а), последний 2022-08-31 19:14:55
карма: 9

0
Ответов: 5147
Рейтинг: 578
#56: 2022-09-01 20:02:57 ЛС | профиль | цитата
Gunta, это не ответ на вопрос а отмазка (нет у меня этого POWERSHELL(а) и почему я тебе уже говорил)
Год назад работал в одной гос. структуре пока не сократили и занимался защитой персональных данных. (крипто-сервис, электронные-подписи и всякой другой хренью)

т.е представляя таким образом дырки в системе ты можешь утверждать что это во благо пользователей Но это же бесстыже как минимум

--- Добавлено в 2022-09-01 20:32:45

Вот что бы не было проколов у кого кто занимается подобной деятельностью для примера история того как один "талантливый" программист пошёл таким же коротким путём. В следствии чего его чудо классы из C# стали доступны в 1С-предприятие. Ну и что, думаете ему премию выписали Да нет, был уволен с чёрным билетом.

Редактировалось 1 раз(а), последний 2022-09-01 20:32:45
карма: 5
0
Ответов: 438
Рейтинг: 78
#57: 2022-09-03 19:47:08 ЛС | профиль | цитата
andrestudio писал(а):
нет у меня этого POWERSHELL(а)

"Я Пастернака не читал, но осуждаю"

PowerShell — это кроссплатформенное решение для автоматизации задач, которое включает оболочку командной строки, скриптовый язык и платформу управления конфигурацией. PowerShell поддерживается в Windows, Linux и macOS
В первую очередь эта среда для решения задач, стоящих перед системными администраторами, а также разработчиками программного обеспечения, предоставляя им средства для быстрой реализации интерфейсов управления к создаваемым приложениям.
Для достижения этих целей были решены следующие задачи:
• Обеспечение прямого доступа из командной строки к объектам COM, WMI и .NET. В новой оболочке присутствуют команды, позволяющие в интерактивном режиме работать с COM-объектами, а также с экземплярами классов, определенных в информационных схемах WMI и .NET.
• Организация работы с произвольными источниками данных в командной строке по принципу файловой системы. Например, навигация по системному реестру или хранилищу цифровых сертификатов выполняется из командной строки с помощью аналога команды CD интерпретатора Cmd.exe.
• Разработка интуитивно понятной унифицированной структуры встроенных команд, основанной на их функциональном назначении. В новой оболочке имена всех внутренних команд (в PowerShell они называются командлетами) соответствуют шаблону "глагол-существительное", например, Get-Process (получить информацию о процессе), Stop-Service (остановить службу), Clear-Host (очистить экран консоли) и т.д. Для одинаковых параметров внутренних команд используются стандартные имена, структура параметров во всех командах идентична, все команды обрабатываются одним синтаксическим анализатором. В результате облегчается запоминание и изучение команд.
• Обеспечение возможности расширения встроенного набора команд. Внутренние команды PowerShell могут дополняться командами, создаваемыми пользователем. При этом они полностью интегрируются в оболочку, информация о них может быть получена из стандартной справочной системы PowerShell.
• Организация поддержки знакомых команд из других оболочек. В PowerShell на уровне псевдонимов собственных внутренних команд поддерживаются наиболее часто используемые стандартные команды из оболочки Cmd.exe и Unix-оболочек. Например, если пользователь, привыкший работать с Unix-оболочкой, выполнит ls, то он получит ожидаемый результат: список файлов в текущем каталоге (то же самое относится к команде dir).
• Разработка полноценной встроенной справочной системы для внутренних команд. Для большинства внутренних команд в справочной системе дано подробное описание и примеры использования. В любом случае встроенная справка по любой внутренней команде будет содержать краткое описание всех ее параметров.
• Реализация автоматического завершения при вводе с клавиатуры имен команд, их параметров, а также имен файлов и папок. Данная возможность значительно упрощает и ускоряет ввод команд с клавиатуры.
Главной особенностью среды PowerShell, отличающей ее от всех других оболочек командной строки, является то, что единицей обработки и передачи информации здесь является объект, а не строка текста.

Отличие PowerShell от других оболочек – ориентация на объекты
При разработке любого языка программирования одним из основных является вопрос о том, какие типы данных и каким образом будут в нем представлены. При создании PowerShell разработчики решили не изобретать ничего нового и воспользоваться унифицированной объектной моделью .NET. Данный выбор был сделан по нескольким причинам.
Во-первых, платформа .NET повсеместно используется при разработке программного обеспечения для Windows и представляет, в частности, общую информационную схему, с помощью которой разные компоненты операционной системы могут обмениваться данными друг с другом.
Во-вторых, объектная модель .NET является самодокументируемой: каждый объект .NET содержит информацию о своей структуре. При интерактивной работе это очень полезно, так как появляется возможность непосредственно из командной строки выполнить запрос к определенному объекту и увидеть описание его свойств и методов, то есть понять, какие именно манипуляции можно проделать с данным объектом, не изучая дополнительной документации с его описанием.
В-третьих, работая в оболочке с объектами, можно с помощью их свойств и методов легко получать нужные данные, не занимаясь разбором и анализом символьной информации, как это происходит во всех традиционных тексто-ориентированных оболочках командной строки.
Типы команд PowerShell
В оболочке PowerShell поддерживаются команды четырех типов: командлеты, функции, сценарии и внешние исполняемые файлы.
Первый тип – так называемые командлеты (cmdlet). Этот термин используется пока только внутри PowerShell. Командлет представляет собой класс .NET, порожденный от базового класса Cmdlet ; разрабатываются командлеты с помощью пакета PowerShell Software Developers Kit (SDK). Единый базовый класс Cmdlet гарантирует совместимый синтаксис всех командлетов, а также автоматизирует анализ параметров командной строки и описание синтаксиса командлетов для встроенной справки.
Данный тип команд компилируется в динамическую библиотеку (DLL) и подгружается к процессу PowerShell во время запуска оболочки (то есть сами по себе командлеты не могут быть запущены как приложения, но в них содержатся исполняемые объекты). Так как компилированный код подгружается к процессу оболочки, данный тип команд выполняется наиболее эффективно. Командлеты – это аналог внутренних команд традиционных оболочек.
Следующий тип команд – функции. Функция – это блок кода на языке PowerShell, имеющий название и находящийся в памяти до завершения текущего сеанса командной оболочки. Функции, как и командлеты, поддерживают именованные параметры. Анализ синтаксиса функции производится один раз при ее объявлении.
Сценарий – это блок кода на языке PowerShell, хранящийся во внешнем файле с расширением ps1. Анализ синтаксиса сценария производится при каждом его запуске.
Последний тип команд – внешние исполняемые файлы, которые выполняются обычным образом операционной системой.

Официальная документация по продуктам PowerShell - https://docs.microsoft.com/ru-ru/powershell/

При разработке PowerShell особое внимание было уделено безопасности. Одной из мер безопасности является наличие политики выполнения (Execution Policy), которая определяет, могут ли скрипты PowerShell выполняться в системе, и если могут, то какие именно.
карма: 9

0
57
Сообщение
...
Прикрепленные файлы
(файлы не залиты)