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


objWord stänger för tidigt?

Postades av 2001-02-09 08:30:00 - Daniel Glantz, i forum asp - allmänt, Tråden har 12 Kommentarer och lästs av 937 personer

Hej skulle gärna vilja få lite hjälp till det jag ser som ett jätteproblem! Har ett litet script som skriver ut ett Word dokument, problemet är att scriptet stänger Word innan utskriften är klar. Om jag tar bort "objWord.Quit" så ligger Word kvar och körs i bakgrunden! Tacksam för all hjälp!

Dim strDocPath, bolPrintDoc, objWord

strDocPath = Request.QueryString ("FileName")

If strDocPath > "" Then
Set objWord = CreateObject ("Word.Application")
objWord.Visible = FALSE
objWord.Documents.Open strDocPath

'If bolPrintDoc = "PrintDoc" Then
objWord.PrintOut
Response.Write "Ditt dokument skrivs nu ut...<P>"
Response.Write " Tillbaka "


objWord.Quit
Set objWord = Nothing
End if




Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-09 09:47:00 - Stefan Ghose

Testa att lägg end if över objWord.Quit och Set objWord = Nothing.




Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-09 10:19:00 - Daniel Glantz

Samma resultat där, stänger direkt.


Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-09 12:54:00 - Andreas Hillqvist

Istället för att använda words objekten kan du kapsla ett anrop till ShellExecuteEx i en activX dll.

Här är exempel:
* Skapa ett ActivX dll Projekt
* Byt Namn på Projektet till APIHelper
* Byt namn på class1 till ShellExecuteEx
* Klistra in följande kod i ShellExecuteEx Classen och kompilera den till en dll

Option Explicit

Private Const SW_HIDE = 0
Private Const SW_MAXIMIZE = 3
Private Const SW_MINIMIZE = 6
Private Const SW_RESTORE = 9
Private Const SW_SHOW = 5
Private Const SW_SHOWDEFAULT = 10
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_SHOWNOACTIVATE = 4
Private Const SW_SHOWNORMAL = 1

Private Const SE_ERR_FNF = 2
Private Const SE_ERR_PNF = 3
Private Const SE_ERR_ACCESSDENIED = 5
Private Const SE_ERR_OOM = 8
Private Const SE_ERR_DLLNOTFOUND = 32
Private Const SE_ERR_SHARE = 26
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_NOASSOC = 31

Private Const SEE_MASK_CLASSKEY = &H3
Private Const SEE_MASK_CLASSNAME = &H1
Private Const SEE_MASK_CONNECTNETDRV = &H80
Private Const SEE_MASK_DOENVSUBST = &H200
Private Const SEE_MASK_FLAG_DDEWAIT = &H100
Private Const SEE_MASK_FLAG_NO_UI = &H400
Private Const SEE_MASK_HOTKEY = &H20
Private Const SEE_MASK_ICON = &H10
Private Const SEE_MASK_IDLIST = &H4
Private Const SEE_MASK_INVOKEIDLIST = &HC
Private Const SEE_MASK_NOCLOSEPROCESS = &H40


Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
' Optional fields
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type

Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExA" (lpExecInfo As SHELLEXECUTEINFO) As Long

Public Function PrintFile(ByVal FileName As String, Optional ByVal Directory As String) As Boolean
Dim lReturn As Long
Dim lpExecInfo As SHELLEXECUTEINFO
With lpExecInfo
.cbSize = Len(lpExecInfo)
.fMask = SEE_MASK_FLAG_NO_UI
.hwnd = 0&
.lpVerb = "print"
.lpFile = FileName
.lpDirectory = Directory
.nShow = SW_HIDE
End With

lReturn = ShellExecuteEx(lpExecInfo)

Select Case lpExecInfo.hInstApp
Case SE_ERR_FNF
Err.Raise vbObjectError + SE_ERR_FNF, "PrintFile()", "File not found."
Case SE_ERR_PNF
Err.Raise vbObjectError + SE_ERR_PNF, "PrintFile()", "'Path not found."
Case SE_ERR_ACCESSDENIED
Err.Raise vbObjectError + SE_ERR_ACCESSDENIED, "PrintFile()", "Access denied."
Case SE_ERR_OOM
Err.Raise vbObjectError + SE_ERR_OOM, "PrintFile()", "Out of memory."
Case SE_ERR_DLLNOTFOUND
Err.Raise vbObjectError + SE_ERR_DLLNOTFOUND, "PrintFile()", "Dynamic-link library not found."
Case SE_ERR_SHARE
Err.Raise vbObjectError + SE_ERR_SHARE, "PrintFile()", "Cannot share an open file."
Case SE_ERR_ASSOCINCOMPLETE
Err.Raise vbObjectError + SE_ERR_ASSOCINCOMPLETE, "PrintFile()", "File association information not complete."
Case SE_ERR_DDETIMEOUT
Err.Raise vbObjectError + SE_ERR_DDETIMEOUT, "PrintFile()", "DDE operation timed out."
Case SE_ERR_DDEFAIL
Err.Raise vbObjectError + SE_ERR_DDEFAIL, "PrintFile()", "DDE operation failed."
Case SE_ERR_DDEBUSY
Err.Raise vbObjectError + SE_ERR_DDEBUSY, "PrintFile()", "DDE operation is busy."
Case SE_ERR_NOASSOC
Err.Raise vbObjectError + SE_ERR_NOASSOC, "PrintFile()", "File association not available."
Case Is > 32
PrintFile = True
Case Else
PrintFile = False
End Select

End Function



Använda den från ASP:
<%
Dim Shell
Set Shell = Server.CreateObject("APIHelper.ShellExecuteEx")
If Shell.PrintFile(FileName) Then
Response.Write "Dokument har skrivits ut!"
Else
Response.Write "Dokument har ej skrivits ut!"
End If
%>


Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-12 08:47:00 - Daniel Glantz

Tack för inlägget, jag får inte det här till att fungera i heller. Den säger att dokumentet har skrivits ut men det har det inte! Den startar Word i bakgrunden men samma problem igen, den stänger aldrig ner utan startar en ny Word varje gång man vill skriva ut. Allting ligger i bakgrunden och körs vilket syns om man kollar vilkar processer som körs på datorn. Jag vet inte om jag har implementerat ASP koden rätt men jag har provat diverse sätt.


Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-12 10:55:00 - Andreas Hillqvist

Jag kör iofs win 2000 och office 2000. Kan bero på det.
Annars kan du prova att öppna en word session manuelt.
Den bör då använda sig av den. Och inte öppna och stänga word.

Vilka rättigheterna har internet kontot? Kan ju vara så att det inte får lov att skriva ut.
Eventuellt kan lokala inställningar för internet kontot inte var konfigurerade eller felaktiga.


Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-12 11:33:00 - Daniel Glantz

Jo det är så att den öppnar Word nu, men utan något dokument! Vet inte om den inte får in något filnamn eller vad som är felet? Använder jag koden som jag hade från början fungerar det, så Querystringen fungerar väl som den ska!

Koden ser ut så här för tillfället:

<% Dim FileName
FileName = Request.QueryString ("FileName")

%>
<%
Dim Shell
Set Shell = Server.CreateObject("APIHelper.ShellExecuteEx")
If Shell.PrintFile(FileName) Then
Response.Write "Dokument har skrivits ut!"
Else
Response.Write "Dokument har ej skrivits ut!"
End if
%>


Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-12 11:36:00 - Andreas Hillqvist

ShellExecute är nog ett dålig lösning. Ber om ursäkt för att jag föreslog den. Den skapar en process, använder dde eller argument.

Alternativ lösning kan ju vara att använda en fil eller databas med en lista över dokument som skall skrivas ut. Och låta ett separat program läsa fil eller databas och skriva ut dokumenten.
Då slipper du belasta IIS med att öppna, skriva ut och stänga word.
Nackdelen är att du inte får dina operationer direkt bekräftade.
Kan ju istället visa en lista över utskrifts jobb. Med en flagga vilka som är genomförda, skrivs ut eller ej är behandlade och om de lyckades eller ej.



Svara

Sv: objWord stänger för tidigt?

Postades av 2001-02-12 11:57:00 - Daniel Glantz

Okej, tack för all hjälp i alla fall!


Svara

Lösning?

Postades av 2001-02-16 11:24:00 - Mikael Kratz

Hej!

Jag lider med dig. Har själv setat med samma problem i veckor. Kom av en slump på att man kan styra om koden ska exekveras syncront eller asyncront och detta beror på hur man öppnar dokumentet. Testa följande:

Dim appWD As Word.Application
Dim DocToPrint As Document

Set appWD = GetObject(, "Word.Application")
Set DocToPrint = appWD.Documents.Add("C:\test.doc")

DocToPrint.PrintOut False 'Här avgör du om det ska vara syncront eller asyncront (Normalt True om inget annat anges)

DocToPrint.Close
appWD.Quit

Set DocToPrint = Nothing
Set appWD= Nothing


Om du öppnar med add-metoden går det att styra om koden ska rulla vidare eller vänta på att dokumentet är utskrivet. Detta borde även funka i skript om du bara anger object.

mvh
Micke


Svara

Sv: Lösning?

Postades av 2001-02-16 13:26:00 - Daniel Glantz

Tack för inlägget ska prova det! Har dock löst det genom att man i Word går in Alternativ - Utskrift - och avmarkerar "Bakgrundsutskrift". Då fungerar allt perfekt och Word stänger sig efter att dokumentet har skrivits ut.


Svara

Nyligen

  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online

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 570 846
27 961
271 763
2 475
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