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

0
Ответов: 914
Рейтинг: 196
#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
карма: 19

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

1
файлы: 1Creating ISO Files.zip [1.8KB] [42]
Голосовали:strannik_nebes
138
Сообщение
...
Прикрепленные файлы
(файлы не залиты)