2022年5月19日 星期四

感測器 英文 詞彙

 inertial 慣性
Measurement 量測
accelerometer 加速度計
gyroscope 陀螺儀
magnetometer 磁力計
magnetic field detection 磁場檢測
gauss magnetic 高斯磁
linear acceleration 線性加速度
Ultra-compact 超微小
high-performance 高效能
e-compass 電子羅盤 指南針
Capacitive sensing 電容式感應
Accelerometers 加速度計  
Board Mount Motion 板載運動
Position Sensors 位置傳感器  
Distance Sensors 距離傳感器
Gyroscopes 陀螺儀
IMUs Inertial Measurement Units 慣性測量單元
Inclinometers 傾角儀
Industrial Motion 工業運動
Position Sensors 位置傳感器
Speed Sensors 速度傳感器
Tilt Switches 傾斜開關
Vibration Sensors 振動傳感器
Capacitance sensors detect 電容傳感器檢測
 Audio Sensor 音頻傳感器
 Biometric Sensors 生物識別傳感器
 Capacitive Touch Sensors 電容式觸摸傳感器
 Current Sensors  電流傳感器  
 Encoders  編碼器  
 Environmental Sensors  環境傳感器  
 Flow Sensors  流量傳感器
 Force Sensors & Load Cells 力傳感器和稱重傳感器
 Linear Displacement Sensors 線性位移傳感器
 Liquid Level Sensors 液位傳感器  
 Magnetic Sensors 磁傳感器
 Motion & Position Sensors 運動和位置傳感器  
 Optical Sensors 光學傳感器  
 Pressure Sensors 壓力傳感器
 Proximity Sensors 接近傳感器
 Sensor Development Tools 傳感器開發工具
 Sensor Hardware & Accessories 傳感器硬件和配件
 Temperature Sensors 溫度傳感器   
Load Cell 荷重元
Force Sensor壓力
Piezo Vibration Sensor 壓電式振動感測
Thermocouple 熱電偶
Seebeck 熱電效應
Hall effect 霍爾效應
strain gauge, strain gage 應變片
Ultrasonic transducer  超聲換能器
piezoelectric transducers 壓電傳感器
capacitive transducers 電容式微加工超聲換能器
pressure 壓力
acceleration 加速度
temperature 溫度
strain 拉緊
force 力量
Vibration Sensor 震動感測
eletrostatically 靜電
Electrostatics 靜電學
sensitive 敏感
material 材料
reloading 負重
Precision 精確
barometric 氣壓
altitude 高度
Magneto Resistance 磁阻抗

 

https://terms.naer.edu.tw/

 國家教育研究院-物理學名詞-高中含以下物理學學術名詞

https://sheethub.com/data.gov.tw/%E5%9C%8B%E5%AE%B6%E6%95%99%E8%82%B2%E7%A0%94%E7%A9%B6%E9%99%A2-%E7%89%A9%E7%90%86%E5%AD%B8%E5%90%8D%E8%A9%9E-%E9%AB%98%E4%B8%AD%E5%90%AB%E4%BB%A5%E4%B8%8B%E7%89%A9%E7%90%86%E5%AD%B8%E5%AD%B8%E8%A1%93%E5%90%8D%E8%A9%9E 

Springer Handbook of Semiconductor Devices pdf

https://www.arduinolibraries.info/libraries

https://www.rutronik.com/fileadmin/Rutronik/Downloads/printmedia/products/01_semiconductors/analog_and_sensors_en.pdf


  inertial accelerometer gyroscope compass Inclinometers Position Distance Sensors ic drone
drone "all in one" Sensors  board  drone Drone Flight Controller Explained

solution fpv drone Flight Controller  ESC package AIO

https://oscarliang.com/top-5-best-fc-mini-quad/

word relation map dictionary thesaurus Associations

 https://trishhopkinson.com/2014/12/03/need-a-word-association-generator-these-are-free-and-better-than-your-average-thesaurus/

 https://visuwords.com/

https://wordassociations.net/en 

https://graphwords.com/

https://www.leydesdorff.net/words/

https://link.springer.com/article/10.3758/s13428-019-01208-2

https://www.isko.org/cyclo/thesaurus

https://eadh.org/projects/historical-thesaurus-english

https://www.thesaurus.com/browse/association

 

  small smaller strong stronger Comparative Superlative Adjectives

https://www.perfect-english-grammar.com/adjectives-comparative-and-superlative.html

https://www.charlesdowdy.me/%E6%AF%94%E8%BC%83%E7%B4%9A%E6%9C%80%E9%AB%98%E7%B4%9A%E5%96%AE%E5%AD%97%E8%A1%A8/

synonyms Opposite adjective

 

 https://englishgrammarhere.com/adjectives/comparative-and-superlative-adjectives-100-examples-and-exercises/

Comparative and Superlative Adjectives

color type Color Name List thesaurus

 https://graf1x.com/list-of-colors-with-color-names/

https://www.ncl.ucar.edu/Document/Graphics/named_colors.shtml 

https://en.wikipedia.org/wiki/List_of_colors:_A%E2%80%93F

Colors in alphabetical order A–F

Delphi Bit Byte Moving J R Stockton Rotate Right shr shl

 https://people.cs.nctu.edu.tw/~tsaiwn/sisc/runtime_error_200_div_by_0/www.merlyn.demon.co.uk/del-bits.htm

http://www.delphibasics.co.uk/RTL.asp?Name=xor 

http://www.delphibasics.co.uk/RTL.asp?Name=shl

https://www.interviewcake.com/concept/java/bit-shift

https://onlinetoolz.net/bitshift

Logical Arithmetic  Circular Rotate through carry shift

https://www.geeksforgeeks.org/rotate-bits-of-an-integer/

https://www.freepascal.org/docs-html/rtl/system/roldword.html

https://www.freepascal.org/docs-html/rtl/system/rolbyte.html

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Expressions_(Delphi)

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Bitwise_Operators

 

https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TBits.Bits

https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TBits

https://github.com/StarWong/MyLibary/blob/316624818c46b954206d9cbef4799e6e5250aa60/HashLib4Pascal/HashLib/src/Utils/HlpBits.pas

class function TBits.RotateLeft8(a_value: Byte; a_n: Int32): Byte;
begin
...
  a_n := a_n and 7;
  Result := (a_value shl a_n) or (a_value shr (8 - a_n));
...
end;

class function TBits.RotateRight8(a_value: Byte; a_n: Int32): Byte;
begin
{$IFDEF DEBUG}
  System.Assert(a_n >= 0);
{$ENDIF DEBUG}
{$IFDEF FPC}
  Result := RorByte(a_value, a_n);
{$ELSE}
  a_n := a_n and 7;
  Result := (a_value shr a_n) or (a_value shl (8 - a_n));
{$ENDIF FPC}
end;

class function TBits.RotateRight32(a_value: UInt32; a_n: Int32): UInt32;
begin
{$IFDEF DEBUG}
  System.Assert(a_n >= 0);
{$ENDIF DEBUG}
{$IFDEF FPC}
  Result := RorDWord(a_value, a_n);
{$ELSE}
{$IFNDEF SHIFT_OVERFLOW_BUG_FIXED}
  a_n := a_n and 31;
{$ENDIF SHIFT_OVERFLOW_BUG_FIXED}
  Result := (a_value shr a_n) or (a_value shl (32 - a_n));
{$ENDIF FPC}
end;

2022年5月18日 星期三

MOSFET

 APT10035LLL MOSFET-based high voltage short pulse

https://aip.scitation.org/doi/pdf/10.1063/1.5021211 


 MOSFET Gate Driver Circuit Design for High Repetitive (200kHz) High Voltage (10kV) Solid-State Pulsed-Power Modulator

部首 請問草字頭的字為何有兩種寫法

 艸 艹  丱 卝 ㄍㄨㄞ 卝部 艸 草 ㄘㄠˇ     

 

丱     ㄏㄨㄥˋ       丱     ㄍㄨㄢˋ

 

苟、敬、護、獲、雚、觀、夢、萬、舊

 

https://www.ptt.cc/bbs/Wrong_spell/M.1222961505.A.6EC.html

2022年5月17日 星期二

WEB Developer skills via bootstrap react.js EXT.js figma adobexd sql java mediaquery Web Developer Skills From Basics To Extra

 https://www.upwork.com/hire/bootstrap-designers/eg/ismailia/

 https://www.templatesthemes.net/tags/dashboard/

https://www.upwork.com/hire/javascript-developers/eg/ismailia/ 


JavaScript VUE.js EXTJS Angular React

MVC MVP MVVM Design Pattern  Architecture JavaScript Framework

JavaScript Framework 

Localstorage SessionStorage Cookies WebSQL IndexedDb

 EXTJS  React Spring Mvc

rich web application frameworks 

https://en.wikipedia.org/wiki/List_of_rich_web_application_frameworks

https://en.wikipedia.org/wiki/Mobile_development_framework

javascript CanvasKit Skia  WebAssembly

Angular vs Knockout.js vs Vue.js vs Backbone.js: Which JavaScript Framework Suits


Linear Operational analog Waveform phase modulation calculation Differential Substrate Arithmetic


https://en.wikipedia.org/wiki/List_of_LM-series_integrated_circuits

https://www.geeksforgeeks.org/analog-to-analog-conversion-modulation/ 

https://www.neophotonics.com/what-is-phase-modulation/

https://www.monolithicpower.com/en/power-factor-correction

identify max switching frequency of a MOSFET switching frequency Eon Freq wheeling diode Power MOSFET switching behavior

  identify max switching frequency of a MOSFET switching frequency Eon Freq wheeling diode Power MOSFET switching behavior
https://www.analog.com/ru/app-notes/an-140.html

High Speed 650V IGBTs for DC-DC Conversion up to 200 kHz 


200Khz switching frequency MOSFET wheeling diode 650v

Maximizing the Performance of GaN with Ideal Diode Mode
https://www.ti.com › lit › snoa932
PDF
Dead Time Loss Versus Dead Time Settings With 200kHz Switching Frequency. ... between TI GaN with ideal diode mode, a 650V SiC MOSFET, discrete e-mode.

application. A 1200V, 160mohm SiC MOSFET from Cree Inc ...
https://www.richardsonrfpd.com › docs › rfpd › C...
PDF
limits the switching frequency at or below 200 kHz. ... Body diode recovery time trr. Body diode charge Qrr. 1200V. 650V. 650V.


https://electronics.stackexchange.com/questions/291342/freewheeling-diode-needed

Dual Operational Amplifiers LM358

 Dual Operational Amplifiers LM358 

MOSFET 2N7000  N-Channel 60-V (D-S) MOSFET - Vishay Siliconix N-Channel Enhancement-Mode Vertical DMOS FET, Microchip Technology.
FDS4935A - MOSFET – Dual, P-Channel, PowerTrench 30 V

2022年5月15日 星期日

delphi circular shift crypto Cipher replaced

 https://github.com/decfpc/DelphiEncryptionCompendium/blob/master/DECCipher.pas

https://en.wikipedia.org/wiki/Caesar_cipher

SQLite Query TDataSetProvider TClientDataSet

 TDataSetProvider 

TClientdataset  TFDMemTable 

TBlobField

chm file data Blob HTML Images  Binary Fields 

MIME types  IANA media types 

LZX LZ77  compression algorithm

DataSetProvider clientdataset LOCAL DATABASE tables

2022年5月14日 星期六

ftdichip RS-232或TTL串行傳輸

 https://ftdichip.com/software-examples/code-examples/delphi-examples/

 

 

2022年5月13日 星期五

ime

 https://p0w3rsh3ll.wordpress.com/2013/06/07/about-keyboard-layouts/

 https://social.technet.microsoft.com/Forums/en-US/2a46ae38-2202-4286-9b46-35bc6e60e861/what-command-can-be-run-from-the-cmd-to-inquire-about-the-language-layout-that-is-used-right-now?forum=w7itproui

 

For the current input language you can try using

reg query "HKCU\Keyboard Layout\Preload" /v 1

The return value includes an eight digit hex value. The first four digits indicate either default layout for the language (all zeros) or a variation (non-zero). The last four digits are the locale id - see:

http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx

From this table, you can see in the example above my input language is English - Australia.

For the keyboard layout you could try

WMIC Path Win32_Keyboard Get Layout

0409 is an English - US keyboard.

For a few other ideas/methods try reading

http://p0w3rsh3ll.wordpress.com/2013/06/07/about-keyboard-layouts/ 




About keyboard layouts
Posted on June 7, 2013   

A colleague from the helpdesk team recently asked if I could report the keyboad layout set before users log onto the computer.

I started digging into WMI classes by typing

Get-CimClass -ClassName *Keyboard*

Then did:

Get-CimInstance Win32_Keyboard

… and noticed the Layout property.

Both the MSDN page about the WMI Win32_Keyboard class…

…and the following powershell commands…

([wmiclass]'Win32_Keyboard').GetText("MOF")            
([wmiclass]'CIM_Keyboard').GetText("MOF")

…confirmed that the layout property is returned as a string value.

The problem with this value is that it’s not human readable and represents actually a hexadecimal value.



The problem with this value is that it’s not human readable and represents actually a hexadecimal value.
Although I can find the mapping of hexadecimal values to a user friendly value in the following registry key HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout\DosKeybCodes, I decided to go another way.

First, do you know that you can use DISM.exe locally:

ime

 IEnumTfLanguageProfiles = interface
['{3D61BF11-AC5F-42C8-A4CB-931BCC28C744}']
function Next(ulCount: Cardinal; const pProfile: PF_LANGUAGEPROFILE; out pcFetch: Cardinal): HRESULT; stdcall;
MSDN  

HRESULT Next(    ULONG ulCount<!---->,
  TF_LANGUAGEPROFILE* pProfile<!---->,
  ULONG* pcFetch<!----> );

Parameters

ulCount
    [in] Specifies the number of elements to obtain.
pProfile
    [out] Pointer to an array of TF_LANGUAGEPROFILE structures that receives the requested data. This array must be at least ulCount elements in size.
pcFetch
    [out] Pointer to a ULONG value that receives the number of elements obtained. This value can be less than the number of items requested. This parameter can be NULL.

 
    Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)]
    TF_LANGUAGEPROFILE[] profiles, out int fetched);

 

 

 

 

 


type
PF_LANGUAGEPROFILE = ^TF_LANGUAGEPROFILE;
TF_LANGUAGEPROFILE = packed record
clsid: TGUID;
langid: smallint;
catid: TGUID;
fActive: WordBool;
guidProfile: TGUID;
end;

IEnumGUID = interface
['{0002E000-0000-0000-C000-000000000046}']
function Next(celt: Cardinal; out rgelt: TGUID; out pcFetched: Cardinal): HRESULT; stdcall;
function Skip(celt: Cardinal): HRESULT; stdcall;
function Reset: HRESULT; stdcall;
function Clone(out ppEnum: IEnumGUID): HRESULT; stdcall;
end;

IEnumTfLanguageProfiles = interface
['{3D61BF11-AC5F-42C8-A4CB-931BCC28C744}']
function Clone(out ppEnum: IEnumTfLanguageProfiles): HRESULT; stdcall;
function Next(ulCount: Cardinal; const pProfile: PF_LANGUAGEPROFILE; out pcFetch: Cardinal): HRESULT; stdcall;
function Reset: HRESULT; stdcall;
function Skip(ulCount: Cardinal): HRESULT; stdcall;
end;

ITfInputProcessorProfiles = interface
['{1F02B6C5-7842-4EE6-8A0B-9A24183A95CA}']
function Register(const clsid: TGUID): HRESULT; stdcall;
function Unregister(const clsid: TGUID): HRESULT; stdcall;
function AddLanguageProfile(const clsid: TGUID; langid: smallint; const guidProfile: TGUID; const pchDesc: WideString; cchDesc: Cardinal; const pchIconFile: WideString; cchFile, uIconIndex: Cardinal): HRESULT; stdcall;
function RemoveLanguageProfile(const clsid: TGUID; langid: smallint; out guidProfile: TGUID): HRESULT; stdcall;
function EnumInputProcessorInfo(out ppEnum: IEnumGUID): HRESULT; stdcall;
function GetDefaultLanguageProfile(langid: smallint; const catid: TGUID; out clsid: TGUID; out guidProfile: TGUID): HRESULT; stdcall;
function SetDefaultLanguageProfile(langid: smallint; const clsid: TGUID; const guidProfile: TGUID): HRESULT; stdcall;
function ActivateLanguageProfile(const clsid: TGUID; langid: smallint; const guidProfiles: TGUID): HRESULT; stdcall;
function GetActiveLanguageProfile(const clsid: TGUID; out langid: smallint; out guidProfile: TGUID): HRESULT; stdcall;
function GetLanguageProfileDescription(const clsid: TGUID; langid: smallint; const guidProfile: TGUID; out pbstrProfile: WideString): HRESULT; stdcall;
function GetCurrentLanguage(out langid: smallint): HRESULT; stdcall;
function ChangeCurrentLanguage(langid: smallint): HRESULT; stdcall;
function GetLanguageList(out ppLangId: pointer; out ulCount: Cardinal): HRESULT; stdcall;
function EnumLanguageProfiles(langid: smallint; out ppEnum: IEnumTfLanguageProfiles): HRESULT; stdcall;
function EnableLanguageProfile(const clsid: TGUID; langid: smallint; const guidProfile: TGUID; fEnable: WordBool): HRESULT; stdcall;
function IsEnabledLanguageProfile(const clsid: TGUID; langid: smallint; const guidProfile: TGUID; out fEnabled: WordBool): HRESULT; stdcall;
function EnableLanguageProfileByDefault(const clsid: TGUID; langid: smallint; const guidProfile: TGUID; fEnabled: WordBool): HRESULT; stdcall;
function SubstituteKeyboardLayout(const clsid: TGUID; langid: smallint; const guidProfile: TGUID; hKL: pointer): HRESULT; stdcall;
end;

function TF_CreateInputProcessorProfiles(out profiles: ITfInputProcessorProfiles): HRESULT; stdcall; external 'msctf.dll'; 


https://github.com/ryancheung/ImeSharp

IterateSubKeys(Registry.CurrentUser, "SOFTWARE\\Microsoft\\CTF\\TIP\\" + subKeyName + "\\LanguageProfile",

https://www.xujun.org/note-48842.html

文/黄忠成

  ComImport SecurityCritical SuppressUnmanagedCodeSecurity

Guid  “1F02B6C5-7842-4EE6-8A0B-9A24183A95CA” ),
      InterfaceType ComInterfaceType  .InterfaceIsIUnknown)]
   ITfInputProcessorProfiles
 
    
 
 
 
 
 https://github.com/xyzzy-022/xyzzy/issues/170
 Vista で読みから変換候補リストを取得する Text Services Framework
 http://hp.vector.co.jp/authors/VA050396/tech_01.html
 
 
 https://github.com/microsoft/Windows-classic-samples/tree/main/Samples/Win7Samples/winui/tsf
 https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/winui/tsf/tsfapp/tsfapp.cpp
https://docs.microsoft.com/en-us/windows/win32/api/_tsf/
 msctf_TLB.pas
 https://github.com/lantaoxu/Windows-Server-2003/blob/5c6fe3db626b63a384230a1aa6b92ac416b0765f/windows/advcore/ctf/inc/msime.h
https://pastebin.com/PBcJeuKV 
TSF "Text Services Framework"」の項でチョット触れましたが、これを実現するために ImmGetConversionList 関数を使う人がいます。この関数を使っても不可能ではありませんが、そもそも使うべき関数を間違っています。ImmGetCompositionString 関数ならズバリな解答を得ることができます。しかも、Windows Vista でも問題なく使えます。
http://www.kanazawa-net.ne.jp/~pmansato/net/net_tech_ime.htm
http://hp.vector.co.jp/authors/VA050396/tech_01.html
ImmGetConversionListの代替は?
https://www.petitmonte.com/bbs/answers?question_id=6145
https://docs.microsoft.com/zh-tw/windows/win32/api/msime/

//L"MSIME.China";
//L"MSIME.Japan";
//L"MSIME.Taiwan";
//L"MSIME.Taiwan.ImeBbo";
 
 
mepad.h
imm.h
immdev.h
msime.h
msimeapi.h
 
 Text Services Framework, you need these headers:

    ctffunc.h
    ctfspui.h
    ctfutb.h
    inputscope.h
    msaatext.h
    msctf.h
 
 
 

ime

 GetSystemMetrics WM_IME_CONTROL

https://docs.microsoft.com/zh-TW/windows/win32/intl/nls-terminology

 code  ImmGetCandidateList

https://docs.microsoft.com/zh-tw/windows/win32/intl/input-method-manager

https://docs.microsoft.com/zh-tw/windows/win32/intl/input-method-manager-messages

https://mugichoko.hatenablog.com/entry/2018/10/27/003856

https://dragon-john.blogspot.com/2013/06/c-win7.html

2022年5月12日 星期四

2022年5月11日 星期三

delphi message queue registing Window procedure AllocateHWnd

 delphi message queue registing Window procedure AllocateHWnd RegisterWindowMessage DeallocateHWnd

https://zarko-gajic.iz.hr/receive-windows-messages-in-your-custom-delphi-class-nonwindowed-control-object/

  Window procedure 

https://stackoverflow.com/questions/36079268/bringing-tcallbackthunk-to-64-bit-via-anonymous-function

http://computer-programming-forum.com/31-pascal/a8757a5d056efcad.htm

https://www.programmersought.net/article/334918782.html

https://edn.embarcadero.com/article/10323


 TWndMethod
 TWinControl.MainWndProc
 TWinControl.WndProc
 TControl.WndProc
 TObject.Dispatch
 TWinControl.DefaultHandler
 TControl.Perform
 TWinControl.Broadcast
 TWinControl.WMPaint
 TWinControl 

https://blog.actorsfit.com/a?ID=00200-873e72f4-0375-4905-a5ba-9f1d7cdb85b4

TranslateMessage
DispatchMessage
PostMessage
GetMessage
PeekMessage

https://stackoverflow.com/questions/50041183/properly-overriding-wndproc

https://docwiki.embarcadero.com/RADStudio/Sydney/en/The_WndProc_Method

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerwindowmessagea

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Declaring_a_New_Message-handling_Method

TApplicationEvents RegisterWindowMessage  Message Event

https://www.codeproject.com/Articles/546/Message-Management#Registered%20Window%20Messages

https://edn.embarcadero.com/article/38447

https://stackoverflow.com/questions/52380172/sendmessage-fail-using-registerwindowmessage-api

Adventures in Delphi 6 Messaging

https://www.informit.com/articles/article.aspx?p=27217&seqNum=9

Reactive extension for Delphi Reactive Extensions

 https://github.com/Purik/RxDelphi

system.loadlibrary JNI_OnLoad Embarcadero.Jni

 https://stackoverflow.com/questions/48670592/invoke-jni-onload-from-delphi

 https://developer.android.com/training/articles/perf-jni

https://community.embarcadero.com/article/technical-articles/1040-using-the-android-jni-bridge-to-open-a-pdf

 Using the Android JNI bridge to open a PDF

Delphi   ZeroPlayer Library  Android dynamic library 

https://docwiki.embarcadero.com/Libraries/Sydney/en/System.IOUtils.TPath.GetLibraryPath

 uses
   ..., Embarcadero.Jni

const
  LIBNAME = 'libtest.so';

function try_load_dll: THandle;
var
  libPath: string;
  OnLoadFunc: TJNI_OnLoad;
  hlib: THandle;
begin
  Result := 0;
  libPath := TPath.Combine(TPath.GetLibraryPath, libname);
  hlib := LoadLibrary(PChar(libPath));
  if hlib = 0 then Exit;
  @OnLoadFunc := GetProcAddress(hlib, 'JNI_OnLoad');
  if not Assigned(OnLoadFunc) then
  begin
    FreeLibrary(hlib);
    Exit;
  end;
  OnLoadFunc(PJavaVM(System.JavaMachine), nil);
  Result := hlib;
end;

https://question-it.com/questions/3417717/vyzov-jni_onload-iz-delphi

LIBNAME = 'libtest.so';
function try_load_dll:integer;
var libPath:system.string;
begin
  _status:= 0 ;
  libPath:=TPath.Combine(tpath.GetLibraryPath,libname);
  _status := LoadLibrary(PChar(libPath));
  result:=_Status;
  if( _status= 0 )then exit;
end;

JNI_OnLoad 


https://coderoad.ru/48670592/%D0%92%D1%8B%D0%B7%D0%B2%D0%B0%D1%82%D1%8C-JNI_OnLoad-%D0%BE%D1%82-Delphi



https://arophix.com/2017/12/01/android-jni/

https://www.programmersought.net/article/329130475.html

https://programmer.ink/think/jni_ndk-advanced-programming-guide-part-2.html

JNI_NDK Advanced Programming Guide Part

2022年5月10日 星期二

Process memory usage

 Process memory usage

GetProcessWorkingSetSize() SetProcessWorkingSetSize()   
h,mMin,mMax:cardinal;
h:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PID);
GetProcessWorkingSetSize(h,mMin,mMax);
CloseHandle(h);
h,newMin,newMax:cardinal;
h:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_SET_QUOTA, false, PID);
SetProcessWorkingSetSize(h, newMin, newMax);

https://w-shadow.com/blog/2006/09/04/process-memory-usage/ 




GetSystemTimes to get the total system timing.

GetProcessTimes to get timing for a specific process.

GetCurrentProcess to get current process handle.

PerfCounter Performance Counter

https://docs.microsoft.com/zh-tw/troubleshoot/windows-server/performance/manually-rebuild-performance-counters

https://www.codeproject.com/articles/9113/get-cpu-usage-with-getsystemtimes

https://docs.microsoft.com/en-us/windows/win32/perfctrs/about-performance-counters

https://www.codeproject.com/Articles/10538/Getting-CPU-Usage-in-a-Multiprocessor-Machine

https://www.codeproject.com/search.aspx?q=cpu++usage&doctypeid=1%3b2%3b3%3b13%3b11%3b17