کار با پلاگین Transparent

سلام دوستان
من هر چی گشتم چیزی پیدا نکردم. حتی از مثال پلاگین هم استفاده کردم ولی جوابی نگرفتم
من میخوام با استفاده از پلاگین Transparent یا بدون پلاگین یکاری کنم که تا زمانی که موس روی پنجره برنامه نیومده برنامه Transparent باشه و وقتی که موس روی پنجره اومد شفافیت پنجره برنامه 100درصد بشه
همین!
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
سلام
برای transparent از پلاگین winapi میتونین استفاده کنین :


کد:
WinApi.SetWindowTrans(Application.GetWndHandle(), 100);

اینکه موس میاد رو پنجره یا نمیاد ، به کدنویسی تون بستگی داره که باید کد نویسی را یاد بگیرین
آموزش اتوپلی ، در انجمن هست
 
سلام
برای transparent از پلاگین winapi میتونین استفاده کنین :


کد:
WinApi.SetWindowTrans(Application.GetWndHandle(), 100);

اینکه موس میاد رو پنجره یا نمیاد ، به کدنویسی تون بستگی داره که باید کد نویسی را یاد بگیرین
آموزش اتوپلی ، در انجمن هست
ممنون . دارم روش کار میکنم . اوکی شد اینجا میذارم ولی میشه بگین چه عددی بجای 100 باید بذارم که شفافیت پنجره صفر بشه و دیگه شفاف نباشه و استاندارد بشه؟!
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
ممنون . دارم روش کار میکنم . اوکی شد اینجا میذارم ولی میشه بگین چه عددی بجای 100 باید بذارم که شفافیت پنجره صفر بشه و دیگه شفاف نباشه و استاندارد بشه؟!

خواهش میکنم
عدد صفر
عدد باید بین 0 (حداقل) تا 255 (حداکثر) باشه
 
خواهش میکنم
عدد صفر
عدد باید بین 0 (حداقل) تا 255 (حداکثر) باشه
بازم تشکر
تا اینجا پیش رفتم که برنامه که اجرا میشه شفافیت 100 هستش
موس که میاد روش شفافیت 255 میشه
ولی وقتی موس از روی پنجره برنامه میره بیرون تشخیص سخت میشه و تا موقعی که موس روی برنامه هست کار میکنه
میشه کاری کرد که برنامه مرتب موقعیت موس رو بسنجه یه تایمر باشه که چک کن موقعیت موس رو مرتب!
 
البته من تازگیا اومد سمت اتوپلی قبلا mmb کار میکردم. بخاطر آپدیت نشدنش و مشکلاتی که تو ویندوز 10 داشت مجبور شدم بیام سمت اتوپلی
تو mmb اینجور مشکلی نداشتم و میشد موقعیت موس رو مرتب چک کرد
نمیدونم شایدم تو اتوپلی هم باشه
فعلا دارم سرچ میکنم
 
چجوری حل شده؟
اتوپلی رویداد Mouse Leave برای پنجره ی اصلی اش نداره
با یه ترفند عجیب و غریب!!!!
1. با استفاده از پلاگینی که شما معرفی کردید
2. کد رویداد On Show صفحه مورد نظر :
کد:
cursor_x = 0
cursor_x_old = 0
Page.StartTimer(500, 10);
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
3. کد رویداد On Timer صفحه :
کد:
tMousePos = System.GetMousePosition(true);
tPageSize = {W=790,H=545};
if tMousePos.X < 0 or tMousePos.X > tPageSize.W then
-- Mouse is outside the left or right side of the page
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
end
if tMousePos.Y < 0 or tMousePos.Y > tPageSize.H then
-- Mouse is outside the top or bottom side of the page
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
end
3. کد رویداد Mouse Move صفحه مورد نظر :
کد:
window_pos = Window.GetPos(Application.GetWndHandle());
cursor_pos = DLL.CallFunction("CursorPos.dll", "GetMouseXY", "", DLL_RETURN_TYPE_STRING, DLL_CALL_STDCALL);
strlength = String.Length(cursor_pos);
delimiter_pos = String.Find(cursor_pos, ";;", "1", false);
cursor_x = String.Left(cursor_pos, (delimiter_pos - 1));
cursor_y = String.Right(cursor_pos, (strlength - (delimiter_pos + 1)));
if (cursor_x ~= cursor_x_old) then
--this indicates that the mouse pointer has moved so you should
--perform whatever actions you want here including the following
WinApi.SetWindowTrans(Application.GetWndHandle(), 255);
else
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
end
if (cursor_y ~= cursor_x_old) then
--this indicates that the mouse pointer has moved so you should
--perform whatever actions you want here including the following
WinApi.SetWindowTrans(Application.GetWndHandle(), 255);
end

پایان . موفق باشید . ;)
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
با یه ترفند عجیب و غریب!!!!
1. با استفاده از پلاگینی که شما معرفی کردید
2. کد رویداد On Show صفحه مورد نظر :
کد:
cursor_x = 0
cursor_x_old = 0
Page.StartTimer(500, 10);
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
3. کد رویداد On Timer صفحه :
کد:
tMousePos = System.GetMousePosition(true);
tPageSize = {W=790,H=545};
if tMousePos.X < 0 or tMousePos.X > tPageSize.W then
-- Mouse is outside the left or right side of the page
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
end
if tMousePos.Y < 0 or tMousePos.Y > tPageSize.H then
-- Mouse is outside the top or bottom side of the page
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
end
3. کد رویداد Mouse Move صفحه مورد نظر :
کد:
window_pos = Window.GetPos(Application.GetWndHandle());
cursor_pos = DLL.CallFunction("CursorPos.dll", "GetMouseXY", "", DLL_RETURN_TYPE_STRING, DLL_CALL_STDCALL);
strlength = String.Length(cursor_pos);
delimiter_pos = String.Find(cursor_pos, ";;", "1", false);
cursor_x = String.Left(cursor_pos, (delimiter_pos - 1));
cursor_y = String.Right(cursor_pos, (strlength - (delimiter_pos + 1)));
if (cursor_x ~= cursor_x_old) then
--this indicates that the mouse pointer has moved so you should
--perform whatever actions you want here including the following
WinApi.SetWindowTrans(Application.GetWndHandle(), 255);
else
WinApi.SetWindowTrans(Application.GetWndHandle(), 200);
end
if (cursor_y ~= cursor_x_old) then
--this indicates that the mouse pointer has moved so you should
--perform whatever actions you want here including the following
WinApi.SetWindowTrans(Application.GetWndHandle(), 255);
end

پایان . موفق باشید . ;)

بله
البته میتونین از کد زیر هم استفاده کنید (با فعال کردن پلاگین MemoryEx) (اصولی اش ، این کد هه)
در global function :


کد:
WM_NCMOUSELEAVE = 0x02A2;

function EventHandler(hWnd, uMsg, wParam, lParam)
    if (hWnd == mainWinHdl and uMsg == WM_NCMOUSELEAVE) then
    --write code here
    end

return Subclass.OldWinProc(hWnd, uMsg, wParam, lParam);
end

کدی که زمانی که میخواین موس تون از پنجره خارج میشه ، اجرا بشه را در قسمت --write code here در کد بالا بنویسید
البته این کد ، هم زمانی که موس از پنجره خارج و هم به پنجره وارد میشه ، اجرا میشه (اگه فقط با خارج شدن موس سر و کار دارید ، میتونید با شرط هایی که از متغییرهای رویدادی mouse move یا هر روشی دیگه ای که به نظرتون میرسه ، اجرای کد را محدود به زمان خروج کنید)

در رویداد On Show یا On Preload هم :


کد:
mainWinHdl = Application.GetWndHandle();
Subclass.Create(mainWinHdl, EventHandler);

در رویداد On ShutDown هم :


کد:
Subclass.Remove(mainWinHdl);


-----------------------------------------------------------------------------------------------------------


البته من تازگیا اومد سمت اتوپلی قبلا mmb کار میکردم. بخاطر آپدیت نشدنش و مشکلاتی که تو ویندوز 10 داشت مجبور شدم بیام سمت اتوپلی
تو mmb اینجور مشکلی نداشتم و میشد موقعیت موس رو مرتب چک کرد
نمیدونم شایدم تو اتوپلی هم باشه
فعلا دارم سرچ میکنم

از من میشنوید ، به اتوپلی هم تکیه نکنید . چندان فرق خاصی با mmb نداره . تهش میخواد چهار پنج برابر ازش قویتر عمل کنه (حالا نمیدونم. مثال گفتم) ولی محدودیت های بسیار زیادی داره و وقت گذاشتن برای لوا و مخصوصا اتوپلی ، وقت تلف کردنه
به نظرم وقت تون را برای یادگیری سی شارپ صرف کنید
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا