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

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

13.03.2012, 11:50. Показов 1958. Ответов 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
Эксперт по электронике
6789 / 3216 / 335
Регистрация: 28.10.2011
Сообщений: 12,552
Записей в блоге: 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
Эксперт по электронике
6789 / 3216 / 335
Регистрация: 28.10.2011
Сообщений: 12,552
Записей в блоге: 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
Эксперт по электронике
6789 / 3216 / 335
Регистрация: 28.10.2011
Сообщений: 12,552
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
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