Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/32: Рейтинг темы: голосов - 32, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 14

SetCursorPos не работает на ПК без Visual Studio

22.10.2013, 14:48. Показов 7135. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Заранее прошу прощения за дилетантство

Написал программку, которая помимо всего прочего использует перемещение курсора при помощи SetCursorPos(x,y);
Необходимо, чтобы она работала автономно на любом компьютере (хотя бы для Win7) .
У меня все собирается, запускается и успешно работает.

Но на компьютерах без установленной Visual Studio начинаются проблемы. Сначала при запуске .exe файла программы отображалось сообщение об ошибке "The program can't start because MSVCP110.dll is missing from your computer. Try reinstalling the program to fix this problem."
Нашел такое решение: в свойствах проекта Configuration Properties -> C/C++ -> Code Generation -> Runtime Library Вместо "Multi-threaded DLL(/MD)" поставил просто "Multi-threaded(/MT)".
Программа стала запускаться и работать не выдавая ошибок на ПК без студии. Но курсор не двигается. То есть не работает SetCursorPos...

Использую VS2012.
Надеюсь на Вашу помощь, заранее благодарен
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2013, 14:48
Ответы с готовыми решениями:

Не работает кнопка PING без Visual Studio
Здравствуйте, Пишу проект, в котором имеется GridView. Для каждой строки GridView имеется кнопка PING, которая пингует имеющийся IP адрес...

Не работает отладка кода в Visual Studio pro 2012+qt visual studio add-in 1.2.1
Здравствуйте, скажите пожалуйста в чем проблема, запускаю этот код (F5) в Visual Studio #include <QtWidgets/QApplication> ...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему?
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а Visual Studio 2008 пишет, что проэкт...

25
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 14
23.10.2013, 11:44  [ТС]
Студворк — интернет-сервис помощи студентам
Еще раз собрал на другом компе (со студией), проверил - работает.. В целом я понял, работать должно, значит я что-то где-то не правильно делал (пока не понял, что именно).
Всем большое спасибо за помощь и уделенное внимание!

Добавлено через 9 минут
Цитата Сообщение от mytilus Посмотреть сообщение
На машинах, где функция не работает, запустите командную строку и вбейте:
Code
1
rundll32 user32,SetCursorPos
Курсор переместился в край экрана?
Нет, не сместился..
А на машине со студией сместился.
Как лечится, не подскажете?
dll так просто не подменить, в безопасном режиме заменять user32.dll с другой машины? или можно не так кардинально?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
23.10.2013, 11:51
Попробуйте скомпилировать и запустить вот такой код (как на компьютере с
установленной Visual Studio, так и без нее):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <Windows.h>
 
int main()
{
    using namespace std;
 
    Sleep(1000);
 
    POINT pnt;
 
    GetCursorPos(&pnt);
    cout << pnt.x << " " << pnt.y << endl;
 
    SetCursorPos(100,100);
 
    GetCursorPos(&pnt);
    cout << pnt.x << " " << pnt.y << endl;
 
    return 0;
}
Результаты сюда, пожалуйста.
1
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 14
23.10.2013, 12:34  [ТС]
Кажется, я разобрался.. Когда я в первый раз обратился с проблемой, я, видимо, просто перемудрил со свойствами проекта(пытаясь подключить runtime библиотеки, понатыкал лишнего), и курсор действительно не работал на реальных машинах без студии. А когда проверял чистый свежесобранный проект, мне хватило "ума" проверить на виртуальной машине, где курсор захватывается WMvare Tools...
В общем, когда собираю чистый проект - все нормально. Просто скопировал свой код в новый проект - должно работать! Прошу прощения, что отнял время.
Всем еще раз спасибо! Особенно Вам, Убежденный!
0
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 14
24.10.2013, 09:57  [ТС]
Выяснил, в чем дело!

Если пользователь не администратор Windows, то SetCursorPos() работает _только_ когда активно окно программы, вызывающей его. Если запускать программу от имени администратора, курсор перемещается и когда активно другое окно. Кстати, это относится и к mouse_event (я использую его для эмуляции кликов мышью)
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
24.10.2013, 11:20
Windows Integrity Mechanism Design
http://msdn.microsoft.com/en-u... 25963.aspx
0
0 / 0 / 0
Регистрация: 08.12.2016
Сообщений: 1
08.12.2016, 06:22
Была аналогичная проблема с Windows 8.1
"rundll32 user32,SetCursorPos" не работала тоже.
В BIOS отключит Secure Boot.
Запустил программу от имени администратора.
Все заработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2016, 06:22

Visual Studio выдаёт ошибку при вынесении объявления функции с template в .h файл. Без template всё работает
Проект содержит три файла: Source.cpp, arrTreat.h, arrTreat.cpp. Source.cpp: #include &lt;iostream&gt; using std::cout; using...

Ошибки в Visual C++: error C2065: 'SetCursorPos' : undeclared identifier
Здрасьте. У меня такой вопрос: Вот код.(Пишу на Microsoft Visual Studio C++ 6.0 void main(){ for (int i=0; i&lt;20; i++) { ...

Клик мышью по координатам без SetCursorPos
Здравствуйте. Необходимо выполнить программный клик мышкой по заданным координатам, но без установки курсора в эти координаты. Private...

Не работает Visual Studio Net 2003 с Visual Source Safe 6.0
Проблема! Был VSS от Visual Studio 6.0. Потом 1 год разрабатывал по Visual Studio .Net с тем же Source Safe - проблем не было. Снес Visial...

Visual C# без Visual Studio
Самый новый Visual C# как самостоятельный продукт нашел только версии 2010. Visual Studio же слишком тесно интегрируется с системой, ставит...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru