0

私はパスカルでEnumServicesStatus関数を呼び出しています。しかし、それを宣言する方法。これはOpenSCManagerの例です

function OpenSCManager(lpMachineName, lpDatabaseName: string; dwDesiredAccess :cardinal): HANDLE;
external 'OpenSCManagerA@advapi32.dll stdcall';

ありがとう。

4

1 に答える 1

0

誰かが、使用できる API .pas ファイル全体をまとめるという大変な作業を既に行っているようです。チェックアウト:

http://gr32ex.googlecode.com/svn/trunk/GR32Ex/Examples/DesktopSnow/GPSysHook/api/JwaWinSvc.pas

EnumServicesStatusAまたはEnumServicesStatusW;を検索します。ANSI と Unicode の両方があります。取得できるさまざまな構造体、列挙型、およびその他の機能がおそらく見つかるでしょう。

そのファイルの URL が変更された場合に備えて、関連する行は次のとおりです。

function EnumServicesStatusA(hSCManager: SC_HANDLE; dwServiceType: DWORD;
  dwServiceState: DWORD; lpServices: LPENUM_SERVICE_STATUSA; cbBufSize: DWORD;
  var pcbBytesNeeded, lpServicesReturned, lpResumeHandle: DWORD): BOOL; stdcall;
{$EXTERNALSYM EnumServicesStatusA}

function EnumServicesStatusW(hSCManager: SC_HANDLE; dwServiceType: DWORD;
  dwServiceState: DWORD; lpServices: LPENUM_SERVICE_STATUSW; cbBufSize: DWORD;
  var pcbBytesNeeded, lpServicesReturned, lpResumeHandle: DWORD): BOOL; stdcall;
{$EXTERNALSYM EnumServicesStatusW}

function EnumServicesStatus(hSCManager: SC_HANDLE; dwServiceType: DWORD;
  dwServiceState: DWORD; lpServices: LPENUM_SERVICE_STATUS; cbBufSize: DWORD;
  var pcbBytesNeeded, lpServicesReturned, lpResumeHandle: DWORD): BOOL; stdcall;
{$EXTERNALSYM EnumServicesStatus}
于 2013-04-01T03:02:16.540 に答える