Selamlar, yıllardır uğraştığım ve biçok program yazdığım delphi'de kolaylıkla yapabiliyodum ancak şu son zamanlarımda Visual Basic öğrenmek isteyip Visual Basic 2008 Express indirip başladım ancak haliyle deişik geldi :)
Sorunum şu ki Findwindow komutu ile açık olan pencerelerden başlığında "not defteri" geçen programa WM_QUIT yollayıp kapatmak istiyorum. bunu en basit nasıl yapabilirim?
Programımda 1 tane tuş koyduğumu varsayıp o tuşa yazılıcak komutu yazarsanız sevinirim.. bulduğum örneklerle gittiğim kadarıyla bunu sorunsuz çalıştırıyorum fakat "HATA" mesajı çıkıo karşıma yani işe yaramıo :) nerde yanlış yapıyorum tavsiyede bulunursanız sevinirim teşekkürler.. :)
Dim sTitle As String Dim iHwnd As Integer Dim ihTask As Integer Dim iReturn As Integer 'Dim asd, asdd() As Process
Try iHwnd = FindWindow(vbNullString, "Not defteri") MsgBox("Kapandi") iReturn = PostMessage(iHwnd, WM_QUIT, 0, 0&) Catch ex As Exception MsgBox("HATA") End Try
kullanacagin native dll in fonksiyonunu tanimlaman gerekli,
Find Window Icin: Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Post message Icin: Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
evet bunları programda en üste yazdım zaten yazmasaydım findwindow ve postmessage çalışmazdı.. ancak komutlarımda bi sorunum yok.. sorunum;
bunun çalışmaması.. yani hiçbi işe yaramaması.. sorun bu :) bi tane örnek program yazarmısınız rica etsem? findwindow ve postmessage kullanarak notdeferini kapatsın.. teşekkürler..
Yazmalisin, Yoksa FindWindow Hicbir handle Bulamaz ve 0 Handle ina WM_QUIT yollar.
Ayrica Bir Oneri, .NET Dillerinden Biri ile Ba$layacaksaniz BU C# Olsun.
yok ya.. bu kodlar olmuo.. adısz - not defteri denedim.. hatta asdf diye klasör oluşturup onu açtım pencere olarak yine bulamadı kapatamadı falan.. hep hatayla dönüyo.. delphide ne kolaydı halbuki ya.. ilginç cidden.. başka bir tavsiyen varmı bu konu hakkında?
ayrıca ewt başlamadan önce araştırmıştım C'nin güçlü olduunun ve tavsiye edildiine ulaşmıştım ama basic daha kolaydır diye onunla başlamak için hareketlendim :) yani pekte ilerlediim sölenemez.. hiç daha fazla zaman kaybetmeden c# mı geçsem direk?
örneğin şu yapmaya çalıştığımı onda daha kolaylkla yapabilir miyim? hani en azından google arattıımda ulşabileceğim örnekler dahamı afzladır c#'de?
quote:
Orjinalden alıntı: who
yok ya.. bu kodlar olmuo.. adısz - not defteri denedim.. hatta asdf diye klasör oluşturup onu açtım pencere olarak yine bulamadı kapatamadı falan.. hep hatayla dönüyo.. delphide ne kolaydı halbuki ya.. ilginç cidden.. başka bir tavsiyen varmı bu konu hakkında?
ayrıca ewt başlamadan önce araştırmıştım C'nin güçlü olduunun ve tavsiye edildiine ulaşmıştım ama basic daha kolaydır diye onunla başlamak için hareketlendim :) yani pekte ilerlediim sölenemez.. hiç daha fazla zaman kaybetmeden c# mı geçsem direk?
örneğin şu yapmaya çalıştığımı onda daha kolaylkla yapabilir miyim? hani en azından google arattıımda ulşabileceğim örnekler dahamı afzladır c#'de?
C# Yazili$ Bakimindan Cok Kolayliklar Saglar Sana, Mesela VB Deki
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Bu Karma$ik yazili$i
[DllImport("user32.dll")] public static extern int PostMessage(IntPtr hwnd, int Message, int wParam, int lParam);
$eklinde Duzgun Bi $ekilde Yazabilirsin.
Ayrica Bu Konu hakkindaki Onerim $udur, PostMessage yerine SendMessage Dene
yok dostum.. yine sorunlar falan çıktı olmadı vesaire.. neyse hiç bu kadar uğraşmamıştım vazgeçtim ben.. tşkler yinede :) C# deneyeyim birazda.. olmadı yine delphime döneyim :) iyi günler.. tşkler tekrardan..
Cok Cabuk Pes Ediyosun :) Al Sana Bi Class, Denedim Cali$iyor ;)
class FindAndDestroy { public const int WM_COMMAND = 0x0112; public const int WM_CLOSE = 0xF060;