Msn Penceresine Yazı Yazma Yada Yazdırma ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mc_rapier
Üye
Mesajlar: 41
Kayıt: 15 Kas 2005 10:37
Konum: c:\windows\system32\
İletişim:

Msn Penceresine Yazı Yazma Yada Yazdırma ?

Mesaj gönderen mc_rapier »

Msn Penceresine Yazı Yazma Yada Yazdırma ?
Bunu Programla Nasıl Yaparım ?
parmakları kırılan bu yazar yılmadı
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

bunu apilerden yararlanarak yapabiliriz soru hoşuma gitti. Ufak bir örnek yaptım.

Şimdi Adım adım yapalım

Örnek olarak
Nuisance Nickli arkadaşımın penceresinden yararlanacam

Kod: Tümünü seç


//HUSONET
procedure TForm1.Button1Click(Sender: TObject);
var
    H,L: HWND;
    i:boolean;
begin
    H:=FindWindow(nil,PChar('nuisance - Konuşma')); //Aslında ben pencere ismini alarak handle numarasını aldım fakat delphi ile birlikte gelen winsight32 programı ile classname olarak alabilirsiniz.
    if h=0 then
    begin
        showmessage('Handle nosu alınamadı');
        exit;
    end;

    L:=FindWindowEx(H,0,PChar('DirectUIHWND'),nil); // DirectUIHWND winsight323 programından yararlanarak buldum gerçekten de window pencereleri ile işlem yapacaksanız çok güzel bir araç

    if L=0 then
    begin
        showmessage('P handle nosu alınamadı!');
        exit;
    end;

    PostMessage(H, WM_SETFOCUS, 1, 0); //Arakadaşımın penceresine focuslandım 
    PostMessage(L,wm_char,72,0); //buradada istediğim msjı Ascii codlarını karakter karakter yazıp gönderdim
    PostMessage(L,wm_char,85,0);
    PostMessage(L,wm_char,83,0);
    PostMessage(L,wm_char,79,0);
    PostMessage(L,wm_char,78,0);
    PostMessage(L,wm_char,69,0);
    PostMessage(L,wm_char,84,0);
    PostMessage(L,wm_char,46,0);
    PostMessage(L,wm_char,67,0);
    PostMessage(L,wm_char,79,0);
    PostMessage(L,wm_char,77,0);
    PostMessage(L,WM_KEYDOWN,vk_return,0);//buradada entera basıp send işlemini yerine getirmiş bulundum...

end;
Bu cvp sadece bilgi amaçlıdır. Kötü niyetle kullanmamanız dileyimle

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

Selam,
Husonet'in yazdığı elbette bir çözüm olabilir, ama kabul etmek gerekiyor ki, çok da resmi ve kuralına uygun bir çözüm değil.

Bu işi yapmanın asıl yolu şu: MSN'in SDK'sını indirip, MSN'in API'sini kullanarak işlem yapma. Normalde MS'in sitesinden sadece MSN Activity SDK indirilebiliyor, ama MSN Plus'ın SDK'sını indirecek olursan, onun içinde MSN'in de SDK'sını göreceksin. Bu SDK ile MSN Plus benzer bir program da yazabilirsin. Bu arada MSN Plus'ın özellikleri arasında senin istediğin özellik de var (Diğer bir deyişle MSN SDK ile bu işlem yapılabiliyor).

Kolay gelsin,
Bahadır Alkaç

NOT: MSN'in SDK'sı tahmin edebileceğin gibi C++ kodu. Büyük ihtimalle de sadece Visual C++ ile compile edilebiliyordur. MSN Plus için örnek kodlar var, belki onlar sana yardımcı olur.
yoldas
Üye
Mesajlar: 1
Kayıt: 07 Nis 2006 02:34

Re: Msn Penceresine Yazı Yazma Yada Yazdırma ?

Mesaj gönderen yoldas »

mc_rapier yazdı:Msn Penceresine Yazı Yazma Yada Yazdırma ?
Bunu Programla Nasıl Yaparım ?
Kullanıcı avatarı
interboy
Üye
Mesajlar: 84
Kayıt: 18 Mar 2005 02:52

başka bi soru

Mesaj gönderen interboy »

hocam benbim de buna benzer bi sorum wardı.
yeni konu açmaktansa burdan sorayım dedim.

çalıştıım işyerinde bazı bilgisayarların msn e girmesini engelemek gerekiyor.
server client değilde küçük bir programla bunu yapmak istiyorum.
mesela progeamı kurduum pc de msn programı açıldığında bir mesaj werip msn i kapamam gerekiyor.

delphide yeniyim.
msn programı açılınca programı nasıl tetikleyebilirim ve nasıl bi mesaj göndrebilirim msn e.

bu konuda yardım ederseniz sewinirim.
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

Selam,

Şu an MSN'le ilgili bir program için kodlama yapıyorum, mesajı yazmamın sebebi de bu zaten.
Selam,
Husonet'in yazdığı elbette bir çözüm olabilir, ama kabul etmek gerekiyor ki, çok da resmi ve kuralına uygun bir çözüm değil.

Bu işi yapmanın asıl yolu şu: MSN'in SDK'sını indirip, MSN'in API'sini kullanarak işlem yapma. Normalde MS'in sitesinden sadece MSN Activity SDK indirilebiliyor, ama MSN Plus'ın SDK'sını indirecek olursan, onun içinde MSN'in de SDK'sını göreceksin. Bu SDK ile MSN Plus benzer bir program da yazabilirsin. Bu arada MSN Plus'ın özellikleri arasında senin istediğin özellik de var (Diğer bir deyişle MSN SDK ile bu işlem yapılabiliyor).

Kolay gelsin,
Bahadır Alkaç

NOT: MSN'in SDK'sı tahmin edebileceğin gibi C++ kodu. Büyük ihtimalle de sadece Visual C++ ile compile edilebiliyordur. MSN Plus için örnek kodlar var, belki onlar sana yardımcı olur.
Daha önce bu soruyla ilgili cevap olabilecek bir şeyler yazmışım, ama elbette işin içine girince, aslında MS'in güvenlik sebeplerinden dolayı, API üzerinde pencereye yazı yazdırma, karşı tarafa mesaj gönderme vs işlemleri yapmıyor. Diğer bir değişle, eğer MSN penceresine birşeyler yazdırmak istiyorsanız, husonet'in çözümü biraz geliştirilmeli. Aşağıda, kendi çıkardığım C++ koduna göre neler yapılması gerektiğini yazıyorum.

1. IMessenger Interface'ine bağlan
2. MyStatus değerini al.
3. MyStatus değeri mesaj göndermeye elverişli mi? (Offline veya Invisible olmamalı)
4. IMessengerContacts Interface'ini al
5. IMessengerContacts Interface'inden, IMessengerContact abstract yapısını al
6. pIMessengerContact->InstantMessage ile pencere bilgisini al
7. Pencere bilgisinden, pencerenin gerçek Handle bilgisini al (Bu kısım husonet'in örneğinde statik. Nuisance Nickli arkadaşının penceresi)
8. Geri kalan kısmı husonet'in yazdığı gibi
9. Bellek temizliği yap

Ayrıca MSN-Plus'ın da pencereye yazı yazdırma işlemini bu şekilde yaptığını tespit etmiş bulunuyoruz.

Kolay gelsin,
Bahadır Alkaç
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

Soruyu Mart'ta Sordum Cevabı Mayısta Gelmiş Ama İşe Yaradı Thanx :lol:
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Trial_Cooder yazdı:Soruyu Mart'ta Sordum Cevabı Mayısta Gelmiş Ama İşe Yaradı Thanx :lol:
nasıl yani soruyu soran üye farklı bir user :S

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

Yok O Benim Diğer Account
Cevapla