Новые книги

Современного бухгалтера невозможно представить без компьютера. Но для уверенной работы нужно уметь пользоваться не только бухгалтерскими программами, но и многими другими. Здесь вы найдете много полезной информации, изложенной легким и доступным языком и подкрепленной большим количеством практических примеров, характерных именно для работы бухгалтера.
У вас есть стабильный бизнес – достаточно успешный и хорошо развивающийся, но вы почему-то до сих пор не заработали те миллионы долларов, которые планировали получить?

В чем же причина того, что вы работаете больше, а зарабатываете меньше, чем хотите? Какие секреты успешного бизнеса вы не применяете на практике? Сколько способов бесплатной рекламы вы не используете? Почему ваш бизнес не приносит вам в 5 раз больше денег, чем сейчас?

Существуют сотни приемов малобюджетного (партизанского) маркетинга, которые можно применить в вашем бизнесе. Ведь иногда достаточно внести совсем небольшие изменения, чтобы поднять свою прибыль на десятки процентов.

В результате изучения книги вы:

– узнаете, как повышать продажи даже тогда, когда у других компаний вашей отрасли они падают;

– будете знать, что и когда вам сделать для увеличения вашей прибыли;

– легко обгоните конкурентов и заберете себе их клиентов;

– перестанете терять своих клиентов и продажи, убрав «узкие места»;

– сможете продавать больше и дороже, повышая свою прибыль.

Настоятельно рекомендуется собственникам и руководителям малого и среднего бизнеса, директорам по маркетингу и развитию, руководителям отделов продаж, коммерческим и исполнительным директорам, индивидуальным предпринимателям.

Демонстрационная программа

Демонстрационная программа

Текст программы:

.386
.model flat, stdcall
include win32.inc

extrn            BeginPaint:PROC
extrn            BitBlt:PROC
extrn            CreateCompatibleBitmap:PROC
extrn            CreateCompatibleDC:PROC
extrn            CreateHatchBrush:PROC
extrn            CreatePen:PROC
extrn            CreateWindowExA:PROC
extrn            DefWindowProcA:PROC
extrn            DeleteDC:PROC
extrn            DeleteObject:PROC
extrn            DispatchMessageA:PROC
extrn            Ellipse:PROC
extrn            EndPaint:PROC
extrn            ExitProcess:PROC
extrn            GetClientRect:PROC
extrn            GetMessageA:PROC
extrn            GetModuleHandleA:PROC
extrn            GetStockObject:PROC
extrn            LineTo:PROC
extrn            LoadCursorA:PROC
extrn            LoadIconA:PROC
extrn            MoveToEx:PROC
extrn            PatBlt:PROC
extrn            PostQuitMessage:PROC
extrn            Rectangle:PROC
extrn            RegisterClassA:PROC
extrn            SelectObject:PROC
extrn            SetPixel:PROC
extrn            ShowWindow:PROC
extrn            TranslateMessage:PROC
extrn            UpdateWindow:PROC

BITMAP struct
   bmType       dd ?
   bmWidth      dd ?
   bmHeight     dd ?
   bmWidthBytes dd ?
   bmPlanes     dw ?
   bmBitsPixel  dw ?
   bmBits       dd ?
BITMAP ends

SRCCOPY          = 00CC0020h
PATCOPY          = 00F00021h
TRUE             = 1
FALSE            = 0

.data

newhwnd          dd 0
msg              MSGSTRUCT   
wc               WNDCLASS    
Rect             RECT 

hDC              dd ?
hCompatibleDC    dd ?
PaintStruct      PAINTSTRUCT 
hCompatibleBitmap dd ?
hBitmap          dd ?
hOldBitmap       dd ?
hOldPen          dd ?
hOldBrush        dd ?

Pens             dd 2 dup(?)
Brushes          dd 2 dup(?)

hInstance        dd 0

szTitleName      db 'GraphDemo', 0
szClassName      db 'ASMCLASS32',0
x                dd ?
y                dd ?
p                dd ?

.code
;-----------------------------------------------------------------------------
start:
        call    GetModuleHandleA, 0
        mov     [hInstance], eax

; initialize the WndClass structure
        mov     [wc.clsStyle], CS_HREDRAW + CS_VREDRAW
        mov     [wc.clsLpfnWndProc], offset GraphDemoWndProc
        mov     [wc.clsCbClsExtra], 0
        mov     [wc.clsCbWndExtra], 0

        mov     eax, [hInstance]
        mov     [wc.clsHInstance], eax

        call    LoadIconA, 0, IDI_APPLICATION
        mov     [wc.clsHIcon], eax

        call    LoadCursorA, 0 ,IDC_ARROW
        mov     [wc.clsHCursor], eax

        call    GetStockObject, WHITE_BRUSH
        mov     [wc.clsHbrBackground], eax

        mov     [wc.clsLpszMenuName], 0
        mov     [wc.clsLpszClassName], offset szClassName

        call    RegisterClassA, offset wc

        call    CreateWindowExA, 0,offset szClassName,offset szTitleName, \
                WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, \
                CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0, \
                [hInstance], 0

        mov     [newhwnd], eax

        call    ShowWindow, [newhwnd], SW_SHOWNORMAL
        call    UpdateWindow, [newhwnd]

msg_loop:
        call    GetMessageA, offset msg, 0, 0, 0
        .if     eax != 0
                call    TranslateMessage, offset msg
                call    DispatchMessageA, offset msg
                jmp     msg_loop
        .endif
        call    ExitProcess, [msg.msWPARAM]


;-----------------------------------------------------------------------------
GraphDemoWndProc    proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD,\
                    wparam:DWORD, lparam:DWORD

        cmp     [wmsg], WM_PAINT
        je      wmpaint
        cmp     [wmsg], WM_DESTROY
        je      wmdestroy

        call    DefWindowProcA, [hwnd],[wmsg],[wparam],[lparam]
        jmp     finish

wmpaint:
        ;---------------------------------------
        call    CreatePen, 1,0,0FF0000h
        mov     [dword ptr Pens], eax
        call    CreatePen, 3,0,000000h
        mov     [dword ptr Pens+4], eax

        call    CreateHatchBrush, 1,00000FFh
        mov     [dword ptr Brushes], eax
        call    CreateHatchBrush, 2,0FF0080h
        mov     [dword ptr Brushes+4], eax
        ;---------------------------------------
        call    GetClientRect, [hwnd], offset Rect
        call    BeginPaint, [hwnd], offset PaintStruct
        mov     [hDC], eax
        call    CreateCompatibleDC, [hDC]
        mov     [hCompatibleDC], eax
        call    GetClientRect, [hwnd], offset Rect

        call    CreateCompatibleBitmap, [hDC],[Rect.rcRight],[Rect.rcBottom]
        mov     [hCompatibleBitmap], eax

        call    SelectObject, [hCompatibleDC],[hCompatibleBitmap]
        mov     [hOldBitmap], eax

        call    PatBlt, [hCompatibleDC],0,0,[Rect.rcRight], \
                [Rect.rcBottom], PATCOPY
        ;---------------------------------------
        mov     [x], 0
        mov     [y], 0
        mov     [p], 0
  @@lp2:
        call    SetPixel, [hCompatibleDC],[x],[y],00FF0000h
        .if     eax == -1
                mov   [x], 0
                add   [y], 10h
        .endif
        add     [x], 10h
        .if     eax == -1
                cmp   [p], -1
                jz    @@lp3
        .endif
        mov     [p], eax
        jmp  @@lp2
  @@lp3:
        ;---------------------------------------
        call    SelectObject, [hCompatibleDC],[dword ptr Pens]
        mov     [hOldPen], eax
        call    MoveToEx, [hCompatibleDC],[Rect.rcLeft],[Rect.rcTop],0
        call    LineTo, [hCompatibleDC],[Rect.rcRight],[Rect.rcBottom]

        call    SelectObject, [hCompatibleDC],[dword ptr Pens+4]
        call    MoveToEx, [hCompatibleDC],[Rect.rcRight],[Rect.rcTop],0
        call    LineTo, [hCompatibleDC],[Rect.rcLeft],[Rect.rcBottom]
        call    SelectObject, [hCompatibleDC],[hOldPen]
        ;=======================================
        call    SelectObject, [hCompatibleDC],[dword ptr Brushes]
        mov     [hOldBrush], eax
        call    Rectangle, [hCompatibleDC],100,75,450,200

        call    SelectObject, [hCompatibleDC],[dword ptr Brushes+4]
        call    Ellipse, [hCompatibleDC],50,50,200,100
        call    SelectObject, [hCompatibleDC],[hOldBrush]
        ;=======================================
        call    BitBlt, [hDC],[PaintStruct.PSrcPaint.rcLeft], \
                [PaintStruct.PSrcPaint.rcTop], \
                [PaintStruct.PSrcPaint.rcRight], \
                [PaintStruct.PSrcPaint.rcBottom], \
                [hCompatibleDC], \
                [PaintStruct.PSrcPaint.rcLeft], \
                [PaintStruct.PSrcPaint.rcTop], \
                SRCCOPY

        call    DeleteObject, [dword ptr Pens]
        call    DeleteObject, [dword ptr Pens+4]
        call    DeleteObject, [dword ptr Brushes]
        call    DeleteObject, [dword ptr Brushes+4]

        call    SelectObject, [hCompatibleDC], [hOldBitmap]
        call    DeleteObject, [hCompatibleBitmap]
        call    DeleteDC, [hCompatibleDC]
        call    EndPaint, [hwnd],offset PaintStruct
        mov     eax, 0
        jmp     finish

wmdestroy:
        call    DeleteObject, [hBitmap]
        call    PostQuitMessage, 0
        mov     eax, 0
finish:
        ret
GraphDemoWndProc          endp

ends
end start