Merhaba sana şöyle bir örnek sunayım, eğer bunla yapamazsan örneğini buradan paylaşki senin istediğini yanlış anlamayıp elimizden geldiğince sana yardımcı olup gösterelim. Aşağıdaki örneği şuan deneme şansım olmadığı için direk yazdım. Ufak tefek hatalar olabilir. Sen dene, bende yarın deneyeceğim. kolay gelsin
NoT: senin kod parçanda bahsettiğin sorunun sebebi şu
setwindowtext(GetForegroundWindow,pchar('Ben'));
burada GetForegroundWindow dersen en üstteki aktif pencereye yaz demiş oluyorsun. Onun yerine senin pencere handle numarasını yazarsan olur.
aşağıdaki fonksiyon ile örneğin şöyle olmalı setwindowtext(Pencere_handle_bul ,pchar('Ben'));
Kod: Tümünü seç
function Pencere_handle_bul(aranan_pencere_basligi: string): Hwnd;
var
Handle_No: Hwnd;
okunan_baslik: array[0..260] of char;
begin
Handle_No := GetWindow(Application.Handle, GW_HWNDFIRST);
while Handle_No > 0 do
begin
GetWindowText(Handle_No, okunan_baslik, 255);
if Pos(aranan_pencere_basligi, StrPas(okunan_baslik)) <> 0 then
begin
Result := Handle_No;
Exit;
end
else
Handle_No := GetWindow(Handle_No, GW_HWNDNEXT);
end;
Result := 0;
end;
/// kullanımı
Kod: Tümünü seç
var
pencerenin_handlesi: Hwnd;
begin
pencerenin_handlesi:=Pencere_handle_bul('benim projem') ;
if pencerenin_handlesi <> 0 then
begin
ShowWindow(pencerenin_handlesi,SW_SHOW); /// minimize ise göster
SetForegroundWindow(pencerenin_handlesi);// öne plana getir;
setwindowtext(pencerenin_handlesi,pchar('Ben'));
end ;
end;