Yorumları: 854
Konuları: 40
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.377 Uzman
10-06-2024, Saat: 09:17
(Son Düzenleme: 10-06-2024, Saat: 09:22, Düzenleyen: hi_selamlar.)
(09-06-2024, Saat: 15:49)bydelphi Adlı Kullanıcıdan Alıntı: Merhabalar,
Windows hizmetlerin içinde desktop screenshot alıyorum hatta sıkıştırıp jpg de yapıyorum, image obje oluşuyor erişiliyor , hizmet çalışıyor ancak her seferinde beyaz bir bitmap geçiyor elime.
acaba hizmetlerden bu mümkün değilmi yada dikkat etmek gereken bir şey mi var. tabi şunuda söylemeliyim, aynı kod vcl exe uygulamamda sorunsuz işliyor .
jpg'e dönüştürmeden de aldığımda da yine beyaz. Yardımcı olabilirmisiniz.
DSK := GetDC(GetDesktopWindow);
BMP := TBitmap.Create;
BMP.Width := Screen.Width;
BMP.Height := Screen.Height;
BitBlt(BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height,DSK, 0, 0,SrcCopy);
JPG := TJPEGImage.Create;
JPG.Assign(BMP);
JPG.CompressionQuality := 70;
JPG.Compress;
Merhaba,
Servisler kullanıcı arayüzü ile etkileşime giremezler.
Bu nedenle servisi > kullanıcı yetkisi ile açmayı denermisiniz lütfen.
https://stackoverflow.com/questions/7088...mmand-line
Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Yorumları: 277
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.294 Programcı
(10-06-2024, Saat: 09:17)hi_selamlar Adlı Kullanıcıdan Alıntı: (09-06-2024, Saat: 15:49)bydelphi Adlı Kullanıcıdan Alıntı: Merhabalar,
Windows hizmetlerin içinde desktop screenshot alıyorum hatta sıkıştırıp jpg de yapıyorum, image obje oluşuyor erişiliyor , hizmet çalışıyor ancak her seferinde beyaz bir bitmap geçiyor elime.
acaba hizmetlerden bu mümkün değilmi yada dikkat etmek gereken bir şey mi var. tabi şunuda söylemeliyim, aynı kod vcl exe uygulamamda sorunsuz işliyor .
jpg'e dönüştürmeden de aldığımda da yine beyaz. Yardımcı olabilirmisiniz.
DSK := GetDC(GetDesktopWindow);
BMP := TBitmap.Create;
BMP.Width := Screen.Width;
BMP.Height := Screen.Height;
BitBlt(BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height,DSK, 0, 0,SrcCopy);
JPG := TJPEGImage.Create;
JPG.Assign(BMP);
JPG.CompressionQuality := 70;
JPG.Compress;
Merhaba,
Servisler kullanıcı arayüzü ile etkileşime giremezler.
Bu nedenle servisi > kullanıcı yetkisi ile açmayı denermisiniz lütfen.
https://stackoverflow.com/questions/7088...mmand-line
Kolay gelsin.
Teşekkür ederim @ hi_selamlar kardeşim aradığım cevap buydu
ancak denemelerimde sonuç elde edemedim
zaten sayfanın altında aynen şu ifade geçiyor Türkçe meali :
" Bu özelliğin Windows'un daha yeni sürümlerinde büyük ölçüde ortadan kalktığını unutmayın; örneğin Vista'da bu göz ardı edilir; güvenlik nedeniyle hizmetlerin artık masaüstüyle etkileşime girmesine izin verilmez."
Çözüm olarak
servis ile ufak bir exe execute edip ilgili işlemleri yapacağım.
şeklinde değerlendiriyorum şu an.
Kalan ömrünün en genç build’indesin.
Counter artar, deadline sabit.
Age++ çalışıyor, rollback yok.
Her yer exception
Yorumları: 1.051
Konuları: 45
Kayıt Tarihi: 24-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.067 Uzman
Servis DLL çalıştırdığında nasıl bir sonuç çıkıyor?
Yorumları: 277
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.294 Programcı
(10-06-2024, Saat: 15:29)engerex Adlı Kullanıcıdan Alıntı: Servis DLL çalıştırdığında nasıl bir sonuç çıkıyor?
hocam Servisi DLL olarak export etmeyimi kastediyorsun, şu an servisi, exe export ediyorum. dll export ediliyor mu bilmiyorum.
yada screenshot alan fonksiyonu ayrı bir dll oluşturup dene mi diyorsun. bu da çok mantıklı belkide yapar deneyeceğim.
Kalan ömrünün en genç build’indesin.
Counter artar, deadline sabit.
Age++ çalışıyor, rollback yok.
Her yer exception
Yorumları: 1.051
Konuları: 45
Kayıt Tarihi: 24-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.067 Uzman
(10-06-2024, Saat: 15:57)bydelphi Adlı Kullanıcıdan Alıntı: (10-06-2024, Saat: 15:29)engerex Adlı Kullanıcıdan Alıntı: Servis DLL çalıştırdığında nasıl bir sonuç çıkıyor?
...
yada screenshot alan fonksiyonu ayrı bir dll oluşturup dene mi diyorsun.
...
EXE servis ile ayrı DLL deneyebilirsin. Bence olmayacak, sonuçta o da servis altında çalışıyor. Denemekte fayda var.
Yorumları: 277
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.294 Programcı
Dll oluşturup başka bir exe içerisinden çağırdım ve istediğim sonucu rahatlıkla aldım,
ancak dll i servis içerisinden çağırdığımda beklediğim sonucu alamadım.
servis içinden yakalarken bembeyaz sayfa alırken, dll içerisinden capture yaparken simsiyah sayfa aldım aynı kodla ilginç.
sonuç olarak servisin kontrol ettiği exe ile yola devam
Kalan ömrünün en genç build’indesin.
Counter artar, deadline sabit.
Age++ çalışıyor, rollback yok.
Her yer exception
Yorumları: 277
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.294 Programcı
Merhabalar,
Konunun devamı olarak şu konuda da sizden destek rica ediyorum.
aldığım capture bitmapı bir önceki ile karşılaştırıp bu iki bitmap image bire bir aynı ise , bunu kontrol etmek istiyorum,
Çok kaynak tüketmeden pixel pixel kontrol etmeye gerek kalmadan nasıl yapabiliriz .
iki bitmapin boyutunu byte cinsinden cardinal olarak karşılaştırdığımda bu isteğime cevap verir mi sizce,
yada daha sağlıklı bir yolu varmıdır.
DSK := GetDC(GetDesktopWindow);
BMP := TBitmap.Create;
BMP.Width := Screen.Width;
BMP.Height := Screen.Height;
BitBlt(BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height,DSK, 0, 0,SrcCopy);
Teşekkürler.
Kalan ömrünün en genç build’indesin.
Counter artar, deadline sabit.
Age++ çalışıyor, rollback yok.
Her yer exception
|