Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Переключение раскладки клавиатуры правым SHIFT

Ответить
Настройки темы
[решено] Переключение раскладки клавиатуры правым SHIFT

(*.*)


Сообщения: 36553
Благодарности: 6693


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Привет, коллеги!

У меня исторически работал сабж с помощью Windows PowerPro, но в 7 эта чудесная функция работать перестала. Можно ли такое реализовать с помощью AutoIt?

Буду признателен за скрипт.

Спасибо!

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 22:50, 12-03-2010

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yashied:
Это описание к функции _IsPressed(), я сомниваюсь, что его когда-нибудь обновляли »
Ну если разработчикам никто об этом не сообщал, то почему они будут обновлять это?

Цитата Yashied:
Возможно раньше это было так, но вот простой пример, как проверить загружена или нет Dll »
Не уверен как с этого примера понять, что dll'ку не обязательно открывать, и при этом к ней не будет постоянного обращения (открытие/закрытия), как в случае с FileReadLine например.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:10, 13-03-2010 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Система не загружает в память более одной копии Dll. В любом случае, вот еще один пример:

Код: Выделить весь код
#Include <WinAPI.au3>

$hProc1 = _WinAPI_GetProcAddress(_WinAPI_GetModuleHandle(@SystemDir & '\user32.dll'), 'GetAsyncKeyState')

$hDll = DllOpen(@SystemDir & '\user32.dll')
$hProc2 = _WinAPI_GetProcAddress(_WinAPI_GetModuleHandle(@SystemDir & '\user32.dll'), 'GetAsyncKeyState')
DllClose($hDll)

$hProc3 = _WinAPI_GetProcAddress(_WinAPI_GetModuleHandle(@SystemDir & '\user32.dll'), 'GetAsyncKeyState')

ConsoleWrite($hProc1 & ' = ' & $hProc2 & ' = ' & $hProc3 & @CR)

Func _WinAPI_GetProcAddress($hModule, $sProc)

	Local $Ret = DllCall('kernel32.dll', 'ptr', 'GetProcAddress', 'ptr', $hModule, 'str', $sProc)

	If (@error) Or ($Ret[0] = 0) Then
		Return SetError(1, 0, 0)
	EndIf
	Return $Ret[0]
EndFunc   ;==>_WinAPI_GetProcAddress
И почему все пытаются выставить значение в Sleep() как можно больше. Sleep(1) более чем достаточно. Вот простой тест:

Код: Выделить весь код
GUICreate('')
GUISetState()

$Timer = TimerInit()
GUIGetMsg()
ConsoleWrite(TimerDiff($Timer) & @CR)

$Timer = TimerInit()
Sleep(1)
ConsoleWrite(TimerDiff($Timer) & @CR)
Получается, что Sleep(1) тормозит программу в 1000(!) раз больше, чем GUIGetMsg(). А когда используется GUI, Sleep() ведь не ставится.

Отправлено: 21:25, 13-03-2010 | #12


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yashied:
истема не загружает в память более одной копии Dll »
Да, но скрипт всё ровно при DllCall открывает dll'ку, вызывает в ней функцию, и закрывает, так почему бы просто один раз это не сделать?

Цитата Yashied:
почему все пытаются выставить значение в Sleep() как можно больше. Sleep(1) более чем достаточно »
Потому что иногда бывают проблемы без этого, это привычка из старых версий AutoIt'а, где с этим всё было печальней чем теперь

Цитата Yashied:
Получается, что Sleep(1) тормозит программу в 1000(!) раз больше, чем GUIGetMsg() »
Почему в 1000, разница только в 10 мс. Хотя странно это, судя по справке (раньше так было по крайней мере), в GUIGetMsg вроде встроена пауза в 10 мс...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:56, 13-03-2010 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Переключение раскладки клавиатуры правым SHIFT

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] IE8 Как вернуться на нормальное переключение раскладки,а не ctrl+2 shift'a lem785 Microsoft Windows 2000/XP 2 16-08-2009 19:06
Разное - [решено] Смена раскладки клавиатуры как по Ctrl+Shift так и по Alt+Shift nghst Microsoft Windows 2000/XP 1 22-01-2008 10:34
[решено] переключение раскладки клавиатуры Sergey Ugryumov Microsoft Windows NT/2000/2003 5 16-10-2007 12:25
Переключение раскладки по Shift+Shift Cubbie Microsoft Windows 2000/XP 3 10-09-2005 09:14
Запретить Переключение Раскладки Клавиатуры. Guest Microsoft Windows 95/98/Me (архив) 8 29-11-2002 23:04




 
Переход