Имя: Пароль:
1C
1C 7.7
v7: Убрать курсор мыши с формы - как?
,
0 MWWRuza
 
гуру
03.04.18
20:59
Вопрос, наверно, к спецам по Formex...
Есть метод: УстановитьКурсор(). Работает, нормально, хоть с числовым параметром(выбор одного из 13-ти стандартных курсоров), хоть строкой с путем к файлу. Прикольный метод, наверняка где-то может пригодиться.
А как можно совсем убрать(погасить, сделать прозрачным, загнать куда-нибудь за пределы формы) курсор мыши? Найти готовый файл "совсем прозрачного курсора" не получилось, создать свой - тоже(все равно виден квадрат)...
Есть какие-то мысли?
1 Darych
 
03.04.18
21:00
КурсорВЖопу()
2 MWWRuza
 
гуру
03.04.18
21:07
Супер! Надо автору Формекса предложить :)))
3 Злопчинский
 
03.04.18
21:41
Нафейхоа? Вы как-то гланды через жпс имхо вырезать хотите
4 trdm
 
03.04.18
21:44
(0) Найти готовый файл "совсем прозрачного курсора" не получилось, создать свой - тоже(все равно виден квадрат)...
https://yadi.sk/d/cxsezVSN3U4ckQ
5 Darych
 
03.04.18
21:47
Ну Сергей прав: ЗАЧЕМ?
6 MWWRuza
 
гуру
03.04.18
21:53
(4)О!!! То, что доктор прописал! Спасибо!

(3)(5)Ну, все для того-же ПрайсЧекера из соседней темы.
А нафига курсор мыши посередине экрана, когда самой мыши на компе нет? Неподвижный, так и "выгорит дырка" посередине. Хранитель экрана ползает по всему экрану, еще и цвет меняет, а эта "блямба" неподвижная и одного цвета/яркости.
7 trdm
 
03.04.18
22:13
(6) скачай себе https://ru.wikipedia.org/wiki/Pelles_C
весит почти ничего, но позволяет редактировать и создавать многое:
http://prntscr.com/j0eoxa
8 MWWRuza
 
гуру
03.04.18
22:36
(7)Супер!
Просто открываешь создание нового курсора, и ничего не делая, просто сохраняешь. Прозрачный курсор готов.
А я до этого, пытался в Пайнте создавать, как png сохранять, и через какой-то онлайн сервис конвертить в cur. И все равно, серый квадрат был виден.
Вообще, интересная утилита... Да еще и с русским языком! Надо будет поразбираться, что она еще умеет.
9 Злопчинский
 
03.04.18
23:57
(6) да и хрен с ним. в той же обработке ожидания раз в 10 минут меняй случайно координаты указателя и все. а с невидимым указателем - ты его не видишь, а он - есть!!! и излучает.. излучает...
10 Garykom
 
гуру
04.04.18
00:02
Не пробовал тупо переместить курсор за границы экрана?
11 Злопчинский
 
04.04.18
00:04
(10) монитор разорвет нафиг
12 Garykom
 
гуру
04.04.18
00:05
(11) Не знаю как монитор но меня почти порвало )) от смеха )))
13 Злопчинский
 
04.04.18
00:19
автор ваяет прайс-чекер
http://s00.yaplakal.com/pics/pics_original/6/7/4/9880476.jpg
14 MWWRuza
 
гуру
04.04.18
00:28
(10)Как-? Программно - не нашел, поэтому и задал вопрос в (0) - (погасить, сделать прозрачным, загнать куда-нибудь за пределы формы) курсор... А вручную не могу - банально нечем... Из устройств ввода только сканер на com-порту. Не мыши, не клавы нет и не будет.

(13)Уже сваял, в "промышленной эксплуатации", радует заказчика :-)))
15 Злопчинский
 
04.04.18
00:36
покажи уже скриншотов
16 Злопчинский
 
04.04.18
00:43
(14) хм.. а ведь действительно... навскидку в формексе не нашел установку координат куросора.. но думаю если можно прочитать координаты курсора то можно и установить... как-то...
17 MWWRuza
 
гуру
04.04.18
00:46
Вот:
Основной экран - https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/i-231.jpg
Заставка - https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-230.jpg
Это на обычном компе, моем, домашнем. В рабочем режиме, это крутится на 8-ми дюймовом мониторе с разрешением 800 х 600, на полный экран, без рамок менюшек и т.п.
18 MWWRuza
 
гуру
04.04.18
00:52
Заставка плавает по всему экрану.
Почему пришлось делать заставку на 1С, это отдельная песня...
Извращение конечно, но... В RDP сессии, с сервака(Windows 2003 R2) заставка не транслируется на клиента, просто гаснет экран. На самом клиенте(совсем тонкий клиент WtWare) тоже нет возможности настроить заставку. Вот и пришлось извратиться.
19 Garykom
 
гуру
04.04.18
01:31
(14) наваять прогу/вк на дельфи/лазарус с Mouse.CursorPos:= Point(x,y)
20 Garykom
 
гуру
04.04.18
01:32
(19)+ Реально пишется в 5 минут
21 Garykom
 
гуру
04.04.18
01:45
(20)+

procedure TForm1.Button1Click(Sender: TObject);
begin
  Screen.Cursor := crNone;
end;

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  Screen.Cursor := crDefault;
end;

ссылка на архив проекта https://cloud.mail.ru/public/Fkvq/EicfKX8qy
22 Garykom
 
гуру
04.04.18
01:45
(21) Долго потому что сначала еще лазарус скачал и поставил ))
23 Garykom
 
гуру
04.04.18
01:48
(18) Освой уже нечто кроме 1С для таких извратов, легче будет.
Заставка на том же дельфи легко делается.
24 MWWRuza
 
гуру
04.04.18
01:58
Понятно... Только зачем еще одна ВК, когда уже и так Formex во всю используется? А так, бросил файлик "прозрачного" курсора в каталог ИБ, в конец процедуры "ПриОткрытии()" одну строку добавил: "Расш.УстановитьКурсор(КаталогИБ() + "cur.cur");", и все, цель достигнута, все работает как хотелось.
А Дельфи... Тут я согласен, но, когда от случая к случаю, то все равно на 1С быстрее получается, с ней каждый день работаешь. Дельфи, последний раз лет пять назад открывал, учебные примерчики ваял, и дальше как-то не востребовалось, и соответственно подзабылось.
25 Garykom
 
гуру
04.04.18
01:59
(24) Найди исходники ВК Formex, допили для курсора и выложи в паблик - скажут спасибо ))
26 Garykom
 
гуру
04.04.18
02:01
(25) а то она только под XP максимум пока http://www.1cpp.ru/forum/YaBB.pl?num=1513271350
27 MWWRuza
 
гуру
04.04.18
02:09
(25)Не... Я пока к таким подвигам не готов... В Дельфи, чуть дальше "Helдo world!" продвинулся. Рано мне еще в серьезных проектах ковыряться...
28 MWWRuza
 
гуру
04.04.18
02:30
Вот, моя поделка - https://cloud.mail.ru/public/LMs6/YaToit1sG
может пригодится кому...
Должна работать в ТиС 9.2, конфа в которой я ее использую, на ее основе. Нужно только добавить константу: "ВремяЗастКиоска" для задания времени срабатывания заставки в секундах, и в процедуре "ПриНачалеРаботыСистемы()" сделать ее вызов:
    Если ИмяПользователя() = "Kiosk" Тогда
        ОткрытьФормуМодально("Обработка.Киоск");    
    КонецЕсли
Запускается в клиенте WtWare такой строкой:
shell="C:\Program Files\1Cv77\BIN\1cv7.exe" enterprise /DD:/ПУТЬкБАЗЕ /NKiosk
В конфиге клиента должна быть строка:
turnoffmenu=poweroff
Это для того, что-бы при выходе из 1С терминал выключался.
Завершение работы и выключение терминала осуществляется сканированием ШтрихКода "9999999999994". Я его напечатал на пластиковой карточке, "Выключить ПрайсЧекер".
29 Злопчинский
 
04.04.18
02:48
(17) Наименование фирмы я бы сделал мелким шрифтом вниз экрана после остатка - вряд ли кого-то особенно будет волновать ПРИДЯ В МАГАЗИН КУПИТЬ ЗА НАЛИК/КАРТУ какой фирмы это товар... - за счет этого выигрывается одна дополнительная строка на экране. Слово "товар" я бы вообще убрал - за сет этого по всем строкам существенно выиграл бы в пространстве под наименование товара.

но это так, имхо...
30 Злопчинский
 
04.04.18
02:51
Заставку я не знаю как у тебя сделано - можно формексом по таймеру менять слой и надпись двигать по экрану тоже формексом
31 ndv76
 
04.04.18
05:49
(0) В древности был прикол: кнопка "ПУСК" убегала от мышки (на WIN API писался). Сделай чтобы вся форма шарахалась от мышки (неожиданно и с визгом).
32 MWWRuza
 
гуру
04.04.18
08:30
(31)Я такую штучку на Дельфи писал, когда изучать его начинал :-)
Вот, из архивов "молодости": https://cloud.mail.ru/public/2FwH/WMQG6nxVH
Но, убегание кнопки от курсора мыши, в этом приколе, не защищено от  продвинутых юзеров, умеющих с клавой работать(осторожно, ненормативная лексика! :-), сохранена от автора видеокурсов, по которым я с Дельфи знакомился).
ПрайсЧекеру это никак не поможет - мыши нет, принципиально, и клавиатуры тоже. Так, что - "шарахаться" не от чего ;-)
33 Масянька
 
04.04.18
08:47
(10) Где его потом искать? :))))))))))
34 ADirks
 
04.04.18
08:53
Можно воспользоваться WinAPI и ДинаВраппером (http://dynwrapx.script-coding.com/dwx/pages/dynwrapx.php)

Wrap = СоздатьОбъект("DynamicWrapperX");
Wrap.Register("user32.dll"    , "ShowCursor", "i=l" , "r=l");
Wrap.Register("user32.dll"    , "SetCursorPos", "i=ll" , "r=l");

и выключить курсор совсем
Wrap.ShowCursor(0);

или закинуть подальше
Wrap.SetCursorPos(10000, 10000);
35 MWWRuza
 
гуру
04.04.18
09:04
(34)Ну, да. Вот только смущает вот эта строка из описания: "Поддерживает ОС: Windows XP, Windows 7, Windows 8, Windows 10 (версия 1.0.0.0 также Windows 98)". В моем случае, это Server 2003 R2. Заработает или нет на нем, х.з... Скорее всего, заработает, обычно работает все, что работает с ХР. Но, это пробовать надо.
36 ADirks
 
04.04.18
09:22
(35) работало, но проверять надо, да :)
в принципе, штука настолько бесхитростная, что не может не работать
37 Сияющий в темноте
 
04.04.18
10:08
У меня на веб приложении mshta файл пустого курсора прекрасно работал,просто,в винде окно постоянно запрашивсет курсор,и если его ставить методом setCursor,то с большой вероятностью,к следующему сообщению окна его система поменяет,а если его задать классу окна,то пока курсор в окне,он будет тем,который задан
вам именро на 1с нужно написать?
может вас научить писать вебприложения,где можно все,что хочется?
38 MWWRuza
 
гуру
04.04.18
10:31
(37)Научите. Или хотя-бы дайте толчек, как мою задачу можно было решить по Вашему?
Вводная. Сервер 2003 R2. 1Сv77, Оперативный учет, лицензия, без ограничения количества пользователей. Никаких WEB расширений и т.п. нет. Покупать их никто не будет. Комп, на котором это должно крутиться, "ну очень тонкий клиент". Из "мусора" конца прошлого века собран. Никакой операционной системы на нем нет, жесткого диска, клавы, мыши - тоже. Грузится с флешки, какой-то кастрированный линукс, потом по сети, вот тут все описано - http://wtware.ru/
Как в таких условиях можно web-приложение поднять, я лично не понимаю. Может просто чего-то упустил, намекните, постараюсь восполнить пробел в знаниях.
39 Ёпрст
 
04.04.18
10:47
(0) вот тут посмотри, там курсора нема
http://catalog.mista.ru/public/21877/
40 Garykom
 
гуру
04.04.18
10:52
(37) Напишите вебприложение которое умеет закрываться, закрывать браузер и выключать комп.

А утром включать и запускать браузер и себя...
41 Сияющий в темноте
 
04.04.18
21:51
(38) Если очень тонкий клиент, то, возможно, что он курсор рисует своими силами, никак его ниоткуда не запрашивая.
У вас вообще на нём хоть песочные часы или стрелочки изменения размера появляются - если нет, то смотреть прошивку этого Linux чуда и там просто утилитой выключать мышь.
P.S. на Linux есть режим ANSI-терминала, где можно текстом рисовать достаточно интересные вещи, но опять же - причём тут 1С.
42 MWWRuza
 
гуру
04.04.18
22:16
(41)Мышь рисует Win2003. Стандартной API. Поэтому, я могу ею спокойно "рулить" из 1С через Formex. А "очень тонкий клиент" ее просто через сеть на своем экране показывает. И это "линукс чудо" крутится на обычной плате от настольного PC, без жесткого диска и т.д. лишних причиндалов. Никакой там особой прошивки нет, стандартный биос платы. Начальная загрузка происходит с обычной флешки, дальнейшая по сети с сервера. В самих настройках "этого чуда", можно очень много чего настроить, но, отключения мыши нет. Отключить мышь в сервере тоже нельзя, можно только удалить ее из системы. Но, тогда она удалится у всех, а не только у конкретного клиента. Как-то так... Все работает, меня вполне устраивает.

И, все-таки, что там с возможностью создания веб-приложения под мою задачу - ? ;-) Обещал рассказать общие принципы...
43 Garykom
 
гуру
04.04.18
23:35
(42) примерно это принципы https://learn.javascript.ru/
44 Garykom
 
гуру
04.04.18
23:37
45 MWWRuza
 
гуру
05.04.18
00:00
(44)Ну, да. Стандартные курсоры Виндовс. Этим как раз Formex и манипулирует, методом:
УстановитьКурсор(<ИмяКурсора>) где имя курсора либо числовое значение
1 - IDC_ARROW;
2 - IDC_IBEAM;
3 - IDC_WAIT;
4 - IDC_CROSS;
5 - IDC_UPARROW;
6 - IDC_SIZENWSE;
7 - IDC_SIZENESW;
8 - IDC_SIZEWE;
9 - IDC_SIZENS;
10 - IDC_SIZEALL;
11 - IDC_NO;
12 - IDC_APPSTARTING;
13 - IDC_HELP.
либо строка с путем к файлу, если надо нестандартный курсор использовать. Как раз последним, я и воспользовался. В процессе, экспериментировал и с числовыми значениями. Работает, прикольно, можно любой ставить. При этом, работает в пределах окна. Если окно не на весь экран, выводишь мышь за пределы окна, стандартная стрелка, переводишь на окно, становится таким, который установил для окна.
46 trdm
 
05.04.18
01:30
(32) ну епт....
https://prnt.sc/j0zip5
47 trdm
 
05.04.18
01:31
48 vcv
 
05.04.18
05:52
>> нафига курсор мыши посередине экрана, когда самой мыши на компе нет
А снести на компьютере дрова мыши не помогает разве?
49 ndv76
 
05.04.18
06:08
(38)С толчка программить? Ну не знаю... У меня только глупые комменты выходят.
50 MWWRuza
 
гуру
05.04.18
09:02
(46)А я в (32) предупреждал! :))))

(48)Естественно помогает. Только нельзя это сделать для конкретного пользователя, можно только для всего сервера. А у меня там кроме прайс-чекера, еще десяток пользователей работают с обычными удаленными рабочими столами. В клиенте мышь удалить нельзя, во всяком случае доступными настройками.

Все у меня работает, с прозрачным курсором и т.п. извратами.
Задача решена, моя поделка уже во всю радует заказчика :)
51 Сияющий в темноте
 
05.04.18
09:44
В прайс-чекере открываем окно браузера на весь экран,линукс с флешки браузе точно умеет,просто его нужно в автозагрузку запихать
далее,для браузера убираем курсор мыши через загрузку пустого курсора,и его не будет
на таймаут окна setWindowTimeout ставим наш хранитель экрана или показ рекламы,что в браузере без проблем,только нужно на сервер апач или нжингс поставить,чтобы видео выдавал
форма 1с будет делать запрос к этому веб-серверу и ждать события,раз в несколько секунд мы возвращаем код нет события,чтобы 1с не висела,а если пришло событие,то возвращаем его,на php это элементарно пишется
теперь к нашему браузеру
на странице мы перехватываем нажатие и отпускание всех клавиш через события документа onkeydown и onkeyup при каждом событии мы его записываем в буфер и ставим таймаут на 75 или 100 миллисекунд,не забывая сбросить прошлый
если таймаут сработал,то строка символов от сканера штрих-кода прекратилась(предполагается,что он клавиатурный)и мы смело можем преобразовать из кодов виртуальных клавиш в символы и отправить запрос на наш веб сервер,чтобы от в ответ прислал данные товара для показа,да и вообще,все,что мы хотим,например,специальными штрих кодами продавцы могут отмечать начало дня
понятно,что таких прайсчекеров можно сделать несколько,а веб сервера на них на всех хватит одного
удачи
52 Сияющий в темноте
 
05.04.18
09:46
на таком же принципе можно сделать мониторы для отображения рекламной информации или электронную очередь,тогда,вместо сканера подключают цифровые блоки клавиатуры
53 MWWRuza
 
гуру
05.04.18
10:35
(51)отправить запрос на наш веб сервер,чтобы от в ответ прислал данные товара для показа

Вот это и не понятно. Каким образом, клюшки, файловая база(никакого SQL), отдадут эти данные веб-серверу? Какая "прослойка" в Вашей схеме должна работать, что-бы обеспечивать доступ к семерошной базе из web-приложения?
Была-бы это восьмерка, тогда понятно, или хотя-бы SQL семерка(хотя, сомневаюсь, что там это так просто можно сделать)... А тут...
54 Сияющий в темноте
 
05.04.18
20:07
так как 1с 7.7 не умеет быть веб сервером и просто так ее этому не научить,хотя,технология создания внешних компонент говорит обратное

пусть 1с будет веб клиентом,который посылает запросы на сервер через XmlHttpRequest и спрашивает,а нет ли ей чего обработать,сервер же какое-то время ждет и отвечает,что ничего нет,1с повторяет запрос это все в обработке обновления формы,чтобы бы быстро работалоа сервер ждет запросы от елиентов м отпавляет их в 1с
55 MWWRuza
 
гуру
05.04.18
21:16
Ну, это понятно, сама технология запроса/ответа... А дальше? Ну, предположим, "есть чего обработать". И что? 1С должна это каким-то образом сделать, и отдать серверу... Это надо писать целый блок для этого, плюс веб-приложение само...
И зачем все это? Когда и так все штатно работает, показом нужного окна 1С через RDP. Все крутится внутри сервера, наружу данные и так по "совсем тонкому" каналу не гоняются... Какой смысл весь этот "огород городить" с WEB-приложением - ?
Опять-же, на самой железяке в торговом зале... Что-бы получить клиентский доступ к web-серверу, нужно на ней как минимум браузер поднять... Со сканером как-то завязать. А он у меня на COM-порту. И т.п. заморочки... А в плюсе то что, от всего этого-?
56 Ислам
 
05.04.18
22:05
(0) передвинуть мышку
57 MWWRuza
 
гуру
05.04.18
22:59
(56)Афигеть! :))) Как все просто... А мы тут 56 сообщений копья ломаем! А надо то всего, лишь передвинуть мышку...