Untitled

Run Settings
LanguageNim
Language Version
Run Command
import winim/lean,strformat proc main = let hSCManager = OpenSCManagerW( nil, nil, SC_MANAGER_ENUMERATE_SERVICE ) let errSCManager = GetLastError() echo fmt"OpenSCManager err: {errSCManager}" var dwServiceType: DWORD = SERVICE_WIN32 dwServiceState: DWORD = SERVICE_STATE_ALL cbBufSize: DWORD = 43453 lpServices = addr cbBufSize pcbBytesNeeded: DWORD lpServicesReturned: DWORD resumeHandle: DWORD let retVal = EnumServicesStatusW( hSCManager, dwServiceType, dwServiceState, cast [LPENUM_SERVICE_STATUSW](&lpServices), cbBufSize, cast [ptr DWORD](&pcbBytesNeeded), cast [ptr DWORD](&lpServicesReturned), cast [ptr DWORD](&resumeHandle) ) let errEnumServicesStatus = GetLastError() echo fmt"EnumServicesStatus: {errEnumServicesStatus} {pcbBytesNeeded}" if retVal == FALSE or errEnumServicesStatus == ERROR_MORE_DATA: var dwBytes: DWORD = cbBufSize + int32(sizeof(ENUM_SERVICE_STATUS)) # ??????? # var lpServices = newSeq[ENUM_SERVICE_STATUS](dwBytes) EnumServicesStatusW( hSCManager, dwServiceType, dwServiceState, cast [LPENUM_SERVICE_STATUSW](&lpServices), cbBufSize, cast [LPDWORD](&pcbBytesNeeded), cast [LPDWORD](&lpServicesReturned), cast [LPDWORD](&resumeHandle) ) # ????? # for i in 0..<cast[DWORD](lpServicesReturned): # echo lpServices[i].lpDisplayName when isMainModule: main()
Editor Settings
Theme
Key bindings
Full width
Lines