Durum bu:
Bir Unity Hızlı Liste editörü (sonraki sürümü) üzerinde çalışırken, başlatıcı simgelerini "yeniden başlatmak" için güvenilir bir yol eklemek istiyorum. Bunu yapmak için, simgeyi (gsettings'leri düzenleme) kaldırmam ve aynı konumda değiştirmem gerekiyor. Şimdiye kadar sorun yok. Ancak, söz konusu uygulama çalışıyorsa, uygulama başlatıcıdan kaldırıldığında uygulama çıkacağından kullanıcı muhtemelen veri kaybeder. Benim ihtiyacım uygulama çalışıyorsa çalışan işlem listesinde editör denetimi izin ve simge yeniden edilemez kullanıcıya bir uyarı mesajı göndermek için, bir uygulamanın işlem adını bulmak için güvenilir bir yoldur , eğer bir uygulamadır çalışan.
Şimdiye kadar yaptığım şey, editörün masaüstü dosyasına bakmasını sağlamak, komutu okumak, ayrıca komutu okumak, dizin bölümünden sıyrılmak ve ayrıca masaüstü dosya komutunun başvurabileceği olası uzak komut dosyalarına bakmak, dizeleri başlatmak ile "./"
Yöntem, test ettiğim tüm uygulamalarla iyi çalışıyor gibi görünse de, sorunu "hepsi bir arada" şekilde ele almanın daha kolay bir yolu olması gerektiğini hissediyorum ...
Var mı?
Ayrıca daha istisnai durumlar yakalamak için öneriler bekliyoruz!
ps
ve xprop
çıktısında olduğu gibi bilmek ?
.desktop
WM_CLASS olması gerekmez. WM_CLASS uygulama içinden ayarlanabilir.
firefox.desktop
, PID 1234 ile firefox'u başlattı, ancak WM_CLASS
'Totally Not Firefox' gibi bir şeye dönüştü . Ancak .desktop
dosya değişmez. Ne olursa olsun, adı PID 1234'e eklemek istiyorsunuz WM_CLASS
. Sanırım tam olarak ne yapılması gerektiğini görüyorum. Ama ilk sorumu cevaplamadınız - eğer sadece Birlik içinse sorun değil mi?