milano88 Posted April 18, 2012 Share Posted April 18, 2012 (edited) merhaba arkadaşlar öncelikle soruyu belirtmeden detaylı bilgiyi aldığım linki veriyorum [code]http://msdn.microsoft.com/en-us/magazine/ee819134.aspx[/code] günlerdir,gecelerdir bu fonksiyonun çözümünü bulmaya çalışıyorum ams şeffaf veya gölge efektli bir png ile projeyi açmayı desteklemiyor henüz bunu yapmak içinde winapiler üzerine bir fonsksiyon yazılması gerektiğini okudum ve yukarıdaki linkten'de biraz bilgiler edinerek bir fonksiyon yazmaya çalıştım fakat yarım yamalak çalıştı ve bunu düzeltmemde yardımcı olabilecek birilerini arıyorum. olay şu şekilde yani normalde ams arkaplanı gizlenemez winapi plugini gizliyor ama oda tüm projeye şeffaflık veriyor buda anlamsız kalıyor amacım photoshopta yaptığım tasarımı olduğu gibi amsye atarak o şekilde açılmasını sağlamak yazdığım fonksiyonun ile bunu yapmayı başardım fakat pngdeki şefflığa ve gölgelendirmeye birtürlü müdahele edemedim umarım anlatabilmişimdir birkaç örnek resim veriyorum : NORMALDE AMS BU ŞEKİLDE AÇILIR: [img]http://e1204.hizliresim.com/w/l/4l6gq.png[/img] YAZDIĞIM FONKSİYON İLE ARKAYI GİZLEDİM VE BU HALİ ALDI: [img]http://e1204.hizliresim.com/w/l/4l6gx.png[/img] ASIL ÇÖZEMEDİĞİM OLAY İSE BURDA NORMALDE GÖZÜKMEYEN ARKA PLAN PNG Yİ PROJEYE ATINCA BU HALİ ALIYOR: [img]http://e1204.hizliresim.com/w/l/4l6h8.png[/img] BUDA PHOTOSHOPTA DENEMEK İÇİN HAZIRLADIM ORİJİNAL PNG: [img]http://d1204.hizliresim.com/w/l/4l6hj.png[/img] YAZDIĞIM FONKSİYON GLOBAL : [code]function SetLayeredWindowAttributes(hwnd, Color) local al = tonumber(DLL.CallFunction("user32.dll", "GetWindowLongA", hwnd..", -20", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)) + 524288 result = DLL.CallFunction("user32.dll", "SetWindowLongA", hwnd..", -20, "..al, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL); DLL.CallFunction("user32.dll", "SetLayeredWindowAttributes", hwnd..", "..Color..", 0, 1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end[/code] ON SHOW : [code]SetLayeredWindowAttributes(Application.GetWndHandle(), Math.RGBToNumber(255, 0, 255))[/code] buradaki 255,0,255 arka plan rengim yazni gizledim renk oluyor BUDA PROJE DOSYASI: [code]http://s2.dosya.tc/server12/BvwJJM/MyProject.rar.html[/code] Yardım edebilecek arkadaşlar en başta olan linlteki konuyu incelesin lütfen eğer çözüme ulaşırsa herkez istediği imaj ile projesini açıp daha görsel ve profesyönel programlar yapabilir umarım çözülür [b]NOT:[/b] 8.0.8.0 sürümünde ams bu tip efektleri desteleyecekmiş diye okudum ama başka bir yetkili arkadaşta boşuna bekliyoruz diye yazmıştı soruma bu yüzden işi garantiye almak istedim bu yüzden sorunun çözümünü arıyorum. Edited April 18, 2012 by milano88 Quote Link to comment Share on other sites More sharing options...
Mehmet Posted April 18, 2012 Share Posted April 18, 2012 [center][b]projen böyle değilde belki buna yakın olabilir photoshopda kaydederken bmp olarak kaydedersin[/b] [spoiler][img]http://i.imgur.com/UwNTD.png[/img][/spoiler] [spoiler][img]http://i.imgur.com/XzrzW.png[/img][/spoiler] [b]icon craft ile açıp işaretlediğim gibi şeffaf seçip etrafını istediğin gibi temizler ve tekrar bmp olarak kaydedip bmp olarak kullanırsan bu hali alır ama ben tam temizleyenedim belki sen daha iyisini yaparsın iyi çalışmalar[/b] [spoiler][img]http://i.imgur.com/aSMWi.png[/img][/spoiler][/center] Quote Link to comment Share on other sites More sharing options...
milano88 Posted April 18, 2012 Author Share Posted April 18, 2012 (edited) aynı işe geliyor MeHMeTBeN normalde zaten ams mask var onunla bunu yapabilirsiniz gölgelendirme ve pngdeki şeffaflık gidince anlamı kalmıyor iconcrafta ne hacet photoshopta 32bit bmp mask ile bile denedim yani normal windows dialoglarında çalışan maskeleme amsde çalışmıyor neden? çünki desteklemiyor yani windows start orbu düşünün arkası siyah olur ama uygulayınca gözükmez maskelemeden dolayı fakat bu tip maskelemeleri ams desteklemiyor henüz bu yüzden gereksiz kalıyo bu işlemler kısacası grafik maskeleme adına herşeyi daha önce denedim zaten onları geçtim zaten asıl mesele şu winapilerde programlama dili bilen biri yukarıda linkte verdiğim sayfayı biraz inceleyip çözebilir sanırım normalde bakın şunu örnek olarak maskeledim [img]http://d1204.hizliresim.com/w/l/4l7j1.jpg[/img] ilk bakışta birşeye benzemeyen bu imaj herhangi bir windows dialoğuna uyguladığınız zaman aşadaki görüntüyü alacaktır [img]http://d1204.hizliresim.com/w/l/4l7jc.png[/img] ama dediğim gibi bunları ams desteklemiyor bu yüzden winapilerde bitiyo iş Edited April 18, 2012 by milano88 Quote Link to comment Share on other sites More sharing options...
yasarcan Posted April 18, 2012 Share Posted April 18, 2012 (edited) arkadaşım günaydın proje dosyanı mediafireye upoad edermisin aklıma bi fikir geldide denemek istiyorum not: sanırım başardım:)) [img]http://d1204.hizliresim.com/w/l/4l7l6.jpg[/img] bu mudur? Edited April 18, 2012 by kedice Quote Link to comment Share on other sites More sharing options...
milano88 Posted April 18, 2012 Author Share Posted April 18, 2012 (edited) http://www.mediafire.com/?f69vunm43z57r39 öyle değil yanlış anladınız olayı yaa o png varya projeyi çalıştırdığınızda sadece o olacak ekranda ok bende diyorum nası başardı diye örnek resim verim açıldığında şu şekil açılması lazım sizin yaptığınız zaten pngyi projeye sürükle bırak olayı [img]http://d1204.hizliresim.com/w/l/4l7md.png[/img] ben buradaki windows framelerinide gizliycem ve sadece o png kalacak olay bu hani rainmeter varya onu düşünün onun gibi Edited April 18, 2012 by milano88 Quote Link to comment Share on other sites More sharing options...
yasarcan Posted April 18, 2012 Share Posted April 18, 2012 tamam şimdi anladım. bmp değilde png ile olur dedim sonra butona çevirdim. buton olarak projene atınca arka fonu altına aldı haliyle pembe. peki dedim burayı maskeliyeyim bu seferde tamamen görünmez oldu. maske değilde arka fona düz beyaz renk atayayım dedim buseferde senin istediğin gibi olmadı [img]http://d1204.hizliresim.com/w/l/4l7pj.jpg[/img] 2-3 sene evvel u3 modifiyesi yaptığımda defalarca denemiştim. sorunu çözemedim. ama arka fona güzel bi iş yaptırarak gayet güzel projeler çıkarılabilir. (tamam istediğin gibi olmuyor ama) mesela şeffaf png nin çerçevesine hizalı bir jpg fon ile gayet başarılı bi efect verilir. Quote Link to comment Share on other sites More sharing options...
milano88 Posted April 18, 2012 Author Share Posted April 18, 2012 (edited) pardon hocam düzenledim bir ifade konuya mühür vurdurdu ya kusura bakmayın. [b]@kedice[/b] hadi şeffaflığıda geçtim diyelim gölgelendirme yapıncada sorun veriyor ? şimdi bakın şöyle düşünmeniz lazım bir proje yaptınız ve bunu normal standart windows teması ile açtırıyorsunuz normalde windows 7 de ayrı xp de açılır vss bu projenin tasarımını bozar yaptığınız projenin tamamen kendinize ait bir tasaram olmasını istemezmisiniz mesela ben yaptığım playerde bunlara dikkat ettim amsden veya windowstan açılan herhangi bir eklenti kullanmadım [img]http://g1204.hizliresim.com/w/l/4l7t1.png[/img] şimdi gidipte bunu standart stilde kullansam berabt olur win7 de birtürlü xpde birtürlü açılır diğimi sonuç bakın ne oluyor [img]http://g1204.hizliresim.com/w/l/4l7ts.png[/img] Edited April 18, 2012 by milano88 Quote Link to comment Share on other sites More sharing options...
yasarcan Posted April 18, 2012 Share Posted April 18, 2012 (edited) gölge içinde şöle yapmıştım ben. birkere çerçeveye blur verirsen arka fonda sorun çıkıyo ayarlaması çok zor kesikin köşeli bi yazı için keskin köşeli siyah arka fon yaparsın. biraz kaydırırsın olur ama yine şeffaf olan png nin altında siyah fon kalması gerekiyor kısacası çok uğraştırıyor ben başarılı olamadım çok ama çok uğraştım. u3 modifiyesindede aynı sorunlarla karşılaştım sonunda şöyle bişi çıkmıştı ortaya [img]http://fc07.deviantart.net/fs71/f/2010/042/b/7/u3_modifiye_by_kediceblog.jpg[/img] Edited April 18, 2012 by kedice Quote Link to comment Share on other sites More sharing options...
milano88 Posted April 18, 2012 Author Share Posted April 18, 2012 gölgelendirmeyi ben yine yaparım ama az bir efekt veriyor microsoftta biraz araştırma yaparak onuda halletim ama buda faydasız isteyen olursa kullanabilir [code]hWnd = Application.GetWndHandle(); nExisitngStyle = DLL.CallFunction("User32.dll", "GetClassLongA", hWnd..",-26", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); nNewStyle = nExisitngStyle+131072; DLL.CallFunction("User32.dll", "SetClassLongA", hWnd..",-26,"..nNewStyle, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);[/code] Quote Link to comment Share on other sites More sharing options...
HalilYanar Posted April 18, 2012 Share Posted April 18, 2012 (edited) Merhaba milano88 abi şimdi ben konu açtım. [quote]http://www.tnctr.com/topic/199857-autoplay-media-studioda-saydamlyk/[/quote] Şöyle bişey mi düşünüyordun hala ne istediğini çözemedim tam olarak özür dilerim .. [img]http://i.imgur.com/AFID7.png[/img] Senin yaptığın biçimde yap abi sonra transparent plugini ile istediğin öğene uygula bu olayı ben bunu anladım ona göre yanıt veriyorum abi Edited April 18, 2012 by HalilYanar Quote Link to comment Share on other sites More sharing options...
milano88 Posted April 18, 2012 Author Share Posted April 18, 2012 (edited) yanlış anlamışsın kardeşim custom mask ile işimiz yok neyse herkeze ilgisinden dolayı teşekkür ederim birşekilde halletmeye çalışıcam Edited April 18, 2012 by milano88 Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted April 18, 2012 Editor Share Posted April 18, 2012 (edited) Arkaplan rengini default yap bu kodu uygula on show a [code]SetLayeredWindowAttributes(Application.GetWndHandle(), Math.RGBToNumber(236, 233, 216))[/code] pencereyide flat yap. veya rgb kodlarını değiştir arkaplan rengine göre. Edited April 18, 2012 by pairs Quote Link to comment Share on other sites More sharing options...
milano88 Posted April 18, 2012 Author Share Posted April 18, 2012 (edited) onu zaten ilk başta yaptım ben yukarıdada açıkladım ne alaka şimdi pngyi atınca sorun veriyor zaten png projede olunca arka planı tam gizlemiyor efektlerden dolayı [b]EDIT:[/b] amsenin altını üstüne getirdim ve olayı çözdüm arkadaşlar kodlarıda veriyorum buyrun faydalanın : [b]NOT:[/b] [b]Math.RGBToNumber[/b] yanındaki RGB değerlerini kendi arkaplanınıza göre değiştireceksiniz bu kodları yazdıktan sonra artık mask falan kullanmanıza gerek yok direk istediğiniz imajı projeye sürekleyin bırak bukadar.... [b]Global:[/b] [code]hWnd = Application.GetWndHandle(); nTransparentColor = Math.RGBToNumber(255, 0, 255); nOpacity = 255; nMode = 3; function SetTransparentOpacityWindow() GWL_EXSTYLE = -20; WS_EX_LAYERED = 524288; msg = DLL.CallFunction(_SystemFolder.."\\user32.dll", "GetWindowLongA", hWnd..","..GWL_EXSTYLE, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); msg = msg + WS_EX_LAYERED; DLL.CallFunction(_SystemFolder.."\\user32.dll", "SetWindowLongA", hWnd..","..GWL_EXSTYLE..","..msg, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); DLL.CallFunction(_SystemFolder.."\\user32.dll", "SetLayeredWindowAttributes", hWnd..","..nTransparentColor..","..nOpacity..","..nMode, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end function ChangeTransparentOpacityWindow() DLL.CallFunction(_SystemFolder.."\\user32.dll", "SetLayeredWindowAttributes", hWnd..","..nTransparentColor..","..nOpacity..","..nMode, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); end[/code] [b]Actions Startup:[/b] [code]hWnd = Application.GetWndHandle(); nTransparentColor = Math.RGBToNumber(255, 0, 255); nOpacity = 0; nMode = 3; SetTransparentOpacityWindow();[/code] [b]On Preload :[/b] [code]hWnd = Application.GetWndHandle(); nTransparentColor = Math.RGBToNumber(255, 0, 255); nOpacity = 200; nMode = 3; [/code] [b]On Show :[/b] [code]hWnd = Application.GetWndHandle(); nTransparentColor = Math.RGBToNumber(255, 0, 255); nOpacity = 0; nMode =1; ChangeTransparentOpacityWindow(); [/code] Edited April 19, 2012 by milano88 Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted April 20, 2012 Editor Share Posted April 20, 2012 Bende aynısını demiştim zaten rgb yi arka plan rengine göre değiştireceksin diye. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.