Yorumları: 843
Konuları: 40
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.219 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ı: 274
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.248 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.
Eski tuğlalarla yeni bina yapılmaz.
Yorumları: 1.030
Konuları: 44
Kayıt Tarihi: 24-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.045 Uzman
Servis DLL çalıştırdığında nasıl bir sonuç çıkıyor?
Yorumları: 274
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.248 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.
Eski tuğlalarla yeni bina yapılmaz.
Yorumları: 1.030
Konuları: 44
Kayıt Tarihi: 24-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.045 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ı: 274
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.248 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
Eski tuğlalarla yeni bina yapılmaz.
Yorumları: 274
Konuları: 50
Kayıt Tarihi: 05-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.248 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.
Eski tuğlalarla yeni bina yapılmaz.
|