Shellexecute İle Haricen Dosyaya Yazdır Komutu Gönderme

15/06/2017, 16:59

Uğur ŞİRİN

Merhaba, 

Shellexecute sınıfı ile haricen bir dosyayı (excel, ppt, bmp, jpg, pdf, doc vb.) yazdır komutu göndermek mümkün mü ?


Örnek olarak;

Uygulamada butonu tıklar tıklamaz c:\xxx.xxx dosyasına yazdır komutu gönderecek..
15/06/2017, 17:01

Uğur ŞİRİN

(15/06/2017, 16:59)Uğur ŞİRİN yazdı: Merhaba, 

Shellexecute sınıfı ile haricen bir dosyayı (excel, ppt, bmp, jpg, pdf, doc vb.) yazdır komutu göndermek mümkün mü ?


Örnek olarak;

Uygulamada butonu tıklar tıklamaz c:\xxx.xxx dosyasına yazdır komutu gönderecek..


Şunu buldum ama sizce işe yarar mı ? 


Const SW_SHOWNORMAL = 1
Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Sub Command4_Click()
Dim PrintIt As Long
'PrintIt = ShellExecute(Me.hwnd, "print", "C:\My Documents\MyDoc.Doc", "", "", -1)
PrintIt = ShellExecute(Me.hwnd, "print", "C:\My Documents\MyDoc.Doc", "", "", SW_SHOWNORMAL)
End Sub
15/06/2017, 17:04

Uğur ŞİRİN

(15/06/2017, 17:01)Uğur ŞİRİN yazdı:
(15/06/2017, 16:59)Uğur ŞİRİN yazdı: Merhaba, 

Shellexecute sınıfı ile haricen bir dosyayı (excel, ppt, bmp, jpg, pdf, doc vb.) yazdır komutu göndermek mümkün mü ?


Örnek olarak;

Uygulamada butonu tıklar tıklamaz c:\xxx.xxx dosyasına yazdır komutu gönderecek..


Şunu buldum ama sizce işe yarar mı ? 


Const SW_SHOWNORMAL = 1
Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Sub Command4_Click()
Dim PrintIt As Long
'PrintIt = ShellExecute(Me.hwnd, "print", "C:\My Documents\MyDoc.Doc", "", "", -1)
PrintIt = ShellExecute(Me.hwnd, "print", "C:\My Documents\MyDoc.Doc", "", "", SW_SHOWNORMAL)
End Sub


Uyguladığımda 

'Option' statements must precede any declerations or "Imports" statements.

'hwnd' is not a member of "WindowsApplication1.form1'.

hatalarını alıyorum.
15/06/2017, 17:07

Uğur ŞİRİN

'Option' statements must precede any declerations or "Imports" statements.

Hatasını giderdim.


Ancak halen aşağıdaki hatayı alıyorum.

'hwnd' is not a member of "WindowsApplication1.form1'.
15/06/2017, 17:18

Uğur ŞİRİN

Çözümü buldum. "me.hwnd" yerine "me.handle" kullandım ve düzeldi.
15/06/2017, 17:20

Uğur ŞİRİN

Çalışan kodun son durumu: 

Option Explicit On
Public Class Form1
   Const SW_SHOWNORMAL = 1


   Private Declare Function ShellExecute Lib "shell32.dll" _
   Alias "ShellExecuteA" _
   (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As Long) As Long

   Private Sub Command4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command4.Click
       Dim PrintIt As Long
       'PrintIt = ShellExecute(Me.hwnd, "print", "C:\My Documents\MyDoc.Doc", "", "", -1)
       PrintIt = ShellExecute(Me.Handle, "print", "D:\MyDoc.Doc", "", "", SW_SHOWNORMAL)
   End Sub

End Class