Czy można wywołać jądro Native API z aplikacji Delphi? Podobnie jak w systemach baz danych nt
i zw
.Czy możemy wywołać Native Windows API z Delphi?
Odpowiedz
Można rzeczywiście zadzwonić do natywnego API z Delphi.
Delphi nie jest dostarczany z tłumaczeniem nagłówków dla natywnego interfejsu API. Musisz więc podać własne lub użyć wcześniejszego tłumaczenia. Na przykład. tłumaczenie JEDI interfejsu API NT.
Dokładnie, potrzebujesz JwaNative.pas od Jedi Apilib (+1) – Remko
Jak mówi David Heffernan, możliwe jest użycie Native API ze trybu użytkownika, a tym samym Delphi. Będziesz potrzebował jednostki JwaNative z Jedi Apilib.
Oto mały przykład wyliczyć procesów z wykorzystaniem Native API: (TProcessList jest potomkiem z TObjectList ale odpowiednia część jest wezwanie do NtQuerySystemInformation)
function EnumProcesses: TProcessList;
var
Current: PSystemProcesses;
SystemProcesses : PSystemProcesses;
dwSize: DWORD;
nts: NTSTATUS;
begin
Result := TProcessList.Create;
dwSize := 200000;
SystemProcesses := AllocMem(dwSize);
nts := NtQuerySystemInformation(SystemProcessesAndThreadsInformation,
SystemProcesses, dwSize, @dwSize);
while nts = STATUS_INFO_LENGTH_MISMATCH do
begin
ReAllocMem(SystemProcesses, dwSize);
nts := NtQuerySystemInformation(SystemProcessesAndThreadsInformation,
SystemProcesses, dwSize, @dwSize);
end;
if nts = STATUS_SUCCESS then
begin
Current := SystemProcesses;
while True do
begin
Result.Add(TProcess.Create(Current^));
if Current^.NextEntryDelta = 0 then
Break;
Current := PSYSTEM_PROCESSES(DWORD_PTR(Current) + Current^.NextEntryDelta);
end;
end;
FreeMem(SystemProcesses);
end;
Czy jesteś autorem JwaNative? –
@DavidHeffernan: Jestem jednym z administratorów projektu Jedi Apilib ... – Remko
Nie na temat: Czy to ja, czy też naprawdę trudno jest znaleźć JEDI za pomocą wyszukiwarki internetowej. Ilekroć próbuję, zawsze znajduję mnóstwo linków do pozornie wielu różnych stron. I czy istnieje wiele różnych projektów? Być może to mnie wprawia w zakłopotanie. –
- 1. Czy możemy używać Highcharts z React-Native?
- 2. czy możemy wywołać metodę startActivityForResult z adaptera?
- 3. Problemy z wyciekiem pamięci z wywołaniem Windows API - Delphi
- 4. Czy można wywołać API COM z Java?
- 5. Czy można wywołać funkcję w składniku rodzica w React Native?
- 6. Czy możemy wywołać wywołanie systemowe w przestrzeni jądra?
- 7. Czy możemy wywołać tę metodę po zminimalizowaniu aplikacji?
- 8. Uzyskaj wskazówki dotyczące połączeń API? React-native
- 9. Czy mogę napisać sterowniki systemu Windows z Delphi 2010?
- 10. Czy są dostępne zaktualizowane książki lub witryny w systemie Windows NT Native API?
- 11. Jak wywołać metodę z działającej usługi Windows
- 12. Jak wywołać WebAPI z usługi Windows
- 13. Funkcja Delphi do wyświetlania liczby bajtów jako Windows Czy
- 14. Jak wywołać API Spotify z C#
- 15. Jak korzystać z interfejsu API wykresów z react-native-fbsdk?
- 16. Delphi REST API Post Sample
- 17. Czy można fałszywe api konsoli systemu Windows?
- 18. React-Native Najniższy poziom Androida API
- 19. Wywołanie metody Delphi z innego programu Delphi
- 20. React-native: Jak zbudować dla ios z Windows
- 21. Czy Delphi 6 jest zainstalowany w systemie Windows 10
- 22. Czy możemy używać Foundation z kodem HTML5Boilerplate?
- 23. Czy możemy użyć $ sce.trustAsHtml (string) z "filtru"?
- 24. Czy możemy bezpośrednio usunąć węzły z NodeList?
- 25. Czy możemy zintegrować mailchimp z witryną Google
- 26. Czy możemy wylogować się z Facebooka programistycznie?
- 27. Windows (.lnk) - skróty API?
- 28. Czy możemy dostosować Facebook Likebox?
- 29. Czy możemy użyć Microsoft.AspNet.WebApi.Client z aplikacji ASP.NET Core?
- 30. Wiadomość z powrotem od Windows API
ale możemy nazwać nt i ZW syscalls w sposób Program usermode c/C++, są one przeznaczone nie tylko dla kierowców. – n1kita
Formalnie możesz napisać sterownik w Delphi tak jak w c/C++, nie ma ograniczeń językowych. Jedyny praktyczny problem polega na tym, że frameworki sterowników delphi nie istnieją. – kludg
@Serg Nie jestem pewien, czy w Delphi jest praktyczne pisanie sterownika. Jak spakujesz kod? Sterowniki nie są plikami DLL ani EXE. –