Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91

Как изменить цвет курсора?

20.03.2014, 19:30. Показов 4660. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, команду для изменения цвета курсора.
Assembler
1
mov cx, 0607h   ;знаю, что это стандартный размер
А вот как цвет изменить что-то не нашел.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2014, 19:30
Ответы с готовыми решениями:

Как изменить цвет текста и фона
Куда мне вставить изменения цвета текста и фона :-( ? Подскажите,пожалуйста. Код рабочей программы: d1 segment para public...

Обращением к порту изменить частоту перемещения курсора
Дана частота перемещения курсора и начальные характеристики перемещения. С помощью обращения к порту клавиатуры установить значение...

Как изменить цвет курсора ввода и курсора мыши в элементе Edit
Всем Здравия. Проблема в следующем, задал цвет фона и цвет текста в Edit, тут все нормально, но обнаружилось что при некоторых цветах...

11
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
21.03.2014, 16:32
вроде никак. либо через порты видеоконтроллера
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
22.03.2014, 13:02
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

курсор в 03h будет того цвета, какой задан цветовым атрибутом позиции, в которой находится курсор. так что можно и через память задать цвет
2
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
23.03.2014, 12:07
sh2ezo, ИМХО, это глупо. каждый раз менять цвет под курсором, да еще и изменять на стандартный цвет знакоместа где курсор был. мерцать будет
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
23.03.2014, 12:15
Мотороллер, ТС спросил способ изменить цвет курсора - я написал известный мне способ. А глупо или нет - пусть решает ТС.
0
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
23.03.2014, 12:48  [ТС]
sh2ezo, спасибо, но как мне показалось, Ваш способ увы не совсем подходит под мое задание.
При нажатий клавиш: вверх, вниз на клавиатуре курсор должен переместиться на экране и поменять цвет.
Я уже курсор задал, он отлично бегает по экрану, а вот с цветом заморочка.
На одном сайте нашел:
Assembler
1
2
3
4
MOV  AH,01     ;Установить размер курсора
               MOV  CH,00     ;Верхняя линия сканирования
               MOV  CL,13     ;Нижняя линия сканирования
               INT  10H       ;Вызвать BIOS
В результате выполнения этих команд курсор превратится в сплошной
мигающий прямоугольник. Можно установить любой размер курсора между
верхней и нижней границами, например, 04/08, 03/10 и т.д. Курсор сохраняет
свой вид, пока программа не изменит его. Использование размеров 12/13 (для
моно) и 6/7 (для цвета) переводит курсор в его нормальный вид.
Ближе к концу http://lib.web-malina.com/getb... 45&page=26

Но вот где и как задать эти 6/7 я не понял.
Про все атрибуты уже 10 раз перечетал, про эти 0110. Но вот там написано, что они применяются только к символам из ASCII, где курсора нет.
0
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
01.04.2014, 19:34  [ТС]
sh2ezo, Спасибо, сделал, как вы и сказали через атрибут позиции. Но проблема в том, что этот атрибут потом сохраняется.
Просто у меня задача такова: нажимаю клавишу "вверх" и курсор становится красным (и, конечно, перемещается на позицию выше), аналогично и с другими клавишами с соответствующими цветами.
Так вот, сделал, как Вы сказали: теперь на экране появляется белый курсор, нажимаю "вверх", и курсор перемещается выше, но остается белым. Зато потом, когда я нажимаю вниз, и курсор перемещается на исходную позицию, то он становится красным (ну Вы поняли, красным он становится в той позиции, где находился до нажатия). Аналогично со всеми другими перемещениями, кроме "вправо"-вправо все идеально-всегда переходит и становится зеленым.
Не подскажите, другие возможные способы справиться с моей задачей? Возможно, видеорежим как-то настроить или в конце концов, гонять по экрану не курсор, а обычный квадратик или точку?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
01.04.2014, 22:50
Troll1, у курсора нет отдельного цвета, он всегда равен цвету символа в текущем знакоместе. Для того чтобы менять "цвет курсора", вам перед началом работы необходимо получить координаты курсора, при нажатии стрелок изменять x/y курсора и после нехитрых вычислений, сохранив текущий, выставить желаемый аттрибут знакоместа.
1
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
01.04.2014, 22:58  [ТС]
Charles Kludge, Ок, спасибо. Может свежем взглядом посмотрите?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
[ORG 0x7c00]
start:          
    
;очистка экрана
    pusha
    mov ax, 0600h
    mov cx, 0
    
    mov dx, 1883h       
    mov bh, 7   
    int 10h
 
    mov ah, 2
    mov bh, 0
    mov dx, 0
    int 10h
    popa    
;окончание очистки экрана 
    
    mov  ax, 14h    ;видеорежим - 80x25, 16 цветов      
        int  10h        
 
    mov ah, 1   ;функция прерывания 10h позволяет задать размер и положение курсора
    int 10h
 
    mov ah, 2   ;функция 2h прерывания 10h перемещает курсор в указанную позицию
    mov dh, 10  ;строка 10
    mov dl, 20  ;столбец 20
    mov bh, 0   ;видеостраница 0
    int 10h
 
        xor bl, bl
       ; mov cx, 2000
        int 10h;
                ;main функция для работы собственной ОС
main:
 
 
        mov ah, 2
        mov bh,0        ; нулевая видеостраница
        int 10h;
        mov ah,9        ;vyvod stroki
        mov al,20h      ;выводим пробел
        mov bh,0        ; нулевая видеостраница
 
    mov  ah, 00h            
    int  16h    
 
    cmp  ah, 48h
    je   verx
 
    cmp  ah, 50h
    je   vniz
 
    cmp  ah, 4bh
    je   levo
 
    cmp  ah, 4dh
    je   pravo
 
    jmp  main
 
 
verx:                   ;функция для движения вверх
    cmp dh, 0
    je  main            
 
    dec dh
        mov ah,9
        mov bl,0000011b     ; атрибут фона/символа
 
 
    int 10h
    jmp main
 
vniz:                   ;функция для движения вниз
 
    cmp dh, 18h
    je  main            
 
    inc dh
        mov ah,9
        mov bl,0000010b   ; атрибут фона/символа
 
    int  10h
    jmp  main
 
levo:                   ;функция для движения влево
    cmp dl, 0
    je  main            
 
    dec dl
        mov ah,9
        mov bl,0000100b   ; атрибут фона/символа
 
    int  10h
    jmp  main
 
pravo:                  ;функция для движения вправо
    cmp dl, 4eh
    je  main            
    
    inc dl 
        mov ah,9
        mov bl,0000101b   ; атрибут фона/символа
 
    int 10h
    jmp  main
 
 
 
TIMES 510 - ($-$$) db 0 ;Директива TIMES вставит необходимое количество нулей в код вплоть до 510-го байта. 
db 0xAA, 0x
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
02.04.2014, 00:13
Не, собственные загрузчики пишите сами.
0
1 / 1 / 2
Регистрация: 23.09.2012
Сообщений: 91
04.04.2014, 15:55  [ТС]
Ок. Проблема решилась легко. Спасибо за советы!
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
05.04.2014, 12:24
Цитата Сообщение от Troll1 Посмотреть сообщение
Ок. Проблема решилась легко.
Troll1,
по правилам форума
Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ.
После того, как ваша проблема решена, пошлите сообщение всем, кто вам помог, дайте им знать, чем всё закончилось, и поблагодарите ещё раз за помощь. Если проблема вызвала общий интерес в списке рассылки или дискуссионной группе, имеет смысл подобное сообщение отправить и туда.

Оптимальным решение будет ответить в нити обсуждения, начатой с исходного вопроса, добавив к теме сообщения пометку «FIXED», «RESOLVED», «РЕШЕНО» или другой не менее очевидный признак решения. В списках рассылки с большим количеством сообщений, потенциальный отвечающий при взгляде на нить обсуждения «Проблема Х», завершающуюся сообщением «Проблема Х - РЕШЕНИЕ» понимает, что ему не нужно тратить своё время даже на чтение сообщений (если он лично не считает Проблему Х интересной), и поэтому может потратить своё время на решение другой проблемы.

Такое сообщение не обязательно должно быть длинным и подробным. Простое: «Привет! Проблема была связана с разрывом в сетевом кабеле! Спасибо всем. Билл», - уже лучше, чем ничего. Фактически, краткое и вежливое резюме лучше, чем длинная диссертация, если только решение не затрагивает серьёзные технические аспекты. Напишите, какие действия позволили решить проблему, но всю последовательность поиска решения повторно описывать не надо.

Для достаточно серьёзных проблем можно послать резюме с историей поиска причин. Опишите окончательную постановку проблемы. Опишите, каким оказалось решение, и укажите тупиковые пути, которых стоит избегать. Назовите всех, кто помог вам: так вы найдёте себе друзей.

Помимо проявления вежливости и информирования, такого рода резюмирующее сообщение поможет другим при поиске в архиве списка рассылки/дискуссионной группы/форума точно узнать, какое решение помогло вам, и, значит, может помочь и им.

Последнее, но немаловажное, — такого рода сообщение помогает всем участвовавшим в обсуждении получить чувство удовлетворения от того факта, что проблема закрыта. Если вы сами не технический специалист и не хакер, просто поверьте нам, что это чувство очень важно для гуру и экспертов, к которым вы обращались за помощью. Описания проблем, так в итоге и не решённых — это сплошное разочарование, хакеры жаждут увидеть их решёнными. Хорошая карма, возникающая, когда вы удовлетворяете эту жажду, очень поможет вам при составлении вопроса в следующий раз.

Подумайте, как вы можете предотвратить возникновение такой проблемы у других пользователей в будущем. Спросите себя, поможет ли изменение документации или списка ЧаВО, и если да — пошлите соответствующее изменение тем, кто поддерживает эти документы.

Среди хакеров такое поведение, на самом деле, считается важнее обычной вежливости. Именно так зарабатывают репутацию хорошего командного игрока, которая является очень ценным качеством.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2014, 12:24
Помогаю со студенческими работами здесь

Как изменить цвет курсора?
Здравствуйте! C++ Borland Builder/ Стоит следующая задача: "Требуется ввести курсор в область экрана (небольшой круг), расположение...

Как изменить цвет Label при наведении курсора?
Есть несколько Label, которым назначен обработчик - загрузить в RichTextBox из файла rtf. Как сделать, чтобы при наведении курсора цвет...

Как изменить цвет вкладки при наведении курсора?
Здравствуйте! Как изменить цвет вкладки при наведении на нее курсором? Напр. вкладка серого цвета, а при наведении на нее становится белой,...

Как изменить цвет кнопки при наведении на нее курсора мыши?
Добрый день! Как изменить цвет кнопки при наведении на нее курсора мыши?

Изменить цвет курсора в TextBox
Можно ли изменить цвет курсора в TextBox?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru