1. sayfa
Windows Api si kullanarak daha sonra görüntüyü capture etmelisn kullanacağın api; PrintWindow Lib "user32.dll" (ByVal _ hwnd As IntPtr, ByVal hdcBlt As IntPtr, ByVal nFlags As _ UInt32) As Boolean |
yeniyim bu konuda ayrıntılı bi açıklama yaparsan sewinirim,teşekkürler şimdiden |
Sana ilk verdiğim Api PrintWindow Xp çalışıyoe ama 2000'lerde çalışmuyor ondan sordum... http://support.microsoft.com/default.aspx?scid=kb;en-us;85978 Bu sayfayı incele tam işine yarayacak. Ayrıca captute fonksiyonu; Private Declare Function PrintWindow Lib "user32.dll" (ByVal _ hwnd As IntPtr, ByVal hdcBlt As IntPtr, ByVal nFlags As _ UInt32) As Boolean Dim screenGrab As Bitmap Private Sub CaptureScreen() 'captures Form1 into screenGrab screenGrab = New Bitmap(Me.Width, Me.Height) Dim g As Graphics = Graphics.FromImage(screenGrab) Dim hdc As IntPtr = g.GetHdc Form1.PrintWindow(Me.Handle, hdc, Nothing) g.ReleaseHdc(hdc) g.Flush() g.Dispose() 'could just save the screenshot: 'screenGrab.save("c:\screenshot1") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button6.Click CaptureScreen() End Sub |
ilk iki sub ı general decleration kısmına diğerini print komut buttonuna yazıcaz sanırım print buttonunda yazılı olan handles button6.click ne demek oluyo |
Evet. O da button6 da button1 olucak kodda button6 idi ilk kısmı düzeltmiştim fakat handle kısmında kalmış. Bu kodu .Net de yazdım onun için standard vb test etme şansım yok çünkü vb kullanmuyorum. |
vb de olmuyo malesef capturescreen diye prosedür fln tanımıyo bunun çalıştığından emin misin |
Api'yi çalıştırmuyor olmasın. Sana gönderdiğim linki incelersen istediğin olur. Bana VB kurdutturma. ![]() |
Form1.printform çalışması gerekir... Bilgisayarınızda bir yazıcı yüklü durumdamı ? Eğer yok ise exception döndürür... Eğer printer sız bir makinada çalışıyorsanız alakasız bir driver yükleyerek Yazıcı ekle kısmından Baskı önizleme özelliğini kullanabilirsiniz. |
sevgili aspci79 dediğini düşündüm ve Form1.printform komutunu ewimdeki printerda kullandım print yapmaya başladı ama soldan başlayarak sağ tarafı yarım print etti,ama en azından print out çıkardı işyerimdeki printer ağdan kullanımda olan bi printer onda ise error wermişti,ne yapmalıyım sence?teşekkürler ilgine, sen de olmasan... |
Yaa arkadaşlar,VB 6.0 da print yapamıyacağım anlaşılan kimseden işe yarayan bi fikir halen alabilmiş diilim ![]() |
Kusura Bakmayın Baya yoğunum Söylediğim şekilde sorununuz demekki yazıcı driverından. Fikir olarak belki yardım edebilir. :) Öncelikle bir Beyaz form oluşturun ve boyutunu A4 olarak boyutlandırın. Label yada text'leri yazı çıktısı şeklinde dizgi yapın form üzerine Çıktı alıcağınız zaman gönderme yaparak printform yaparsınız... yazdirform.text1 = form1.text1.text yazdirform.text2 = form1.text2.text ... yazdirform.printform Derseniz direkt çıktı alırsınız... Ağ yazıcısını bilgisayarınızda varsayılan yazıcı yaparsanız sorun ortadan kalkacaktır. ![]() |
Sevgili aspci79; Form1.printform komutunun formun çıktısı için yeterli bi komut olacağını zannetmiyorum,sanırım api fln bulmak gerek,bu arada ağdaki printer benim default printer cnm![]() yardımcı olursan sevinirim,print butonuna basınca formun çıktısını almak istiyorum,çokkarmaşık bişey istemiyorum yane,kaçgündür çözebilmiş diilim |
Ben eski dosyalama sistemleri ile hazırladığım projelerde tabii bu olay seneler önce olan bir olay ![]() Fakat yukarıda anlattığım şekilde kullanım doğru kendim bizzat geçmişte kullandığım için eminim. Kod örneği yollasarsanız dahada fazla fikir üretebiliriz belki ama işlerim yüzünden söz veremiyorum maalesef. |
Sence şu aşagıdaki komutlardan ne elde edilir? neyi nereye yazacağımı kararlaştıramadım,general declaretions kısmına mı yazılıcak? Private Sub pd_PrintPage(ByVal sender As Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) _ Handles pd.PrintPage e.Graphics.DrawImage(formImage, 0, 0) pd.DefaultPageSettings.Landscape = True End Sub Private Sub GetFormImage() Dim g As Graphics = Me.CreateGraphics() Dim s As Size = Me.Size formImage = New Bitmap(s.Width, s.Height, g) Dim mg As Graphics = Graphics.FromImage(formImage) Dim dc1 As IntPtr = g.GetHdc Dim dc2 As IntPtr = mg.GetHdc ' added code to compute and capture the form BitBlt(dc2, 0, 0, Me.ClientSize.Width, Me.ClientSize.Height, dc1, 0, 0, 13369376) g.ReleaseHdc(dc1) mg.ReleaseHdc(dc2) End Sub Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' create an instance of the PrintDocument component pd = New Printing.PrintDocument Me.StartPosition = FormStartPosition.CenterScreen pd.DefaultPageSettings.Landscape = True End Sub Private Sub Print_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles Print.Click GetFormImage() pd.Print() End Sub |
Şimdi Bahsettiğimizi şeyler çok farklıymış bir kere :) Kodları fazla analiz edemedim ama formImage değişkenini Private deklare etmelisin çünkü farklı yordamlar tarafından kullanılıyor. en üstteki subın dışında private formImage as Variant // Örn. Kod sanıyorum form üzerinde grafik oluşturup yazıyor. Birde bunu dene bakalım . ! ![]() |
1. sayfa
teşekkürler
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.