Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   координаты мышки в текстовый файл (https://javascript.ru/forum/dom-window/32878-koordinaty-myshki-v-tekstovyjj-fajjl.html)

Александр 60 лет 19.11.2012 21:31

Уважаемые!! подскажите !

куда подставить переменную нажатия любой клавиши мыши ....


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Трассер</title>

<script type="text/javascript" language="javascript">
var z=0;
var n=8;
function T1()
{z= z+1 ; document.f1.src= "aaa"+n+".jpg?"+z }
var m = setInterval(T1,1000);
</script>
<style type="text/css">
<!--
body {
background-color: #363636;
}
-->
</style></head>
<body><tr><td><img src="" NAME="f1" /></td></tr></table></body>
</html>
<script>



function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
document.addEventListener("contextmenu",function(e vnt){ event(evnt,"3")} );
document.addEventListener("dblclick",function(evnt ){ event(evnt,"2")} );
document.addEventListener("click",function(evnt){ event(evnt,"1") } );

var t;
function event(evnt,type){
clearTimeout(t);
t=setTimeout(function(){
var x=evnt.pageX-10,
y=evnt.pageY-10,
req = getXmlHttp();

req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+переме нная, true);
req.send(null); // ??N???N???N?N? ????N???N?
},200); //200 ??N? ??????? ??? N??? N?N????N? ??N???N??N?N? ?????????????? N???N?????

}


</script>
</body>
</html>

Александр 60 лет 19.11.2012 21:49

так же попытался самостоятельно разработать код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Трассер</title>

<script type="text/javascript" language="javascript">
var v=0;
var r=8;
function T1()
{v= v+1 ; document.f1.src= "aaa"+r+".jpg?"+v }
var m = setInterval(T1,1000);
</script>
<style type="text/css">
<!--
body {
background-color: #363636;
}
-->
</style></head>
<body><tr><td><img src="" NAME="f1" /></td></tr></table></body>
<script type="text/javascript">
var z=0;
var n=0;

document.onclick = function(e) {n=1 ;z=z+1}
document.ondblclick = function(e) {n=2 ;z=z+1}
document.oncontextmenu = function(e) {n=3 ;z=z+1}

document.onmousemove = function(e)
{var s4 = ' ' + window.event.clientX + ' ' + window.event.clientY+' '+ n+' ' +z;
document.getElementById('divCoord').innerText = s4;}
</script>


<form method="post" action="mail.php">
<input name="email" type="text" size="30" />
<p>
<input type="submit" value="Отправить сообщение"/>
</p>
</form>
</head>

<div id="divCoord"></div>
</body></html>

http://22.122.kz/i.html http://22.122.kz/2.txt

но к сожалению как отправить без нажатия кнопки не могу придумать ....

Александр 60 лет 19.11.2012 21:57

также нужно сделать что б при нажатии правой кнопки не появлялось меню..

DjDiablo 19.11.2012 22:05

обрамите код тегами [ html] [ /html], только без пробелов, а то читать невозможно.

Александр 60 лет 19.11.2012 22:08

вот основное

<script type="text/javascript">
var z=0;
var n=0;

document.onclick = function(e) {n=1 ;z=z+1}
document.ondblclick = function(e) {n=2 ;z=z+1}
document.oncontextmenu = function(e) {n=3 ;z=z+1}

document.onmousemove = function(e)
{var s4 = ' ' + window.event.clientX + ' ' + window.event.clientY+' '+ n+' ' +z;
document.getElementById('divCoord').innerText = s4;}
</script>


<form method="post" action="mail.php">
<input name="email" type="text" size="30" />
<p>
<input type="submit" value="Отправить сообщение"/>
</p>
</form>
</head>

<div id="divCoord"></div>
</body></html>


http://22.122.kz/i.html
http://22.122.kz/2.txt

Александр 60 лет 19.11.2012 22:11

Цитата:

Сообщение от DjDiablo (Сообщение 216782)
обрамите код тегами [ html] [ /html], только без пробелов, а то читать невозможно.

Здравствуйте !! спасибо за ответ !!!
подскажите как подставить в Вашем коде

req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+сюда, true);

чтоб при любом нажатии мыши было +1

DjDiablo 19.11.2012 22:20

александр, ну я же попросил использовать разметку
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Трассер</title>

<script type="text/javascript" language="javascript"> 
var z=0;
var n=8;
function T1()
{z= z+1 ; document.f1.src= "aaa"+n+".jpg?"+z }
var m = setInterval(T1,1000); 
</script> 
<style type="text/css">
<!--
body {
background-color: #363636;
}
-->
</style></head>
<body><tr><td><img src="" NAME="f1" /></td></tr></table></body>
</html>
<script>



function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
document.addEventListener("contextmenu",function(e vnt){ event(evnt,"3")} ); 
document.addEventListener("dblclick",function(evnt ){ event(evnt,"2")} );
document.addEventListener("click",function(evnt){ event(evnt,"1") } );

var t;
function event(evnt,type){
clearTimeout(t);
t=setTimeout(function(){
var x=evnt.pageX-10,
y=evnt.pageY-10,
req = getXmlHttp();

req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+переме нная, true);
req.send(null); // ??N???N???N?N? ????N???N?
},200); //200 ??N? ??????? ??? N??? N?N????N? ??N???N??N?N? ?????????????? N???N?????

}


</script>
</body>
</html>

Александр 60 лет 19.11.2012 22:21

Извините ..но не знаю как

Александр 60 лет 19.11.2012 22:22

сам заметил ...у всех цветное , а у меня нет

DjDiablo 19.11.2012 22:33

извиняюсь, поставьте ещё раз задачу.
type отвечает за двойной, одиночный клик.

Непонимаю что вы хотите. Добавить правую кнопку, или отказаться от двойного клика, или чтобы все клики считались как одинарный левый.
Обьясните, будте любезны.

если не отвечу сегодня, отвечу завтра.

Александр 60 лет 19.11.2012 22:38

у нас получилось так
1 строчка х
2 строчка y
3 строчка код нажатой клавиши
ещё нужна 4 строчка n=n+1 от любого нажатия клавиши

Александр 60 лет 19.11.2012 22:41

здесь посмотрите http://22.122.kz/i.html

внизу строка 93 872 1 2 последняя цифра увеличивается от любого щелчка

DjDiablo 20.11.2012 10:18

клиентский скрипт
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}


var z=0;
var n=0;

document.onclick = function(e)        {n=1 ;z=z+1;event(e,"click")}
document.ondblclick = function(e)     {n=2 ;z=z+1;event(e,"dblclick")}
document.oncontextmenu = function(e)  {n=3 ;z=z+1,event(e,"rightclick")}


document.onmousemove = function(e) {
    var s4 = ' ' + window.event.clientX +  '  ' + window.event.clientY+' '+ n+' ' +z;
    document.getElementById('divCoord').innerText = s4;
}


function event(evnt,type){
        clearTimeout(t);
	t=setTimeout(function(){
	        var x=evnt.pageX,
	               y=evnt.pageY,
	               req = getXmlHttp();
	
	         req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+type+"&z="+z, true); 
	         req.send(null);  // отослать запрос
	},200); //200 мс дано на то чтобы защитать двойной щелчок

}


серверный скрипт.
$file = fopen ("file.txt","w");
    $str=$_GET['x']."\n".$_GET['y']."\n".$_GET['type']."\n".$_GET['z'];
    if ( !$file )
	{
		echo("Ошибка открытия файла");
	}
	else
	{
		fputs ( $file, $str);
	}

    fclose ($file);


непроверял но вроде должон работатать.

суть та же.
при щелчке левой или правой кнопкой мыши на сервер передаются координаты щелчка, код кнопки, и счётчик Z

счётчик можно было реализовать и на delphi не понимаю, нафига он вам вообще:D

Александр 60 лет 20.11.2012 10:54

счётчик несёт важную функцию , сообщает о событии , в другом случае блокируется указатель мыши на клиенте

Александр 60 лет 20.11.2012 10:56

спасибо !! но что то не работает (

может Вы в свою программу добавите счётчик?
простите что опять без тегов


function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
document.addEventListener("contextmenu",function(e vnt){ event(evnt,"3")} );
document.addEventListener("dblclick",function(evnt ){ event(evnt,"2")} );
document.addEventListener("click",function(evnt){ event(evnt,"1") } );

var t;
function event(evnt,type){
clearTimeout(t);
t=setTimeout(function(){
var x=evnt.pageX-10,
y=evnt.pageY-10,
req = getXmlHttp();

req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+счётчи к, true);
req.send(null);
},200);

}

Александр 60 лет 20.11.2012 11:03

куда только не вставлял счётчик ...везде не реагирует ..

Александр 60 лет 20.11.2012 11:12

http://22.122.kz/ вот здесь можно посмотреть в работе ...только вот задержка ещё есть 4-5 секунд

DjDiablo 20.11.2012 11:12

var t;
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}


var z=0;
var n=0;

document.onclick = function(e)        {n=1 ;z=z+1;event(e,"click")}
document.ondblclick = function(e)     {n=2 ;z=z+1;event(e,"dblclick")}
document.oncontextmenu = function(e)  {n=3 ;z=z+1,event(e,"rightclick")}


document.onmousemove = function(e) {
      var s4 = ' ' + e.clientX +  '  ' + e.clientY+' '+ n+' ' +z; 
    document.getElementById('divCoord').innerText = s4;
    
}


function event(evnt,type){
        clearTimeout(t);
	t=setTimeout(function(){
	        var x=evnt.pageX,
	               y=evnt.pageY,
	               req = getXmlHttp();
	
	         req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+type+"&z="+z, true); 
	         req.send(null);  // отослать запрос
	},200); //200 мс дано на то чтобы защитать двойной щелчок

}


я непроверил то что вы написали, исправил ваш код и всё гуд

Александр 60 лет 20.11.2012 11:14

можете даже поуправлять ))

Александр 60 лет 20.11.2012 11:25

не хочет новый код работать (

DjDiablo 20.11.2012 11:26

при перемещении координаты выводятся в тег с id divCoord
я невижу этого тега

при каждом перемещении появляется сообщение об ошибки

а вот координаты передаются без проблем, счётчик тоже работает

если в хроме нажать ctrl+shift+i вы увидите инструменты
там будет закладка network в ней вы можете увидеть взаимодействие сервера и браузера.
каждый раз при щелчке вы увидите там saveMouse.php, и сможете увидеть какие данные ему переданы если щёлкните по нему

в консоле вы можете увидеть сообщения об ошибках которые возникли во время испоолнения скрипта

Александр 60 лет 20.11.2012 11:35

вот эти строки мне не нужны ..это для пробы на экран выводил

document.onmousemove = function(e) {
var s4 = ' ' + window.event.clientX + ' ' + window.event.clientY+' '+ n+' ' +z;
document.getElementById('divCoord').innerText = s4;

Александр 60 лет 20.11.2012 11:42

посмотрите пожалуйста как должно работать http://22.122.kz/
1 строка x
2 строка y
3 cтрока код клавиши
4 строка счётчик

DjDiablo 20.11.2012 11:45

Я вам написал как должно быть.
Верните мой код на место, нафига вы его убрали

координаты передавались на сервер вместе со счётчиком, вы либо php забыли изменить, либо делфи часть гонит

DjDiablo 20.11.2012 11:48

в том что сейчас написано на сайте
нет счётчика z как такового
+ он отсутствует в req.open('GET', 'saveMouse.php?x='+x+"&y="+y+"&type="+type, true);

естественно нечего передаваться не будет, вы жу всё удалили

Александр 60 лет 20.11.2012 11:50

сейчас работает Ваш код !!
только нет счётчика

Александр 60 лет 20.11.2012 11:53

а свой я убрал ..он не работает ....

DjDiablo 20.11.2012 11:59

удалите для начала вот этот код, раз он вам ненужен.
document.onmousemove = function(e) {
      var s4 = ' ' + e.clientX +  '  ' + e.clientY+' '+ n+' ' +z; 
    document.getElementById('divCoord').innerText = s4;
    
}

DjDiablo 20.11.2012 12:05

переменная t где ?
вот здесь она есть http://javascript.ru/forum/216837-post138.html
а у вас нет

DjDiablo 20.11.2012 12:08

теперь у вас скобка лишняя осталась в 54й строке)

я уже обьяснял вам пару топиков назад как находить ошибки.

Александр 60 лет 20.11.2012 12:32

Супер !! ЭТО КЛАСС !! ЗАРАБОТАЛО !!

http://22.122.kz/

Как убрать табличку при нажатии правой появляется

DjDiablo 20.11.2012 12:33

document.oncontextmenu = function(e)  {n=3 ;z=z+1;event(e,"rightclick");return false}


тоесть, вернуть ложь в конце функции

Александр 60 лет 20.11.2012 12:46

супер !!

Александр 60 лет 20.11.2012 12:53

Всё супер !! Огромное спасибо !!!
клиент быстро откликается , почти мгновенно , а вот картинку выдаёт через 4-5 секунд.....буду искать причину

Александр 60 лет 22.11.2012 01:57

DjDiablo,
мы загрузили на сервер параметры мышки ,а возможно ли , таким же образом загрузить на сервер файл , например рисунок. jpg

DjDiablo 22.11.2012 09:14

передать на сервер файл можно конечно, а где вы взять этот файл предлагаете ? :D

Александр 60 лет 22.11.2012 10:27

в идеале например : программно нажать кнопку print screen , из буфера обмена в выделенную память , преобразовать из bmp в jpg , jpg отправить на сервер .

Александр 60 лет 22.11.2012 10:32

а для пробы.... например : c корня диска D / aaa8.jpg

DjDiablo 22.11.2012 16:52

Это вам не делфи !

никто недаст вам програмно нажимать кнопки, и уж тем более доступ к жёсткому диску или буферу обмену. Все эти возможности, заблокированы в браузерах. Если бы запрета не стояло, то первый говносайт на который бы вы зашли зашифровал бы вам файлы и предложил купить пароль, или вообще отфарматировал жёсткий диск, или снифил клавиатуру в надежде стащить пароль от карты, или социальной сети.

Так что сайту в браузере запрещено почти всё на свете :D

Тем немение возможен upload при помощи форм.
нажмите на кнопку play (зелёный треугольник) чтобы увидеть как выглядит такая форма
<html>
<head>
<title>Обработка переданного файла</title>
</head>
<?php
if ( ! isset( $myfile ) )
  {
   echo "путь: $myfile<br>";
   echo "имя: $myfile_name<br>";
   echo "размер: $myfile_size<br>";
   echo "тип: $myfile_type<br>";
  }

?>
<body>
<form enctype="multipart/form-data"
	action="<?echo $PHP_SELF?>" method="post">
<input type="hidden" name="max_file_size" value="51200">
<input type="file" name="myfile"><br>
<input type="submit" value="ВВОД">
</form>
</body>
</html>

Александр 60 лет 22.11.2012 17:29

собственно меня интересует скорость передачи данных ,
можно поставить вопрос по другому . Есть такая программа TeamViewer http://www.teamviewer.com/ru/index.aspx , как они смогли добиться такой скорости обновления картинки ,даже на плохих каналах ..


Часовой пояс GMT +3, время: 05:28.