Newsgroup: it.comp.lang.visual-basic
Titolo: [XP + VB6] non funziona ?codice allegato

Salve,
ho sviluppato un piccolo prg in vb6+sp5 in win2000 che interagisce con
autocad,fin qui tutto Ok.
Ho cambiato pc e quest'ultimo ha win XP pro,ho reinstallato autocad ed 
ora non funziona più nulla nel senso che ,quando tento di passare dei
comandi ad autocad quuesti vengono ignorati.
L'errore è il "429,Il componente ActiveX non può creare l'oggetto"
Questo è il codice che funzionava,potete suggerirmi cosa fare?
Public Sub StartAutoCAD(Optional dwgName As String)
'***PASSO I COMANDI ALL'AMBIENTE AutoCAD***
On Error Resume Next
Dim RetVal
RetVal = Shell("acad.exe", vbMinimizedNoFocus)
Set objAcad = GetObject(, "AutoCAD.Application")
If Err Then
    Set objAcad = CreateObject("AutoCAD.Application")
    Err.Clear
End If
Set objDoc = objAcad.ActiveDocument
If objDoc.FullName <> dwgName And dwgName <> "" Then
    objDoc.Open dwgName
End If
objAcad.Visible = True
objDoc.SendCommand "_saveas " & vbCr & "c:\unzip\" &
UCase(Trim(DwgScelto)) & ".DWG" & vbCr
objDoc.SendCommand "_qsave" & vbCr
End Sub
Grazie mille
R.Zanni
PS
Oltre a questo ho notato che la shell non avvia più autocad se non metto
tutto più il percorso,come mai?,come posso risolvere?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Questo è il codice che funzionava,potete suggerirmi cosa fare?
Sembrerebbe un problema di installazione dei componenti ActiveX di 
Autocad, anche se non capisco come possa darti errore dato che c'è l'On 
Error Resume Next.
Prova a sostituire il tuo codice
 > Dim RetVal
 > RetVal = Shell("acad.exe", vbMinimizedNoFocus)
 >
 > Set objAcad = GetObject(, "AutoCAD.Application")
 > If Err Then
 >     Set objAcad = CreateObject("AutoCAD.Application")
 >     Err.Clear
 > End If
Prova includendo tra i riferimenti la libreria di autocad in modo da 
poter avere l'associazione anticipata.
In questo modo dovresti poter fare qualcosa del tipo (non conosco autocad)
' Tra le var. globali
Dim objAcad As Autocad.Application
' dove instanzi l'ACad
if objAcad Is Nothing Then
	Set objAcad = New Autocad.Application
End if
Ciao
-- 
Math Parser : 
http://www.neodatatype.net
FlowChart   : 
http://www.neodatatype.net/dump/flowchart/dir.asp
Sito Comune : 
http://www.it-lang-vb.net

Grazie,
infatti ho provato a "riparare" l'installazione di autocad ed ora
"sembra" funzionare".
Ho perň un secondo problema ,penso dato da win?,path,etc?.
Ho la seguente procedura per avviare autocad passandogli un
 percorso ed un file,fino al pc precedente tutto ok,adesso non avvia piů
un tubo.
Hai qualche idea?
Pezzo di codice
....
ElseIf Parametro = "#108" Then
Dim Handle As Long
Handle = FindWindowWild("AutoCAD*", False)
If Handle = 0 Then
    iRet = ShellExecute(Me.hwnd, vbNullString, App.Path & "\Acat6.dwt",
vbNullString, App.Path, 3) 'Avvio AutoCAD
Else
    MsgBox "AutoCAD already running,please close all AutoCAD session
then start AutoCATALOGO", vbCritical, "Avviso"
End If
...
Grazie nuovamente
R.Zanni


 ElseIf Parametro = "#108" Then
si verifica questa clausola ?
-- 
-Gigio@Work(?)-

 vbNullString, App.Path, 3) 'Avvio AutoCAD
La FindWindow accetta parametri jolly?
Non lo sapevo.
Comunque anche qui credo che tu possa usare la CreateObject.
Se cerchi in MSDN la pagina di GetObject e CreateObject c'č proprio 
l'esempio di come avviare Autocad con un file particolare.
