Показать сообщение отдельно
Старый 15.01.2008, 16:51
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 7  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
вот такой вариант. срабатывает аж при нуле.но на висте хоть и выходит из цикла, типа true все-таки возвращает, но не катит все равно
Код:
// задействуем обработчик события onAppExit чтобы при выходе "восстановить" скорость  мыши. 
mdm.Application.enableExitHandler();
mdm.Application.onAppExit = function() {
	UnSet(p);
	myDLL.close();
	mdm.Application.exit();
};
// принудительно ставим заголовок формы и приложения в таскбаре, 
// чтобы по ним найти хэндл
formTitle = mdm.Forms.MainForm.title = "form";
appTitle = mdm.Application.title = "app";
// получаем хэндл окна
var wList = mdm.System.getWindowList();
var i = 0;
while (wList[i][1]) {
	if (wList[i][0] == formTitle || wList[i][0] == appTitle) {
		hwnd = wList[i][1];
	}
	i++;
}
myDLL = new mdm.DLL("user32.dll");
//SetKey();
// параметр 0x003e  выбран произвольно, но он должени быть в
// пределах от 0x0000 до 0xBFFF, и имеет смысл уникального id
// для комбинации клавиш.
// 1 - это MOD_ALT константа
// 9 - это VK_TAB константа
p = 0;
while (!SetKey(p) && p <= 49151) {
	SetKey(p);
	p++;
}
mdm.prompt(p);
function SetKey(p) {
	// описание вызываемой функции.
	//BOOL RegisterHotKey(
	//HWND hWnd,	// window to receive hot-key notification
	//int id,	// identifier of hot key
	//UINT fsModifiers,	// key-modifier flags
	//UINT vk 	// virtual-key code
	//)
	myDLL.addParameter("integer", hwnd);
	myDLL.addParameter("integer", p);
	myDLL.addParameter("integer", 1);
	myDLL.addParameter("integer", 9);
	//mdm.prompt(myDLL.call("boolean", "RegisterHotKey")); 
	var res = myDLL.call("boolean", "RegisterHotKey");
	myDLL.clear();
	return res;
}
function UnSet(p) {
	// здесь возвращаем все на круги своя
	// описание вызываемой функции.
	//BOOL UnregisterHotKey(
	//HWND hWnd,	// window associated with hot key
	//int id 	// identifier of hot key
	//);
	myDLL.addParameter("integer", hwnd);
	myDLL.addParameter("integer", p);
	mdm.prompt(myDLL.call("boolean", "UnregisterHotKey"));
	myDLL.clear();
}
да, подождем 3.0. за прогу спасибо.


Последний раз редактировалось alexcon314; 15.01.2008 в 16:55.