AutoPlay Media Studio ile Popup Menü Yapımı |EmpoRe

EmpoRe

Kıdemli Üye
18 Ocak 2012
3,626
6
-29. Galaksi
Biliyorsunuz ki her objenin contextmenu veya right click eventi yok. Dolayısıyla bu objelere popup menü (sağ tık menü) yapamıyorduk. Memory plugini bu noktada bize yardımcı oluyor. Kodlarımızı inceleyelim.

Öncelikle Global Functions kısmına kodlarımızı yazıyoruz
Kod:
WM_LBUTTONDOWN = 513
WM_LBUTTONUP = 514
WM_RBUTTONDOWN = 516

function SelectItem(hWnd, wParam, lParam)
LeftButtonDown(hWnd, wParam, lParam)
LeftButtonUp(hWnd, wParam, lParam)
end

function LeftButtonUp(hWnd, wParam, lParam)
va_args = string.format("%d,%d,%d,%d",hWnd, WM_LBUTTONUP, wParam, lParam)
DLL.CallFunction("User32.dll", "SendMessageA", va_args, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
end
function LeftButtonDown(hWnd, wParam, lParam)
va_args = string.format("%d,%d,%d,%d",hWnd, WM_LBUTTONDOWN, wParam, lParam)
DLL.CallFunction("User32.dll", "SendMessageA", va_args, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
end

function LOWORD(value)
return Memory.BitAND(value, 65535)
end

function HIWORD(value)
return Memory.BitAND(Memory.ShiftRight(value, 16), 65535)
end

---------- Menü kodlarýmýz ------------
function ShowPopUpMenu()
tblMenu = {};
tblMenu[1] ={};
tblMenu[1].Text = "ExtremitySoft";
tblMenu[1].ID = 100;
tblMenu[1].IconID = 0;
tblMenu[1].Checked = false;
tblMenu[1].Enabled = true;
tblMenu[2] ={};
tblMenu[2].Text = "Divane ©";
tblMenu[2].ID = 200;
tblMenu[2].IconID = 0;
tblMenu[2].Checked = false;
tblMenu[2].Enabled = true;

Mouse = System.GetMousePosition(true, nil);
nRes = Application.ShowPopupMenu(Mouse.X, Mouse.Y, tblMenu, TPM_LEFTALIGN, TPM_TOPALIGN, true, true);
end


Globale kodlarımızı yazdık aynı zamanda menümüzü de oluşturduk. şimdi sırayla obje ile ilişkilendirmede. Kodları inceleyelim ;

On show eventine kodlarımızı yazıyoruz;

Kod:
function CallBack(hWnd, uMsg, wParam, lParam)

if uMsg == WM_RBUTTONDOWN then

SelectItem(hWnd,wParam, lParam)
ShowPopUpMenu()

end

end

LBHandle = ListBox.GetProperties("ListBox1").WindowHandle;
Memory.CreateWindowSubClass(LBHandle, 0, "CallBack");

İşlem tamamdır

Listbox objemize sağ tık menüsü oluşturmuş olduk. Bu kodlarla tüm objelere menü ekleyebilirsiniz.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.