Вызвать Экранную клавиатуру (OSK.exe) из своей программы можно несколькими способами
1.
2.
Схема для вызова Сенсорной клавиатуры (TabTip.exe)
Проверено на
- 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
|