Sayfayı Yazdır | Pencereyi Kapat

Herhangi bir pencereyi transparan yapmak

Nereden Yazdırıldığı: Datakent
Kategori: Diğer bölümler
Forum Adı: Borland Delphi
Forum Tanımlaması: Borland Delphi ile ilgili soru / sorun / paylaşım bölümü
URL: http://forum.datakent.com/forum_posts.asp?TID=1582
Tarih: 04.Haziran.2024 Saat 13:02


Konu: Herhangi bir pencereyi transparan yapmak
Mesajı Yazan: murat turan
Konu: Herhangi bir pencereyi transparan yapmak
Mesaj Tarihi: 11.Kasim.2008 Saat 21:16

procedure TForm1.Button1Click(Sender: TObject);
const
  cUseAlpha: array [Boolean] of Integer = (0, LWA_ALPHA);
  cUseColorKey: array [Boolean] of Integer = (0, LWA_COLORKEY);
var
  AStyle: Integer;
  FAlphaBlend: Boolean;
  FTransparentColor: Boolean;
  xxx:THandle;
begin

 xxx := FindWindow(pchar('Notepad'), nil); //pencereyi bağlığı ile bul not defteri için
// xxx := FindWindow('SciCalc', 'Hesap Makinesi'); //herhangi bir pencereyi sınıfı ve başlığıyla bulmak için kullanılbilir

 AStyle := GetWindowLong(xxx, GWL_EXSTYLE);

 FAlphaBlend := TRUE;
 FTransparentColor := TRUE;

 SetWindowLong(xxx, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);

//aşağıdaki fonsiyonda parametre olarak kullanılan 80 orandır. 1-100 arası değer verebilirsiniz
 SetLayeredWindowAttributes(xxx,clBlack,80,
           cUseAlpha[FAlphaBlend] or cUseColorKey[FTransparentColor]);
end;
 
//erişim yapılacak program veya nesne aktif olmalı. not defterine erişilecekse not defteri o an açıkolması gerekiyor...


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil



Cevaplar:
Mesajı Yazan: murat turan
Mesaj Tarihi: 11.Kasim.2008 Saat 21:18
pencere başlıklarını ve sınıf isimlerini öğrenmenizde size yardımcı olabilecek bence bir numaralı yazılım. Microsoft Spy++ http://rapidshare.com/files/162840745/_SPY__.zip - indir
 
bu yazılımla formlardaki istenilen nesnenin HWND numarasıda öğrenilebiliyor. zaten bir nesnenin HWND numarasını bildiğinizde o nesneye takla attırabilirsniz :)
zamanım olunca HWND konusunda sizlere örneklerde göndermeye çalışacağım...


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil


Mesajı Yazan: turknetyazilim
Mesaj Tarihi: 12.Kasim.2008 Saat 09:54

//Murat Turan
var
 i:HWND;
begin

 i:=FindWindowEx(
    FindWindowEx(FindWindow('Tana', 'DenemeFormu'), 0, 'TGroupBox', 'GroupBox1'),
     0, 'TEdit', 'Edit4' );

  SendMessage(i, WM_CLOSE ,0,0);

  {
  ana formun adı :ana tabi tip olara Tana olmuş oluyor.
  başlığı DenemeFormu
  bu formun altında
  GroupBox1  adıda bir bileşen var.
  bu bileşenin de tipi TGroupBox ve Başlığıda GroupBox1
  bu GroupBox1 içerisinde
  TEdit tipinde adı Edit4 ve içeriğide Edit4 olan bir bileşen var
  işte o bileşen kapatılıyor.

  FindWindowEx  fonksiyonunu da kullanım amacı da iç içe geçmiş kontrolleri
  yönlendirmek. aslında bu sayede sabit olan
  kontroller rahatlıkla idare edilebilir.
  direkt HWND bilgisiyle bu işi yapmak zor. biliyorsunuz ki. uygulama her
  açıldığında içerisindeki bütün bileşenler yeniden windows tarafından
  numaralandırılır.

  Microsoft Spy++ kullanılarak açık uygulamaların HWND,ClassName vs.. bilgilerine
  rahatlıkla erişebilirsiniz.

  //* * * * * * * *
  i:=$000103E0;
  //* * * * * * * *
  mesela o an işlem yapmak istediğim Edit4 ün o anki HWND numarası üsteki
  gibi idi. aslında i değişkenine sadece bu değer atayıp da bu kontrolü
  yönlendirebilirdim. ama üste belirttiğin gibi bu numara programın bir sonraki
  başlatılışında değişeceği için o anlık sonuç verecektir.
  üste uzunca yazdığım kod ise uygulama ne zaman başlatılırsa başlatılsın
  işe yarayacaktır.

  Aklıma gelmişken başka bir öenek daha vereyim. mesela hesap makinesinin
  Geri tuşunu kapatalım. Bunuda yapabiliriz. Tabi bu işlemler sadece kapatmak için değildir
  Ben WM_CLOSE parametresini kullandım. böype epeyce parametre mevcut.
  }

  i:=FindWindowEx(FindWindow('SciCalc', 'Hesap Makinesi'),0,'Button','Geri tuşu');

  {
  Unutmayın bu isimleri Microsoft Spy++ ile buluyorum.
  Bu programı nereden bulurum diyorsanız
  Microsoft Visual Studio .NET 2003 kurulum paketi
  veya Microsoft Visual Studio 6 Paketinde mevcut.
  }



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


Mesajı Yazan: murat turan
Mesaj Tarihi: 12.Kasim.2008 Saat 18:06
sağol ismail. bunu arşivden bulup gönderirim diyordum :) sen işi getirmişsin.

-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil


Mesajı Yazan: murat turan
Mesaj Tarihi: 28.Aralik.2008 Saat 22:13
spy++ benzeri bir yazılım : http://www.windows-spy.com/files/Winspector_setupU.exe - http://www.windows-spy.com/files/Winspector_setupU.exe

-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil


Mesajı Yazan: turknetyazilim
Mesaj Tarihi: 01.Ocak.2009 Saat 16:50
Hocam Gerşekten Çok Güzel Bir Yazılım
Benim En Çokda işime Renk Değerlerinin Bulmada Yarayacak


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



Sayfayı Yazdır | Pencereyi Kapat