Вверх ↑
Этот топик читают: Гость
Ответов: 2456
Рейтинг: 696
#136: 2025-06-18 09:16:22 ЛС | профиль | цитата
Gunta писал(а):
Случайно не знаешь почему перестал отображаться список проектов в публикторе HiAsm?
Не знаю, но у меня такое же безобразие отображается, как и у тебя.
Gunta писал(а):
Наверное, что-то такое можно сделать.
Так на самом HiAsm сделать простенькую схему на базе SQlite с таблицей:
-название
-описание
-теги
-схема
карма: 11

0
Ответов: 975
Рейтинг: 204
#137: 2025-06-29 18:30:53 ЛС | профиль | цитата
Вызвать Экранную клавиатуру (OSK.exe) из своей программы можно несколькими способами
1.

Add(MainForm,2953706,63,105)
{
}
Add(InlineCode,13824145,182,112)
{
WorkPoints=#9:doShowOSK|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|42:uses Windows, ShellApi, Kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|0:|47:Procedure doShowOSK (var dt:TData; Index:word);|0:|5: end;|0:|99:Function Wow64DisableWow64FsRedirection(Var Wow64FsEnableRedirection: LongBool): LongBool; StdCall;|64: External 'Kernel32.dll' Name 'Wow64DisableWow64FsRedirection';|0:|14:implementation|0:|60:Procedure THiAsmClass.doShowOSK (var dt:TData; Index:word);|3:Var|37: Wow64FsEnableRedirection: LongBool;|5:begin|117: if Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection) then ShellExecute(0,nil, 'osk.exe', nil, nil, SW_show);|4:end;|0:|4:end.|
}
Add(Memo,5628052,126,105)
{
Left=75
Top=45
Width=280
Height=200
Align=5
Font=[Lucida Console,12,0,0,204]
Antialiased=1
ScrollBars=3
Point(Handle)
Point(doSetFocus)
Point(onMouseUp)
link(onMouseUp,13824145:doShowOSK,[])
}

2.

Add(KeyEvent,9798208,322,63)
{
Code=91
}
Add(KeyEvent,11056287,322,105)
{
Code=79
Ctrl=1
}
Add(Hub,2282427,259,70)
{
OutCount=3
link(onEvent1,9798208:doPressDown,[])
link(onEvent2,11056287:doPress,[(298,83)(298,111)])
link(onEvent3,9798208:doPressUp,[(305,90)(305,83)])
}
Add(Memo,8902251,210,63)
{
Left=10
Top=10
Width=265
Height=120
Align=5
ScrollBars=3
Point(onMouseUp)
link(onMouseUp,2282427:doEvent1,[])
}
Add(MainForm,2953706,147,56)
{
}



Схема для вызова Сенсорной клавиатуры (TabTip.exe)

Add(MainForm,5275989,56,56)
{
Point(Handle)
link(onCreate,14943120:doWrite,[])
}
Add(WinExec,4233445,112,112)
{
FileName="TabTip.exe"
WorkingDir="C:\\Program Files\\Common Files\\microsoft shared\\ink"
Point(onErrorExec)
}
Add(Memo,5628052,56,112)
{
Left=75
Top=45
Width=280
Height=200
Align=5
Font=[Lucida Console,12,0,0,204]
Antialiased=1
ScrollBars=3
Point(Handle)
Point(doSetFocus)
Point(onMouseUp)
link(onMouseUp,4233445:doShellExec,[])
}
Add(Registry,14943120,112,63)
{
HKey=2
Key="SOFTWARE\Microsoft\TabletTip\1.7"
Value="EnableDesktopModeAutoInvoke"
DataType=0
Data="1"
}


Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2429
Не уверен, что будет работать на других версиях Windows

--- Добавлено в 2025-06-29 18:54:30

Несколько вариантов узнать разрядность операционной системы

Add(MainForm,2953706,21,77)
{
Width=693
Height=319
Caption="Как проверить разрядность операционной системы?"
}
Add(WinExec,7527029,294,238)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,9798899:doGetString,[])
}
Add(FormatStr,6888314,238,252)
{
Mask="[Runtime.InteropServices.Marshal]::ReadInt16([IntPtr]0x7FFE026A)"
link(onFString,7527029:doConsoleExec,[])
}
Add(Memo,7378392,455,84)
{
Width=677
Height=280
Align=5
Font=[Consolas,18,0,0,204]
ScrollBars=3
}
Add(StrList,9798899,350,224)
{
FileName="x86\r\nMIPS\r\nAlpha\r\nPowerPC\r\n\r\n\r\nia64\r\n\r\n\r\nx64"
Strings=#3:x86|0:|0:|0:|0:|0:|0:|0:|0:|3:x64|
Point(doGetString)
Point(onGetString)
link(onGetString,16329106:doWork2,[])
}
Add(WinExec,12079174,294,175)
{
FileName="powershell"
Param="-Command [string]$arch = 'x64';if ($env:PROCESSOR_ARCHITECTURE -eq 'x86') {if (!$env:PROCESSOR_ARCHITEW6432) {$arch = 'x86'}};$arch"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,15892264:doWork2,[])
link(onConsoleError,15892264:doWork3,[(347,202)])
}
Add(DoData,590103,294,84)
{
link(onEventData,5428858:doWork2,[])
link(Data,15787741:WinInfo,[])
}
Add(InlineCode,4653664,294,287)
{
@Hint=#14:Версия Windows|16:32-разрядная - 0|16:64-разрядная - 1|
VarPoints=#10:GetBitness|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses Kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|3: |9: public|50: procedure GetBitness(var dt:TData; idx:word);|5: end;|0:|14:implementation|0:|33:procedure THiAsmClass.GetBitness;|4:var |20: bitness:integer; |5:begin|15: bitness := 0;|5: asm|16: xor eax, eax|14: mov ax, cs|14: shr eax, 5|20: mov bitness, eax|6: end;|24: dtInteger(dt,bitness);|6:end; |4:end.|
}
Add(ComputerInfo,15787741,273,28)
{
Mask=""
WinInfoMask="x%x"
}
Add(MultiSetParam,2570055,287,336)
{
Parameters=#12:32-разрядная|12:64-разрядная|0:|
Count=1
OutType=1
Point(Index)
link(onSet1,16329106:doWork3,[(417,342)])
link(Index,4653664:GetBitness,[])
}
Add(Menu,11705523,105,77)
{
Menu=#12:ComputerInfo|4:Wmic|12:Powershell 1|12:Powershell 2|10:InlineCode|0:|
Point(onSelectNum)
link(onSelectNum,1131609:doEvent,[])
}
Add(IndexToChanel,1131609,161,84)
{
Count=5
link(onEvent1,590103:doData,[])
link(onEvent2,3484488:doConsoleExec,[(284,97)(284,146)])
link(onEvent3,12079174:doConsoleExec,[(277,104)(277,195)])
link(onEvent4,6888314:doString,[(228,111)(228,258)])
link(onEvent5,2570055:doSet,[(221,118)(221,342)])
}
Add(HubEx,5428858,413,84)
{
link(onEvent,7378392:doAdd,[])
}
Add(HubEx,16329106,413,231)
{
Angle=3
link(onEvent,11495910:doWork3,[])
}
Add(WinExec,3484488,294,126)
{
FileName="wmic"
Param="os get osarchitecture"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,8749782:doWork2,[])
link(onConsoleError,8749782:doWork3,[(347,153)])
}
Add(HubEx,5925386,413,140)
{
Angle=3
link(onEvent,5428858:doWork3,[])
}
Add(HubEx,8749782,343,140)
{
link(onEvent,5925386:doWork2,[])
}
Add(HubEx,11495910,413,189)
{
Angle=3
link(onEvent,5925386:doWork3,[])
}
Add(HubEx,15892264,343,189)
{
link(onEvent,11495910:doWork2,[])
}


--- Добавлено в 2025-06-29 18:55:54

Узнать разрядность программы или библиотеки(dll)

Add(MainForm,7480964,63,63)
{
Width=530
Caption="Узнать разрядность программы или библиотеки(dll)"
link(onCreate,5181247:doExecute,[])
}
Add(ODialog,5181247,119,77)
{
Filter="EXE|*.exe|DLL|*.dll"
link(onExecute,1554397:doEvent1,[])
}
Add(FileStream,11840039,301,77)
{
Point(doPosition)
}
Add(DataToFileEx,7328370,238,147)
{
DataSize=4
link(onGet,13839180:doWork3,[(284,153)])
link(Stream,3206632:Var1,[(244,131)])
}
Add(Memo,15599193,497,161)
{
Width=514
Height=261
Align=5
Font=[Lucida Console,12,0,0,204]
ScrollBars=3
}
Add(MultiSetParam,2570055,441,161)
{
Parameters=#12:32-разрядная|12:64-разрядная|0:|
Count=1
OutType=1
Point(Index)
link(onSet1,15599193:doAdd,[])
}
Add(DoData,6684174,231,91)
{
Data=Integer(60)
link(onEventData,13839180:doWork2,[])
}
Add(Hub,1554397,168,77)
{
OutCount=5
link(onEvent1,11840039:doOpen,[])
link(onEvent2,6684174:doData,[(221,90)(221,97)])
link(onEvent3,7328370:doGet,[(200,97)(200,153)])
link(onEvent4,8374205:doCopy,[(193,104)(193,188)])
link(onEvent5,11840039:doClose,[(277,111)(277,90)])
}
Add(StreamConvertor,16709241,343,182)
{
Point(Data)
link(onResult,11272624:doGetIndex,[])
link(Data,14642201:Var2,[])
}
Add(StreamCopy,8374205,294,182)
{
Count=6
link(onCopy,16709241:doConvert,[])
link(Dest,14642201:Var1,[(300,159)])
link(Source,3206632:Var2,[])
}
Add(MemoryStream,16421182,343,112)
{
}
Add(GetDataEx,14642201,343,154)
{
link(Data,16421182:Stream,[])
}
Add(HubEx,13839180,280,91)
{
link(onEvent,11840039:doPosition,[])
}
Add(GetDataEx,3206632,301,126)
{
link(Data,11840039:Stream,[])
}
Add(StrList,11272624,392,154)
{
Strings=#12:504500004C01|12:504500006486|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,2570055:doSet,[])
}


Редактировалось 2 раз(а), последний 2025-06-29 18:55:54
карма: 20

1
Голосовали:strannik_nebes
Ответов: 975
Рейтинг: 204
#138: 2025-07-05 07:25:22 ЛС | профиль | цитата
Небольшая схема для создания ISO образа из любой папки
https://forum.hiasm.com/getfile/40594
карма: 20

1
файлы: 1Creating ISO Files.zip [1.8KB] [193]
Голосовали:strannik_nebes
Ответов: 975
Рейтинг: 204
#139: 2025-08-07 17:54:27 ЛС | профиль | цитата
Простой способ добавления своей программы в меню Пуск.

https://forum.hiasm.com/getfile/40599

Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2429

--- Добавлено в 2025-08-07 18:10:35

Редактировалось 2 раз(а), последний 2025-08-07 18:11:29
карма: 20

1
файлы: 1Добавить свою программу в меню Пуск Windows 2.zip [1.4KB] [181]
Голосовали:FMKstudio
Ответов: 975
Рейтинг: 204
#140: 2025-09-28 06:05:43 ЛС | профиль | цитата
Определение кодировки текстовых файлов по BOM - маркер последовательности байтов.
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2#%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_%D0%BF%D0%BE_%D0%BC%D0%B0%D1%80%D0%BA%D0%B5%D1%80%D1%83_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2

Не все текстовые файлы содержат данный маркер.
В архиве две схемы и файлы примеров. https://forum.hiasm.com/getfile/40607
карма: 20

0
файлы: 1Text File Encoding.zip [4KB] [19]
Ответов: 975
Рейтинг: 204
#141: 2025-09-30 07:20:35 ЛС | профиль | цитата
Выкладываю SQLite базу по краткому описанию файлов, их тип в зависимости от расширения.
Более девяти тысяч уникальных описаний (9406), Размер – 832,0 кб.

В архиве также две схемы:
‘File Type Identification.sha’ – для работы положите рядом файл sqlite3.dll
‘File Type Identification PS.sha’ – работает без библиотеки sqlite3.dll

В базе все расширения начинаются с точки поэтому в фильтре также начинайте с точки.

Боюсь, что форум опять отвалится на несколько дней если я выложу архив, поэтому пока на yandex disk - https://disk.yandex.ru/d/PawMcIUMpFMTOg

Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi) rev - 2429

Редактировалось 1 раз(а), последний 2025-09-30 07:25:31
карма: 20

0
Ответов: 975
Рейтинг: 204
#142: 2025-10-02 07:10:45 ЛС | профиль | цитата
Немного поэкспериментировал с точкой ExtNames в MathParse
Add(MainForm,2953706,154,189)
{
Width=322
Height=149
link(onCreate,9564645:doWork2,[])
}
Add(Memo,8019329,224,133)
{
Left=10
Top=15
Width=175
Height=75
Font=[Lucida Console,12,0,0,204]
Antialiased=1
Strings=#10:Высота=2.5|8:Ширина=6|9:Длина=4.2|
ScrollBars=3
}
Add(Type_CreateFromList,1492609,224,203)
{
link(onCreate,2465620:doCalc,[])
link(VarsList,881987:Var2,[])
}
Add(Type_RW,15733965,343,140)
{
link(GType,1492609:FType,[(349,131)(335,131)(335,243)(230,243)])
link(onRead,1889459:doData,[(382,146)(382,125)(270,125)(270,146)])
}
Add(MathParse,2465620,280,203)
{
DataCount=1
MathStr="Высота * Ширина * Длина"
ExtNames=1
link(onResult,11107536:doString,[])
link(X1,1889459:GetData,[])
AddHint(-14,107,145,13,MathStr)
}
Add(EventFromData,1889459,280,140)
{
link(onEvent,15733965:doRead,[])
}
Add(Message,13764671,399,203)
{
}
Add(FormatStr,11107536,350,203)
{
Mask="Формулв:\r\nВысота * Ширина * Длина\r\n\r\nПараметры:\r\n%1\r\n\r\nРезультат: \r\nОбъём - %2"
link(onFString,13764671:doMessage,[])
link(Str1,881987:Var3,[(356,187)])
}
Add(GetDataEx,881987,224,182)
{
link(Data,8019329:Text,[])
}
Add(Button,12425178,154,238)
{
Left=220
Top=35
Height=40
Caption="Calc"
link(onClick,9564645:doWork3,[(200,244)])
}
Add(HubEx,9564645,196,203)
{
link(onEvent,1492609:doCreate,[])
}


Редактировалось 1 раз(а), последний 2025-10-02 13:44:03
карма: 20

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