gerçekten özürlerimi sunarak bişey sormak istiyorum...
Handle alma konusunda yeterli doküman okumama rağmen - şu istediğim şeyi yapamadım * yardımcı olursanız sevinirim.
Handle'ı "a" olan form için mouse click gönder (mouseclick ile ilgili sorunum yok)
handle'ı "b" olan form için klavye tuşları ile harf bastır örneğin veritabanından kriptolu okunan şifre gibi... (klavyeden harf göndermekle de ilgili sorunum yok)
Sorunum tamamen
- Handle al
- a ise button1.click;
- b ise button2.click; ten ibaret. yardımcı olursanız çok sevinirim.
Handle almak ile ilgili
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Handle almak ile ilgili
Handle ı nerden nasıl alıon peki? Biraz kod göstersene şu an varsa yazdığınwebaytek yazdı: - Handle al
- a ise button1.click;
- b ise button2.click; ten ibaret. yardımcı olursanız çok sevinirim.
Kod: Tümünü seç
private
{ Private declarations }
procedure ComboBoxMessage(var Msg: TMessage); message WM_USER;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function EnumProc(wnd: HWND; Alabel: TLabel): BOOL; stdcall;
var
buffer: array[0..50] of Char;
begin
Result := True;
if IsWindowVisible(wnd) then
begin
GetClassName(wnd, buffer, SizeOf(buffer));
if StrIComp(buffer, 'ComboLBox') = 0 then
begin
Alabel.Caption := Format('handle found: %x', [wnd]);
Result := False;
end;
end;
end;
procedure TForm1.ComboBoxMessage(var Msg: TMessage);
begin
EnumThreadWindows(GetCurrentThreadID, @EnumProc, Integer(label1));
end;
procedure TForm1.ComboBox1DropDown(Sender: TObject);
begin
PostMessage(Handle, WM_USER, 0, 0);
end;
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kod: Tümünü seç
procedure TForm1.blok_listesine_ekleClick(Sender: TObject);
var
baslik : string
HFare : HWND;
HSonrakiWinMsg:HWND;
isaretleyici : TPOINT;
baslikUzunlugu : integer;
begin
GetCursorPos(isaretleyici);
HFare := WindowFromPoint(isaretleyici);
if HFare = HSonrakiWinMsg then Exit;
HSonrakiWinMsg := HFare;
baslikUzunlugu := SendMessage(HFare, WM_GETTEXTLENGTH, 0, 0) + 1;
SetLength(baslik, baslikUzunlugu);
SendMessage(HSonrakiWinMsg, WM_GETTEXT, baslikUzunlugu,LongInt(@baslik[1]));
if length(baslik) <> 1 then
begin
liste1.items.add(baslik);
liste1.itemindex:=liste1.Items.Count-1
end
else
begin
showmessage('Boş Başlık Ekleyemezsiniz - Fare imlecinin pencere başlığında olduğundan emin olun.');
end
Bu arada @undefined haklısın - kodu yazdım zannettim de...

Kıymetli zamanınızı çaldığım için kusuruma bakmayın
Sorumun cevabını şuanlık çözdüm. ancak sadece günü kurtardım - aslında bu işi handle alma yolu ile yapmam gerekiyordu.
Sorumun cevabını şuanlık çözdüm. ancak sadece günü kurtardım - aslında bu işi handle alma yolu ile yapmam gerekiyordu.
Kod: Tümünü seç
unit Unit1;
interface
uses
clipbrd,Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Edit1: TEdit;
saat2: TTimer;
procedure Button1Click(Sender: TObject);
procedure saat2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
HFare : HWND;
baslik : string;
HSonrakiWinMsg:HWND;
isaretleyici : TPOINT;
baslikUzunlugu : integer;
begin
GetCursorPos(isaretleyici);
HFare := WindowFromPoint(isaretleyici);
if HFare = HSonrakiWinMsg then Exit;
HSonrakiWinMsg := HFare;
baslikUzunlugu := SendMessage(HFare, WM_GETTEXTLENGTH, 0, 0) + 1;
SetLength(baslik, baslikUzunlugu);
SendMessage(HSonrakiWinMsg, WM_GETTEXT, baslikUzunlugu,LongInt(@baslik[1]));
edit1.text:=baslik;
if edit1.text = ProgramCaption_xxx_v3.2' then
saat2.enabled:=true
else
saat2.enabled:=false
end;
procedure TForm1.saat2Timer(Sender: TObject);
begin
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;
end.
Yaw yine ben yine aynı konu
Bir projede şööle bişiy yapmam lazım. örnek olarak çalışan bir uygulamayı diyelim ki msnmsgr.exe (MSN Messenger) çalışıyor.
Programa şu kodları göndermek istiyorum...
Program ana penceresini resize edilecek (top:=0 & width:=screen - taskbarwidth) ve ekranın sağ kenarına yapıştırılacak. Form Aktif olduğu sürece görünür, deaktif olduğu anda da sağa doğru kayarak ekrandan gizlenecek. Tekrar aktive edildiği zaman sola doğru kayarak görünür olacak.
Ancak bunu nasıl yapacağımı bulamadım. Kafamın karştığı nokta ise şu : msnmsgr.exe programına ait diyelim ki 3 adet form var; bunlardan hangisi anaform bunu nasıl öğrenebilirim ve yukarıdaki komutu direkt (sadece) bu forma nasıl gönderebilirim

Bir projede şööle bişiy yapmam lazım. örnek olarak çalışan bir uygulamayı diyelim ki msnmsgr.exe (MSN Messenger) çalışıyor.
Programa şu kodları göndermek istiyorum...
Program ana penceresini resize edilecek (top:=0 & width:=screen - taskbarwidth) ve ekranın sağ kenarına yapıştırılacak. Form Aktif olduğu sürece görünür, deaktif olduğu anda da sağa doğru kayarak ekrandan gizlenecek. Tekrar aktive edildiği zaman sola doğru kayarak görünür olacak.
Ancak bunu nasıl yapacağımı bulamadım. Kafamın karştığı nokta ise şu : msnmsgr.exe programına ait diyelim ki 3 adet form var; bunlardan hangisi anaform bunu nasıl öğrenebilirim ve yukarıdaki komutu direkt (sadece) bu forma nasıl gönderebilirim
Kendimden utanıyorum artık... Hep aynı konu
Şimdi de olay şu : Yazdığım bir program ile bir ticari yazılım üzerinde bir kontrol sahibi olmak istiyorum. Atladığım aşamalar şunlar :
mouse ile handle alarak programa hem mouse hem de klavye ile bazı komutlar göndermek
Formumu herzaman aktif kılmak
Timerların zaman aralıklarını RAM'e göre yoğunlaştırmak veya azaltmak gibi... Internet hızına bağlı olarak bazı işlemler yaptırmak falan dilan...
Bahsettiğim Ticari Program Aktif iken bu yazdıklarımı yapabiliyorum ancak... Program kendini taskbara attığı anda elim kolum bağlı kalıyor. çünkü handle alma işini mouse ile TITLE daha doorusu form caption'ı okutarak yapmak zorundayım... Burada takıldığım noktayı atlayabilmem için sizden şu tür bir yardım rica ediyorum. Taskbara gönderilmiş programı nasıl önce VISIBLE sonra MAXIMIZE sonra da ACTIVE hale getirebilirim... Program örneği e-mule gibi. Hatta daha yaygın olduğunu sanıyorum ki : MSN Messenger gibi. Minimize edildiğinde önce invisible oluyor sonra da taskbara icon olarak gidiyor. - KOLAY GELSİN

Şimdi de olay şu : Yazdığım bir program ile bir ticari yazılım üzerinde bir kontrol sahibi olmak istiyorum. Atladığım aşamalar şunlar :
mouse ile handle alarak programa hem mouse hem de klavye ile bazı komutlar göndermek
Formumu herzaman aktif kılmak
Timerların zaman aralıklarını RAM'e göre yoğunlaştırmak veya azaltmak gibi... Internet hızına bağlı olarak bazı işlemler yaptırmak falan dilan...
Bahsettiğim Ticari Program Aktif iken bu yazdıklarımı yapabiliyorum ancak... Program kendini taskbara attığı anda elim kolum bağlı kalıyor. çünkü handle alma işini mouse ile TITLE daha doorusu form caption'ı okutarak yapmak zorundayım... Burada takıldığım noktayı atlayabilmem için sizden şu tür bir yardım rica ediyorum. Taskbara gönderilmiş programı nasıl önce VISIBLE sonra MAXIMIZE sonra da ACTIVE hale getirebilirim... Program örneği e-mule gibi. Hatta daha yaygın olduğunu sanıyorum ki : MSN Messenger gibi. Minimize edildiğinde önce invisible oluyor sonra da taskbara icon olarak gidiyor. - KOLAY GELSİN