Что нового

Подскажите как сделать запись в CSV (файл) по нажатию горячих клавиш (HotKey)

nzerg

Новичок
Сообщения
7
Репутация
0
Например нажал ctrl+shift+alt+A, записалось 1,
нажал ctrl+shift+alt+B, записалось 2,
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
$file = FileOpen("csv.txt", 1)

HotKeySet("^+!a", "_func1")
HotKeySet("^+!b", "_func2")
HotKeySet("{F10}", "_exit")

Func _func1()
  FileWrite($file, "1,")
EndFunc

Func _func2()
  FileWrite($file, "2,")
EndFunc

Func _exit()
  FileClose($file)
  Exit
EndFunc

While 1
	Sleep(10)
WEnd
 
Автор
N

nzerg

Новичок
Сообщения
7
Репутация
0
в точку!! низкий вам поклон)
еще и закрытие предусмотрели))
 
Автор
N

nzerg

Новичок
Сообщения
7
Репутация
0
появилась проблема
нужно ставить 1 и переводить каретку на следующую строку
просто хочется сразу открывать csv файл Excelем, без импорта из txt
подскажите решение пожалуйста
 
Автор
N

nzerg

Новичок
Сообщения
7
Репутация
0
Такой отзывчивый форум, снова помогли и так оперативно :beer: :IL_AutoIt_1:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
nzerg,
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Автор
N

nzerg

Новичок
Сообщения
7
Репутация
0
Просто появился небольшой доп. вопрос - как использовать в этом скрипте нажатия мышки, левая и правая кнопки

так не заработало

Код:
$file = FileOpen("1203.txt", 1)


#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
    Sleep ( 250 )
    If _IsPressed("01", $dll) Then _func1
	
        ExitLoop
    EndIf
WEnd
DllClose($dll)



HotKeySet("{F12}", "_exit")

Func _func1()
  FileWrite($file, "1,"&@CRLF)
EndFunc

Func _func2()
  FileWrite($file, "2,"&@CRLF)
EndFunc


Func _exit()
  FileClose($file)
  Exit
EndFunc

While 1
    Sleep(10)
WEnd
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Потому что вот так должно быть
Код:
If _IsPressed("01", $dll) Then
		_func1()
        ExitLoop
    EndIf


Рекомендую ещё раз перечитать справку по If...Then
 
Автор
N

nzerg

Новичок
Сообщения
7
Репутация
0
почитал, попробовал ваш код, работает. Но из 10 нажатий сохранило только парочку. Уменьшил значение Sleep до 1 - не помогло. Видимо не может так быстро определять нажатия клавиши.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Откуда взялось второе сохранённое нажатие???
Ваш скрипт записывает только первый клик ЛКМ.
Чтобы записывал все нужно убрать ExitLoop
Код:
While 1
    Sleep ( 100 )
    If _IsPressed("01", $dll) Then
		_func1()
        ; ExitLoop
    EndIf
WEnd
 
Верх