Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Вниз

Как послать сообщение Desktоp у о нажатии левой клавиши мышки?   Найти похожие ветки 

 
bublik   (2002-10-01 00:38) [0]

Как послать сообщение Desktоp"у о нажатии левой клавиши мышки?
В результате хочется видеть контекстное меню.
Мой код не работает:

procedure TForm1.Button1Click(Sender: TObject);
var DesktopWnd : HWND;
begin
DesktopWnd := GetDesktopWindow;
Sleep(1000);
SendMessage (DesktopWnd, WM_RBUTTONDOWN, MK_RBUTTON, 300 + 50 shl 16 ) ;
end;


 
SPeller   (2002-10-01 03:16) [1]

RBUTTONDOWN, а затем RBUTTONUP надо посылать


 
Не претендуя на   (2002-10-01 03:42) [2]

А какое отношение имеют "WM_RBUTTONDOWN", "MK_RBUTTON", "RBUTTONDOWN", "RBUTTONUP" к вопросу о том "Как послать сообщение Desktоp"у о нажатии левой клавиши мышки?" :)))


 
DSa   (2002-10-01 04:56) [3]

To: Не претендуя на
Когда я работаю ночью, то не такие вещи могу спутать... ;]

To: Speller
C SendMessage не получилось?

Получилось вот так:

....
vat Pt : TPoint;
....
Pt.x := x;
Pt.y := y;
Pt.x := Round(Pt.x * (65535 / Screen.Width));
Pt.y := Round(Pt.y * (65535 / Screen.Height));
Application.ProcessMessages;
// SetCursorPos(x, y); или
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0);
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN, Pt.x, Pt.y, 0, 0);
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP, Pt.x, Pt.y, 0, 0);
....

Но работает только переместив курсор. Иначе не работает. А нужно не изменять позицию курсора.
Может есть какие идеи?

И почему не работает SendMessage?


 
DSa   (2002-10-01 04:59) [4]

Я тот самыи bublik :))
Мне нельзя ночью работь ;)


 
Steven   (2002-10-01 07:07) [5]

WM_CONTEXTMENU попробуй. А вообще обычно контекстное меню обычно по правой кнопке вызывается.


 
DSa   (2002-10-01 09:01) [6]

To: Steven

WM_CONTEXTMENU тоже не работает. ;]

Может у кого есть работающий пример?
А то я уже зациклился на одном ;]


 
SPeller   (2002-10-01 11:30) [7]


> И почему не работает SendMessage?

Должен работать. Я делал такую штуку что когда нажимаешь левую кнопку то воспринимается это как правая. Делается просто - подменяется WM_LBUTTONDOWN на WM_RBUTTONDOWN и соответственно WM_LBUTTONUP на WM_RBUTTONUP. Вот и всё. Проще говоря после строки
SendMessage (DesktopWnd, WM_RBUTTONDOWN, MK_RBUTTON, 300 + 50 shl 16 ) ;
тебе надо сделать ещё
SendMessage (DesktopWnd, WM_RBUTTONUP, MK_RBUTTON, 300 + 50 shl 16 ) ;

Если и так не сработает, то дело в параметрах от MK_RBUTTON и далее.


> Не претендуя на (01.10.02 03:42)
> А какое отношение имеют "WM_RBUTTONDOWN", "MK_RBUTTON",
> "RBUTTONDOWN", "RBUTTONUP" к вопросу о том "Как послать
> сообщение Desktоp"у о нажатии левой клавиши мышки?" :)))

Ты сам хоть понял чё ляпнул?


 
Nomad.kz   (2002-10-02 11:28) [8]

2SPeller

Сено-солома :-Е
Хто в армИи ни служив, стрункуйсь! ;-)


 
DSa   (2002-10-03 00:14) [9]

To SPeller

Посылая WM_RBUTTONDOWN и WM_RBUTTONUP по SendMessage в других приложениях появляетя контекстное меню, а вот на Desktop"е не вылазит. Так что придется оставить эту загадку на лучшие времена. ;]

To Nomad.kz

Ано и выдно, шо ты в армИи азы прогромировання получил: мы здесь про Desktop и SendMessage, а ты про сено и солому... ;)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
1-33994
appp
2002-11-01 13:03
2002.11.11
ListView


14-34171
Карлсон
2002-10-12 14:38
2002.11.11
где план достать и хватит ли одной тонны пластида.


1-33934
KDCF
2002-10-31 22:41
2002.11.11
Народ помогите!!!


6-34144
Ruslan S
2002-09-12 07:44
2002.11.11
Определение страны по IP адресу


3-33914
Tornado
2002-10-23 08:59
2002.11.11
ADOTable.Filter ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский