Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Print-rutin i VB6

Postades av 2010-08-16 14:19:12 - Sven Åke Persson, i forum visual basic - allmänt, Tråden har 10 Kommentarer och lästs av 2297 personer

Ref. Access Forum PDF frågan.

Fae..... det här var mycket lurigare än jag tänkte. Kul att få gnugga hjärnan.
Jag ger mig i princip aldrig.
Kan man verkligen inte köra princip PrintFile från VB6 VBA kod ?

Finns det något lurigt API som löser problemmet.?
Kan man köra API från VBA ?


Svara

Sv: Print-rutin i VB6

Postades av 2010-08-16 15:49:01 - Pelle Johansson


http://www.codeforexcelandoutlook.com/blog/2010/02/open-or-print-files-in-vba/

<code>
' adapted from Access 2003 VBA Programmer's Reference
Public Enum actionType
openfile
printfile
End Enum

Public Const SW_SHOWNORMAL As Long = 1

Public 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

Function ExecuteFile(fileName As String, action As actionType)
' action can be either "Openfile" or "Printfile".

Dim sAction As String

Select Case action
Case 0 ' openfile
sAction = "Open"
Case 1 ' printfile
sAction = "Print"
End Select

ShellExecute 0, sAction, fileName, vbNullString, "", SW_SHOWNORMAL
End Function

Sub TestPrint()
' open a file
ExecuteFile "C:\MyFile.xls", openfile
' print another
ExecuteFile "C:\MyPDF.pdf", printfile
End Sub
</code>

</code>


Svara

Sv:Print-rutin i VB6

Postades av 2010-08-16 16:11:28 - Sven Åke Persson

Guld Pelle.

Har varit inne på något liknande men får inte till det med ShellExecute.
Skall testa. Tror inte att ShellExecute köper .rtf filer.


Svara

Sv: Print-rutin i VB6

Postades av 2010-08-16 18:26:13 - Thomas Roman

ShellExecute öppnar väl filerna som om användaren hade klickat på dom? Dvs är filändelsen associerad med något program så borde det inte vara några problem.


Thomas


Svara

Sv:Print-rutin i VB6

Postades av 2010-08-16 20:27:17 - Sven Åke Persson

mmm. så är det ju fast det funkar inte mot .pdf och Acrobat Reader.

Jag är mest intresserad av <b>printfile</b> trodde det skulle rikta filen till den valda Printern.

Men så är det nog inte. Det verkar som att den printar ut Asciii på aktuell textplatta.


Svara

Sv: Print-rutin i VB6

Postades av 2010-08-17 10:45:06 - Per-Olof Ohlsson

Jo det fungerar utmärkt med .pdf mot AR (om pdf är associerad med AR)

Välj printer först och sedan:

ShellEx "myfile.pdf", sOperation:="print", Owner:=Me.hWnd

/PeO


Svara

Sv:Print-rutin i VB6

Postades av 2010-08-17 11:53:54 - Sven Åke Persson

Tusen Tack skall jag testa direkt, Lite skillnad mot vad jag testat.
<code>
ShellExecute 0, "print", "test.pdf", vbNullString, "", SW_SHOWNORMAL
</code>

Var tusan skulle jag ha hittat denna variant ?


Svara

Sv: Print-rutin i VB6

Postades av 2010-08-17 12:14:28 - Sven Åke Persson

<code>
ShellEx "myfile.pdf", sOperation:="print", Owner:=Me.hWnd
</code>

Försökte följa din instruktion men det sket sig.
Så här skrev jag
<code>
Dim ret As Long
ret = ShellExecute("C:\Test.rtf", "Print", Me.hWnd)
</code>
Argument not optional


Svara

Sv:Print-rutin i VB6

Postades av 2010-08-17 14:58:59 - Sven Åke Persson

Ahhh Per-Oskar.

Du hänvisar till en kod som ligger i en SubRutin som jag inte ser koden till.

Den hjälpen var värdelös, tänkte väl att det såg för enkelt ut.

Shit Men ! det går tydligen inte att skicka .rtf till en Printer för utskrift. Eller ?


Svara

Sv: Print-rutin i VB6

Postades av 2010-08-17 15:22:55 - Sven Åke Persson

För att vara djä... tydlig . Jag vill skicka en .rtf till min dafault Printer för utskrift.


Svara

Sv:Print-rutin i VB6

Postades av 2010-08-17 16:24:34 - Per-Olof Ohlsson

Sorry, missade att få med suben:

<code>
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 Declare Function ShellExecuteForExplore Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, lpParameters As Any, _
lpDirectory As Any, ByVal nShowCmd As Long) As Long

Public Enum EShellShowConstants
essSW_HIDE = 0
essSW_MAXIMIZE = 3
essSW_MINIMIZE = 6
essSW_SHOWMAXIMIZED = 3
essSW_SHOWMINIMIZED = 2
essSW_SHOWNORMAL = 1
essSW_SHOWNOACTIVATE = 4
essSW_SHOWNA = 8
essSW_SHOWMINNOACTIVE = 7
essSW_SHOWDEFAULT = 10
essSW_RESTORE = 9
essSW_SHOW = 5
End Enum

Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
Private Const SE_ERR_ACCESSDENIED = 5 ' access denied
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DLLNOTFOUND = 32
Private Const SE_ERR_FNF = 2 ' file not found
Private Const SE_ERR_NOASSOC = 31
Private Const SE_ERR_PNF = 3 ' path not found
Private Const SE_ERR_OOM = 8 ' out of memory
Private Const SE_ERR_SHARE = 26


Public Function ShellEx( _
ByVal sFIle As String, _
Optional ByVal eShowCmd As EShellShowConstants = essSW_SHOWDEFAULT, _
Optional ByVal sParameters As String = "", _
Optional ByVal sDefaultDir As String = "", _
Optional sOperation As String = "open", _
Optional Owner As Long = 0 _
) As Boolean

Dim lR As Long
Dim lErr As Long, sErr As Long
If (InStr(UCase$(sFIle), ".EXE") <> 0) Then
eShowCmd = 0
End If
On Error Resume Next
If (sParameters = "") And (sDefaultDir = "") Then
lR = ShellExecuteForExplore(Owner, sOperation, sFIle, 0, 0, essSW_SHOWNORMAL)
Else
lR = ShellExecute(Owner, sOperation, sFIle, sParameters, sDefaultDir, eShowCmd)
End If
If (lR < 0) Or (lR > 32) Then
ShellEx = True
Else
' raise an appropriate error:
lErr = vbObjectError + 1048 + lR
Select Case lR
Case 0
lErr = 7: sErr = "Out of memory"
Case ERROR_FILE_NOT_FOUND
lErr = 53: sErr = "File not found"
Case ERROR_PATH_NOT_FOUND
lErr = 76: sErr = "Path not found"
Case ERROR_BAD_FORMAT
sErr = "The executable file is invalid or corrupt"
Case SE_ERR_ACCESSDENIED
lErr = 75: sErr = "Path/file access error"
Case SE_ERR_ASSOCINCOMPLETE
sErr = "This file type does not have a valid file association."
Case SE_ERR_DDEBUSY
lErr = 285: sErr = "The file could not be opened because the target application is busy. Please try again in a moment."
Case SE_ERR_DDEFAIL
lErr = 285: sErr = "The file could not be opened because the DDE transaction failed. Please try again in a moment."
Case SE_ERR_DDETIMEOUT
lErr = 286: sErr = "The file could not be opened due to time out. Please try again in a moment."
Case SE_ERR_DLLNOTFOUND
lErr = 48: sErr = "The specified dynamic-link library was not found."
Case SE_ERR_FNF
lErr = 53: sErr = "File not found"
Case SE_ERR_NOASSOC
sErr = "No application is associated with this file type."
Case SE_ERR_OOM
lErr = 7: sErr = "Out of memory"
Case SE_ERR_PNF
lErr = 76: sErr = "Path not found"
Case SE_ERR_SHARE
lErr = 75: sErr = "A sharing violation occurred."
Case Else
sErr = "An error occurred occurred whilst trying to open or print the selected file."
End Select

Err.Raise lErr, , App.EXEName & ".GShell", sErr
ShellEx = False
End If

End Function
</code>


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 622
27 953
271 709
640
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next