0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 14

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

22.10.2013, 14:48. Показов 7038. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru