Findwindow Fonksiyonu
-
Merhaba arkadaşlar
Findwindow ile gizlemek istediğim uygulamayı bulamıyorum. Mevcut örneklere bakıyorum hep uygulama title'ını alarak bulunmuş uygulamalar.
direkt olarak exe dosyasını bulup gizlemem gerekiyor.. Zira gizlemek istediğim uygulama title'ı değişken...
-
up
-
geckodriver process'inin main window handle'ına erişip bunu ShowWindow ile gizleyebilirsin.
Aşağıdaki konsol uygulaması örneği tüm kendi ana penceresine sahip geckodriver process'lerini gizlemeye çalışır.
Sanmıyorum ama eğer geckodriver bir batch scripti veya doğrudan konsol komutu ile başlatılıyorsa bu kod gizlenmesi gereken ana pencere konsol process'ine (muhtemelen cmd.exe) ait olacağından çalışmaz. Kodda bunun kontrolünü görebilirsin.
using System; using System.Diagnostics; namespace Test { internal class Program { private const int SW_HIDE = 0; [System.Runtime.InteropServices.DllImport("user32")] private static extern int ShowWindow(int hwnd, int nCmdShow); private static void Main() { foreach (Process process in Process.GetProcessesByName("geckodriver")) { int hwnd = process.MainWindowHandle.ToInt32(); if (hwnd != 0) { Console.WriteLine(process.ProcessName + " gizlendi."); // process'in kendisine ait bir penceresi var, gizlenebilir ShowWindow(hwnd, SW_HIDE); } } Console.ReadLine(); } } }
Diğer yandan bunu C# ile hiç kullanmadığımdan bilmiyorum ama kullandığın API büyük ihtimalle geckodriver'ı gizli bir pencere içinde başlatabiliyordur. Pencere bulup gizlemek yerine dokümanlarında gizli başlatma yöntemlerini araştırmanı öneririm.
-
çok teşekkür ediyorum.
sorunsuz çalışıyor.