Avatar billede osborne Nybegynder
24. februar 2007 - 16:08 Der er 6 kommentarer og
1 løsning

Fejl - komponenten kan ikke oprette objektet?

Hej VB eksperter,
Dette VBScript starter Adobe Photoshop, men jeg får følgende fejl umiddelbart derefter (jeg starter VBscriptet fra min Windows XP desktop hvorefter den åbner Photoshop).:

Linie: 12
Tegn: 1
Fejl: ActivX-komponenten kan ikke oprettet objektet: 'Photoshop.Document'
Kode: 800A01AD
Kilde: Der opstod en Microsoft VBScript-kørselsfejl

Sådan her ser koden ud. Nogen ide om hvad der kan være galt?


Sub DoResize()

'-- Mr. Ali: I created this code with Visual Basic V6
' 2006-02-24 Tilrettet

'Dim appRef As Photoshop.Application
DIM appRef
SET appRef = CreateObject("Photoshop.Application")

'Dim docRef2 As Photoshop.Document
DIM docRef2
SET docRef2 = CreateObject("Photoshop.Document")

Dim long_side
Dim short_side
Dim dpi
Dim nW
Dim nH
Dim proportion1
Dim proportion2
Dim newX
Dim newY

'dim fileName as string
DIM fileName
SET fileName = String

long_side = 583 ' Must be > 0
short_side = 0 ' You must leave this to 0 if you decide to assign a value to long_side variable.
dpi = 300 ' 72

Set appRef = CreateObject("Photoshop.Application")

' Set the ruler units.
'Dim strtRulerUnits As Photoshop.PsUnits
DIM strtRulerUnits
SET strtRulerUnits = "Photoshop.PsUnits"

' Set Photoshop dialogs option to not be displayed during automated execution
appRef.DisplayDialogs = psDisplayNoDialogs

' Set current ruler units in Preferences is pixels
strtRulerUnits = appRef.Preferences.RulerUnits
appRef.Preferences.RulerUnits = psPixels

'fileName = appRef.Path & "\Samples\Ranch House.jpg"
fileName = "C:\\temp\\AutoCrop_Eksperiment\\IMG_1819.jpg"

Set docRef2 = appRef.Open(fileName)
If appRef.Documents.Count > 0 Then
  Set docRef2 = appRef.ActiveDocument

' Initialise the fixed variables
  Set docRef2 = appRef.ActiveDocument
  nW = docRef2.Width
  nH = docRef2.Height
  If long_side = 0 Then
      'fit to short side
      If (nW > nH) Then
            proportion1 = short_side / nH
        Else
            proportion1 = short_side / nW
        End If
  ElseIf short_side = 0 Then
      ' fit to long side
        If (nW > nH) Then
            proportion1 = long_side / nW
        Else
            proportion1 = long_side / nH
        End If
    End If
  If (nW > nH) Then
      proportion1 = long_side / nW
      proportion2 = short_side / nH
  Else
      proportion1 = short_side / nW
      proportion2 = long_side / nH
  End If
  If (proportion1 >= proportion2) Then
      newX = proportion1 * nW
      newY = proportion1 * nH
  Else
      newX = proportion2 * nW
      newY = proportion2 * nH
  End If
  If (newX > nW) Then
      docRef2.ResizeImage newX, newY, dpi, bicubic
  Else
      docRef2.ResizeImage newX, newY, dpi, bicubic
  End If
Else
    MsgBox ("no image is active")
End If
End Sub

' Kald routinen
doResize()
Avatar billede softspot Forsker
24. februar 2007 - 16:48 #1
Umiddelbart lyder det som om komponenten ikke findes på maskinen eller at den aktuelle bruger ikke har rettigheder til at oprette komponenten.
Avatar billede osborne Nybegynder
24. februar 2007 - 21:19 #2
Hm .. det giver god mening. Kan være der er sket noget med metoderne til Photoshop objekterne fra version CS til CS2. Ser på det. Tak
Avatar billede softspot Forsker
24. februar 2007 - 21:32 #3
Ja, det er ikke usandsynligt at der er sket en udvikling af objekterne i Photoshops objekthierarki, men jeg synes dog det lyder lidt usandsynligt at de skulle ændre et så grundlæggende objekt som Application - det har længe været et godt sted at starte for mange Automation enabled programmer (f.eks. MS Office pakkerne).

Det kan dog være at du skal angive en version i din PROGID, f.eks. "Photoshop.Application.9" eller sådan noget. Du kan evt. tage på sightseeing i din registreringsdatabase og søge efter photoshop... det kan være det giver en idé til hvilket PROGID du skal benytte.
Avatar billede osborne Nybegynder
24. februar 2007 - 21:58 #4
ha ha .. på sightseeing i min registreringsdatabase, det udtryk havde jeg ikke hørt før :-) Det vil jeg gøre. Tak
Avatar billede osborne Nybegynder
24. marts 2007 - 14:44 #5
Jeg har lagt dette lidt på hylden .. og vil prøve senere med noget Javascript istedet (som er native for Photoshop). Men tak for hjælpen. Læg et svar så får du point.
Avatar billede softspot Forsker
24. marts 2007 - 20:17 #6
Ok, jamen, så får lige et svar :)
Avatar billede softspot Forsker
25. marts 2007 - 18:01 #7
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester