С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 6

Не получается использовать getcursor

13.03.2012, 11:50. Показов 1954. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я скачал с офсайта среду, но при попытке использовать getcursor вываливается предупреждение что нельзя использовать в demo версии это.

Хотя здесь : PureBasic писали что ограничение только 800 строк кода. Мне для моих проб и ошибок хватило бы. А использовать ворованную версию не хочу. Подскажите это написали неверно, или...?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2012, 11:50
Ответы с готовыми решениями:

Не получается использовать :before
Всем доброго времени суток! У меня есть блок (long) в нем картинка () и хочу поставить за этой картинкой еще одну, как фон, чтобы красиво...

Не получается использовать компонент
Я создал компонент (все как полагается). В ссылки я добавляю этот компонент и ставлю галочку. Но когда я пытаюсь импортировать...

Не получается использовать dll
Создаю дллку . Она имеет одну функцию get_index() DLL extern "C" __declspec(dllexport)int get_index(); ...

9
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
13.03.2012, 13:31
В демке WinAPI отрублены...

А использовать ворованную версию не хочу.
Покупай...
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
13.03.2012, 13:33
Цитата Сообщение от monter Посмотреть сообщение
что ограничение только 800 строк кода.
Там писали, что это основное ограничение. Есть ещё некоторые, которые можно обойти, и одно из них это как раз нет возможности работать с API функциями, так же просто, как и с собственными.
В полной версии вызов GetCursor можно сделать так:

PureBasic
1
debug GetCursor_()
А в демке нужно явно указать библиотеку и вызываемую функцию с аргументами. Это можно сделать разными способами, один из них так:

PureBasic
1
2
OpenLibrary(0,"user32.dll")
 Debug CallFunction(0,"GetCursor")
Прочитать об различных вызовах можно в справке раздела PureBasic - Library
Ещё можно использовать Prototypes
Может помочь узнать какие API каких библиотек требуют, название функций и аргументы в программе APIWiver 2004, она выдает подсказку для разных языков программирования, в т.ч. и PureBasic

Вызов MessageBox при помощи Prototypes:

PureBasic
1
2
3
4
5
6
7
8
9
10
Prototype.l ProtoMessageBox(Window.l, Body$, Title$, Flags.l = 0)
 
  If OpenLibrary(0, "User32.dll")
   
    ; 'MsgBox' is a variable with a 'ProtoMessageBox' type
    ;
    MsgBox.ProtoMessageBox = GetFunction(0, "MessageBoxA")
    
    MsgBox(0, "Hello", "World") ; We don't specify the flags
  EndIf
2
Эксперт по электронике
6526 / 3155 / 333
Регистрация: 28.10.2011
Сообщений: 12,379
Записей в блоге: 7
13.03.2012, 13:36
При запуске демо версии, отображается окошко с информацией об ограничениях.
Там сказано что в коде может быть не больше 800 строк кода, должны отсутствовать API ОС и нельзя создавать DLL.

Но при этом не нужно забывать что WinAPI функции хранятся в системных библиотеках и их оттуда можно вызывать. В этом сильно может помочь программа ApiViewer, которая сгенерирует код вызова в формате PureBasic по имени функции.
Варианты вызова функции GetCursor(), работающие в демо-версии. Выбирайте тот, что больше нравится.
Code
1
2
3
OpenLibrary(0,"user32.dll")
hCursor = CallFunction(0,"GetCursor")
Debug hCursor
Code
1
2
3
4
Prototype GetCursor()
OpenLibrary(0,"user32.dll")
GetCursor.GetCursor = GetFunction(0,"GetCursor")
Debug GetCursor()
Code
1
2
3
4
Import "user32.lib"
  GetCursor()
EndImport
Debug GetCursor()
1
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 6
13.03.2012, 14:49  [ТС]
Покупай...
Нет нужды.

Pro_grammer и locm спасибо вам, то что нужно!

Добавлено через 34 минуты
Можно еще понадоедаю?

Я хочу сменить курсор,написал так:

Code
1
2
3
4
5
6
7
8
Import "user32.lib"
  GetCursor()
  LoadCursor(hInstance.l,lpCursorName.s)
  SetCursor(hCursor.l)
EndImport
 
kursor = GetCursor()
noviykursor=LoadCursor(0,#IDC_WAIT)
Списывал с apiviewer. Но как не пытаюсь, все не так. Пишет что нет такой константы. Я нашел в apiviewer поставил вместо #IDC_WAIT число 32514, но все равно не работает.
0
Эксперт по электронике
6526 / 3155 / 333
Регистрация: 28.10.2011
Сообщений: 12,379
Записей в блоге: 7
13.03.2012, 15:03
Цитата Сообщение от monter Посмотреть сообщение
Пишет что нет такой константы.
В демо версии, API константы, структуры, интерфейсы и т. д. тоже нужно самому объявлять.

Цитата Сообщение от monter Посмотреть сообщение
но все равно не работает.
Без всего кода сложно сказать что не так.
Думаю что такая декларация будет более правильной.
Code
1
2
3
4
5
6
7
8
Import "user32.lib"
  GetCursor()
  LoadCursorA(hInstance, *lpCursorName)
  SetCursor(hCursor)
EndImport
 
kursor = GetCursor()
noviykursor=LoadCursorA(0,#IDC_WAIT)
1
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 6
13.03.2012, 15:43  [ТС]
Спасибо, не выдает ошибку если заменить константу на число 32514. Только я не понял вот это:

*lpCursorName
Зачем умножать.О_о

Без всего кода сложно сказать что не так.
Так это пока и есть весь код

В планах создать программу , чтобы она при клике делала какую нибудь анимацию типа взрыва и при иногда меняла курсор.
0
Эксперт по электронике
6526 / 3155 / 333
Регистрация: 28.10.2011
Сообщений: 12,379
Записей в блоге: 7
13.03.2012, 16:25
Цитата Сообщение от monter Посмотреть сообщение
Спасибо, не выдает ошибку если заменить константу на число 32514.
Разве при выполнении этого кода, появляется ошибка.
Code
1
2
3
4
5
6
7
8
Import "user32.lib"
  GetCursor()
  LoadCursorA(hInstance, *lpCursorName)
  SetCursor(hCursor)
EndImport
#IDC_WAIT = 32514 
kursor = GetCursor()
noviykursor=LoadCursorA(0,#IDC_WAIT)
Цитата Сообщение от monter Посмотреть сообщение
Зачем умножать
Это не умножение а переменная-указатель.
Согласно документации на функцию LoadCursor() во втором аргументе, функции нужно передать указатель на строку с именем курсора.

Цитата Сообщение от monter Посмотреть сообщение
при клике делала какую нибудь анимацию типа взрыва и при иногда меняла курсор
Тогда логичнее выполнять подмену курсора с помощью функции SetSystemCursor().
1
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 6
13.03.2012, 17:14  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Разве при выполнении этого кода, появляется ошибка.
Code
1
2
3
4
5
6
7
8
Import "user32.lib"
  GetCursor()
  LoadCursorA(hInstance, *lpCursorName)
  SetCursor(hCursor)
EndImport
#IDC_WAIT = 32514 
kursor = GetCursor()
noviykursor=LoadCursorA(0,#IDC_WAIT)
Так ошибка не выскакивает


Это не умножение а переменная-указатель.
О как

Понятно, буду знать. Хорошая ссылка , скопировал себе на жесткий диск некоторые страницы, надо почитать.

Тогда логичнее выполнять подмену курсора с помощью функции SetSystemCursor()
Да наверно так. Но похоже надо почитать учебник сначала, может некоторые вопросы сами отпадут. Спасибо за помощь.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
13.03.2012, 19:02
О как
Но похоже надо почитать учебник сначала
Ясен пень, перед тем как писать свою первую программу на этом языке, надо его почитать)))).

P.S: Умножать таки тоже звёздочкой)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2012, 19:02
Помогаю со студенческими работами здесь

Не получается использовать .pop_back
У меня такой вопросец. не получается использовать .pop_back(). Код кнопки: System::String^ chislo_1; //Так переменная объявлена ...

Не получается использовать анимацию JS
Хотел чтоб надпись "обзор БК" двигалась(вместо анимации CSS пробую анимацию JS) но почему то не получается,кто знает почему? ...

Не получается использовать frame
прошу помочь с Delphi, не могу использовать frame... а также, скажите пожалуйста, как можно font Delphi поменять?))

Не получается использовать libcurl
Скинул include файлы в include папку visual studio, lib файлы в lib папку, dll-ки в папку system32 windows. Вот тестовый пример, но...

Не получается использовать wcscat
void read_file(HWND HWND_E, HWND HWND_R, TCHAR* name, INT ind) { SetWindowText(HWND_E, L""); FILE* f = _wfopen(name, L"rb"); ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru