|
Formulß° jako text | Program |
Polygon | Program |
Zm∞na data a Φasu | K≤d |
P°echod do ·spornΘho re₧imu | K≤d |
PoΦet ikon na ploÜe | K≤d |
Formulß° jako text | |
P°φklad nastavφ tvar "formulß°e" podle zadanΘho textu. | |
2702 bajt∙ | Kopφrovat |
Polygon | |
P°φklad polygonu, kter² m∙₧et u₧ivatel p°izp∙sobovat jednoduÜe myÜφ. | |
1585 bajt∙ | Kopφrovat |
N∞kdy se vßm m∙₧e hodit k≤d, kter² zjistφ, ₧e n∞kdo zm∞nil datum nebo Φas.
SysteΘm po zm∞n∞ posφlß zprßvu WM_TIMECHANGE
, tak₧e ji staΦφ odchytit
a je hotovo.
K≤d v modulu:
Public Const GWL_WNDPROC = (-4) Public Const WM_TIMECHANGE = &H1E Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _ (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Public glngOldProc As Long Public Function NewWindowProc(ByVal hWnd As Long, ByVal Msg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long If Msg = WM_TIMECHANGE Then Debug.Print "NovΘ datum a Φas " & Now Else NewWindowProc = CallWindowProc(glngOldProc, hWnd, Msg, wParam, lParam) End If End Function
K≤d formulß°e, kde se bude zm∞na kontrolovat:
Private Sub Form_Load() glngOldProc = SetWindowLong(Form1.hWnd, GWL_WNDPROC, AddressOf NewWindowProc) End Sub Private Sub Form_Unload(Cancel As Integer) SetWindowLong Form1.hWnd, GWL_WNDPROC, glngOldProc End Sub
Tip, jak p°ejφt do ·spornΘho re₧imu, najdete v otßzkßch a odpov∞dφch. Jak ale
zjistit, ₧e se systΘm sna₧φ usnout nebo naopak, ₧e se probouzφ? StaΦφ
pou₧φt dv∞ udßlosti prvku SysInfo, PowerSuspend
a PowerResume
.
Private Sub SysInfo1_PowerSuspend() Debug.Print "Usφnßm" End Sub Private Sub SysInfo1_PowerResume() Debug.Print "Probouzφm se" End Sub
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _ (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Const LVM_GETTITEMCOUNT& = &H1004 Dim h As Long h = FindWindow("progman", vbNullString) h = FindWindowEx(hw, 0, "shelldll_defview", vbNullString) h = FindWindowEx(hw, 0, "syslistview32", vbNullString) MsgBox SendMessage(hw, LVM_GETTITEMCOUNT, 0, 0)