tsystem.tpl
来自「在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己」· TPL 代码 · 共 1,165 行 · 第 1/2 页
TPL
1,165 行
rem TSYSTEM.OPL
rem
rem Copyright (c) 1997-2001 Symbian Ltd. All rights reserved.
rem
include "system.oxh"
include "const.oph"
declare external
external tBackLightOn:
external tSetBackLightOn:
external tSetBackLightOnTime:
external tSetBacklightBehavior:
external tIsBacklightPresent:
external tSetAutoSwitchOffBehavior:
external tSetAutoSwitchOffTime:
external tResetAutoSwitchOffTimer:
external tSwitchOff:
external tSetSoundEnabled:
external tSetSoundDriverEnabled:
external tSetKeyClickEnabled:
external tSetPointerClickEnabled:
external tSetDisplayContrast:
external tMaxDisplayContrast:
external CreateTestFile:
external tIsReadOnly:
external tIsHidden:
external tISystem:
external tSetReadOnly:
external tSetHiddenFile:
external tSetSystemFile:
external tVolumeSize:
external tVolumeSpaceFree:
external tVolumeUniqueID:
external tMediaType:
external DeleteTestFile:
external tDisplayTaskList:
external tSetComputeMode:
external tRunApp:
external tRunExe:
external tLogonToThread:
external tTerminateCurrentProcess:
external tTerminateProcess:
external tKillCurrentProcess:
external tKillProcess:
external tMod:
external tXOR:
external tLoadRsc:
external tUnLoadRsc:
external tReadRsc:
external tReadRscLong:
external tCheckUid:
external tSetPointerGrabOn:
external tMachineName:
external tEndTask:
external tKillTask:
external tGetThreadIdFromOpenDoc:
external tGetThreadIdFromAppUid:
external tSetForeground:
external tSetBackground:
external tSetForegroundByThread:
external tSetBackgroundByThread:
external tGetNextWindowGroupName:
external tGetNextWindowId:
external tSendKeyEventToApp:
external tIrDAConnectToSend:
external tIrDAConnectToReceive:
external tIrDAWrite:
external tIrDARead$:
external tIrDAReadA:
external tIrDAWaitForDisconnect:
external tIrDADisconnect:
external tMainBatteryStatus:
external tBackupBatteryStatus:
external tCaptureKey:
external tCancelCaptureKey:
external tSetPointerCapture:
external tClaimPointerGrab:
external tOpenFileDialog:
external tCreateFileDialog:
external tSaveAsFileDialog:
external tIsExternalPowerPresent:
external tGetThreadIdFromCaption:
external tOsVersionMajor:
external tOsVersionMinor:
external tRomVersionMajor:
external tRomVersionMinor:
external tRomVersionBuild:
external tGetFileSize:
external tUniqueFilename:
external tIsPathVisible:
external tKeyClickLoud:
external tKeyClickOverridden:
external tSoundDriverEnabled:
external tBacklightTimer:
external tScreenTimer:
external tPasswordTimer:
external tSaveTimer:
external tGenericTimer:(aTimerId&)
external tRunExeCmd:
external tRunDoc:
external tOPXVersion:
external tLinkEnableWithOptions&:
external _ShowLinkConfig:
const KTestFile$="C:\TSystem.Test"
const KEmptyOwner&=6
const KBlankOwner&=2941
const KStandardDir$="c:\Documents\"
const KBookmark$="c:\Documents\"
proc main:
global GRunAppRq&
global GRunExeRq&
global GTermCurrProcRq&
global GKillCurrProcRq&
print "Test the System.OPX"
print "-------------------"
print
print "Note that this code makes assumptions about what machine the code is running on."
print "For example it's a UK machine."
print
print "This may result in false failures on other machines."
print
tBacklightTimer:
tScreenTimer:
tPasswordTimer:
tSaveTimer:
tSetBackLightOn:
tSetBackLightOnTime:
tSetBacklightBehavior:
tIsBacklightPresent:
tSetAutoSwitchOffBehavior:
tSetAutoSwitchOffTime:
tResetAutoSwitchOffTimer:
tSetSoundEnabled:
tSetSoundDriverEnabled:
tSetKeyClickEnabled:
tSetPointerClickEnabled:
tSetDisplayContrast:
tMaxDisplayContrast:
CreateTestFile:
tIsReadOnly:
tIsHidden:
tISystem:
tSetReadOnly:
tSetHiddenFile:
tSetSystemFile:
tVolumeSize:
tVolumeSpaceFree:
tVolumeUniqueID:
tMediaType:
DeleteTestFile:
tDisplayTaskList:
tSetComputeMode:
tRunApp:
tRunExe:
tLogonToThread:
tTerminateCurrentProcess:
tTerminateProcess:
tKillCurrentProcess:
tKillProcess:
tMod:
tXOR:
tLoadRsc:
tUnLoadRsc:
tReadRsc:
tReadRscLong:
tCheckUid:
tSetPointerGrabOn:
tMachineName:
tEndTask:
tKillTask:
tGetThreadIdFromOpenDoc:
tGetThreadIdFromAppUid:
tSetForeground:
tSetBackground:
tSetForegroundByThread:
tSetBackgroundByThread:
tGetNextWindowGroupName:
tGetNextWindowId:
tSendKeyEventToApp:
tIrDAConnectToSend:
tIrDAConnectToReceive:
tIrDAWrite:
tIrDARead$:
tIrDAReadA:
tIrDAWaitForDisconnect:
tIrDADisconnect:
tMainBatteryStatus:
tBackupBatteryStatus:
tCaptureKey:
tCancelCaptureKey:
tSetPointerCapture:
tClaimPointerGrab:
tOpenFileDialog:
tCreateFileDialog:
tSaveAsFileDialog:
tIsExternalPowerPresent:
tGetThreadIdFromCaption:
tOsVersionMajor:
tOsVersionMinor:
tRomVersionMajor:
tRomVersionMinor:
tRomVersionBuild:
tGetFileSize:
tUniqueFilename:
tIsPathVisible:
tKeyClickLoud:
tKeyClickOverridden:
tSoundDriverEnabled:
get
endp
PROC CreateTestFile:
LOCAL h%
LOCAL test$(30)
test$ = "This is a test file"
IOOPEN(h%,KTestFile$,2)
IOWRITE(h%,ADDR(test$)+1,LEN(test$))
IOCLOSE(h%)
ENDP
PROC DeleteTestFile:
trap delete KTestFile$
ENDP
PROC tBacklightTimer:
tGenericTimer:(KSyTimerBacklightTimeout&)
ENDP
PROC tScreenTimer:
tGenericTimer:(KSyTimerScreenTimeout&)
ENDP
PROC tPasswordTimer:
tGenericTimer:(KSyTimerPasswordTimeout&)
ENDP
PROC tSaveTimer:
tGenericTimer:(KSyTimerSaveTimeout&)
ENDP
PROC tGenericTimer:(aTimerId&)
LOCAL oldDuration&, newDuration&,check&
SyGetTimer:(aTimerId&,oldDuration&)
newDuration&=1
SySetTimer:(aTimerId&,newDuration&)
SyGetTimer:(aTimerId&,check&)
if newDuration&<>check&
RAISE 1
endif
newDuration&=100
SySetTimer:(aTimerId&,newDuration&)
SyGetTimer:(aTimerId&,check&)
if newDuration&<>check&
RAISE 100
endif
SySetTimer:(aTimerId&,oldDuration&)
ENDP
PROC tBackLightOn:
rem Returns either -1 or 0
rem No leaves
rem Any Machine
LOCAL backlightPresent&,backlightState&
SyGetHAL&:(KSyBacklight&,backlightPresent&)
IF backlightPresent&=KSyBacklightNone&
RETURN 0
ENDIF
REM Machine has backlight, so set it on.
SySetHAL&:(KSyBacklightState&,KSyBacklightStateOn&)
SyGetHAL&:(KSyBacklightState&,backlightState&)
IF backlightState&<>KSyBacklightStateOn&
RAISE 101
ENDIF
ENDP
PROC tSetBackLightOn:
rem No leaves
SySetHAL&:(KSyBacklightState&,KSyBacklightStateOn&)
ENDP
PROC tSetBackLightOnTime:
rem Valid parameters are any positive time
LOCAL backlightPresent&,backlightState&
rem Any machine
SySetTimer:(KSyTimerBacklightTimeout&,KMaxLong&)
SySetTimer:(KSyTimerBacklightTimeout&,60)
SySetTimer:(KSyTimerBacklightTimeout&,0)
onerr err120::
SySetTimer:(KSyTimerBacklightTimeout&,-1)
raise 120
err120::
onerr off
rem Machines which do have backlight
SyGetHAL&:(KSyBacklight&,backlightPresent&)
IF backlightPresent&=KSyBacklightSupported&
SySetTimer:(KSyTimerBacklightTimeout&,1)
SySetHAL&:(KSyBacklightState&,KSyBacklightStateOn&)
SyGetHAL&:(KSyBacklightState&,backlightState&)
IF backlightState&<>KSyBacklightStateOn&
raise 121
endif
endif
ENDP
PROC tSetBacklightBehavior:
rem Valid parameters 0 for off or any value for on
rem No leaves
rem Any machine
local backlightPresent&,backlightState&
rem Machines which do have backlight
SyGetHAL&:(KSyBacklight&,backlightPresent&)
IF backlightPresent&=KSyBacklightSupported&
SySetTimer:(KSyTimerBacklightTimeout&,1)
SySetHAL&:(KSyBacklightState&,KSyBacklightStateOn&)
SyGetHAL&:(KSyBacklightState&,backlightState&)
IF backlightState&<>KSyBacklightStateOn&
raise 130
endif
endif
ENDP
PROC tIsBacklightPresent:
rem Returns either -1 or 0
rem No leaves
local result&,backlightPresent&
result&=SyGetHAL&:(KSyBacklight&,backlightPresent&)
IF result&
raise 140
ENDIF
IF backlightPresent&=KSyBacklightSupported& OR backlightPresent&=KSyBacklightNone&
RETURN
ENDIF
RAISE 141
ENDP
PROC tSetAutoSwitchOffBehavior:
rem Valid parameters are 0,1,2
print "To Do: SySetAutoSwitchOffBehavior needs testing in interactive test"
onerr err150::
SySetTimer:(KSyTimerBacklightTimeout&,-1)
raise 150
err150::
onerr err151::
SySetTimer:(KSyTimerBacklightTimeout&,3)
raise 151
err151::
onerr off
ENDP
PROC tSwitchOff:
print "To Do: SySwithcOff needs testing in interactive test"
ENDP
PROC tSetSoundEnabled:
rem Valid paramenters are 0 for off or any other value for on
print "To Do: SySetSoundEnabled needs testing in interactive test"
SySetSoundEnabled:(0)
SySetSoundEnabled:(-1234)
SySetSoundEnabled:(KMaxLong&)
ENDP
PROC tSetSoundDriverEnabled:
rem Valid paramenters are 0 for off or any other value for on
print "To Do: SySetSoundDriverEnabled needs testing in interactive test"
SySetSoundDriverEnabled:(0)
SySetSoundDriverEnabled:(-1234)
SySetSoundDriverEnabled:(KMaxLong&)
ENDP
PROC tSetKeyClickEnabled:
print "To Do: SySetKeyClickEnabled needs testing in interactive test"
rem Valid paramenters are 0 for off or any other value for on
REM SySetKeyClickEnabled:(0)
REM SySetKeyClickEnabled:(-1234)
REM SySetKeyClickEnabled:(KMaxLong&)
ENDP
PROC tSetPointerClickEnabled:
print "To Do: SySetPointerClickEnabled needs testing in interactive test"
rem Valid paramenters are 0 for off or any other value for on
rem SySetPointerClickEnabled:(0)
rem SySetPointerClickEnabled:(-1234)
rem SySetPointerClickEnabled:(KMaxLong&)
ENDP
PROC tSetDisplayContrast:
rem Valid paramenters are between 0 and max display contrast
rem SySetDisplayContrast:(0)
rem SySetDisplayContrast:(SyMaxDisplayContrast&:)
rem onerr err230::
rem SySetDisplayContrast:(-1)
rem raise 230
err230::
rem onerr err231::
rem SySetDisplayContrast:(SyMaxDisplayContrast&:+1)
rem raise 231
err231::
onerr off
ENDP
PROC tMaxDisplayContrast:
rem if SyMaxDisplayContrast&:<>100
rem print "SyMaxDisplayContrast returned:",SyMaxDisplayContrast&:
rem raise 240
rem endif
ENDP
PROC tIsReadOnly:
SySetReadOnly:(KTestFile$,KTrue%)
if not SyIsReadOnly&:(KTestFile$)
raise 250
endif
SySetReadOnly:(KTestFile$,KFalse%)
if SyIsReadOnly&:(KTestFile$)
raise 251
endif
onerr err252::
SyIsReadOnly&:("Non-existant file")
raise 252
err252::
onerr off
ENDP
PROC tIsHidden:
SySetHiddenFile:(KTestFile$,KTrue%)
if not SyIsHidden&:(KTestFile$)
raise 260
endif
SySetHiddenFile:(KTestFile$,KFalse%)
if SyIsHidden&:(KTestFile$)
raise 261
endif
onerr err262::
SyIsHidden&:("Non-existant file")
raise 262
err262::
onerr off
ENDP
PROC tISystem:
SySetSystemFile:(KTestFile$,KTrue%)
if not SyIsSystem&:(KTestFile$)
raise 270
endif
SySetSystemFile:(KTestFile$,KFalse%)
if SyIsSystem&:(KTestFile$)
raise 271
endif
onerr err272::
SyIsSystem&:("Non-existant file")
raise 272
err272::
onerr off
ENDP
PROC tSetReadOnly:
onerr err280::
SySetReadOnly:("Non-existant file",0)
raise 280
err280::
onerr off
ENDP
PROC tSetHiddenFile:
onerr err290::
SySetHiddenFile:("Non-existant file",0)
raise 290
err290::
onerr off
ENDP
PROC tSetSystemFile:
onerr err300::
SySetSystemFile:("Non-existant file",0)
raise 300
err300::
onerr off
ENDP
PROC tVolumeSize:
local d%
local s&
while d%<=25
if d%=0 or d%=1 or d%>2 and d%<=24
onerr errVolumeSize::
endif
s&=SyVolumeSize&:(d%)
if d%=3 or d%=25
if s&<1000 or s&>&10000000
raise 310
endif
elseif d%=4
if s&>&10000000
raise 311
endif
else
if s&>&10000000
raise 312
endif
endif
errVolumeSize::
onerr off
d%=d%+1
endwh
ENDP
PROC tVolumeSpaceFree:
local d%
local s&
while d%<=25
if d%=0 or d%=1 or d%>2 and d%<=24
onerr errVolumeSpaceFree::
endif
s&=SyVolumeSpaceFree&:(d%)
if d%=3 or d%=25
if s&<1000 or s&>&10000000
raise 320
endif
elseif d%=4
if s&>&10000000
raise 321
endif
else
if s&>&10000000
raise 322
endif
endif
errVolumeSpaceFree::
d%=d%+1
endwh
ENDP
PROC tVolumeUniqueID:
local d%
local s&
while d%<=25
if d%=0 or d%=1 or d%>2 and d%<=24
onerr errVolumeUniqueId::
endif
s&=SyVolumeUniqueId&:(d%)
if d%=3 or d%=25
if s&<1000 or s&>&10000000
raise 330
endif
elseif d%=4
if s&>&10000000
raise 331
endif
else
if s&>&10000000
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?