Visual Basic


Formulß° jako textProgram
PolygonProgram
Zm∞na data a ΦasuK≤d
P°echod do ·spornΘho re₧imuK≤d
PoΦet ikon na ploÜeK≤d


Formulß° jako text
P°φklad nastavφ tvar "formulß°e" podle zadanΘho textu.
2702 bajt∙Kopφrovat

Zp∞t na obsah


Polygon
P°φklad polygonu, kter² m∙₧et u₧ivatel p°izp∙sobovat jednoduÜe myÜφ.
1585 bajt∙Kopφrovat

Zp∞t na obsah


Zm∞na data a Φasu

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

Zp∞t na obsah


P°echod do ·spornΘho re₧imu

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

Zp∞t na obsah


PoΦet ikon na ploÜe

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)

Zp∞t na obsah


Zp∞t na obsah