Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto urgentissimo! Creazione autorun.exe da vb

Ciao a tutti,
qualcuno di voi sa come aiutarmi per la creazione di un autorun.exe da
mettere su un CD sviluppandolo con VB5: deve far partire ie4.0 e la pagina
default.htm, nel caso sulla macchina non fosse installato ie4.0 deve mandare
in esecuzione il setup di ie4.0, contenuto sul CD stesso.
Ringrazio chiunque riuscira' ad aiutarmi, sono proprio disperata!

 wrote in message
7k17tj$a0v$1...@serv1.iunet.it...

Per l'autorun, basta che sulla directory radice ci sia un file di testo che
si chiama "autorun.inf" all'interno del quale deve comparire la sezione:
[autorun]
open = nome del prog completo di path (puo essere anche un .bat !)
icon = nome file dell'icona (non obbligatoria)


wrote:


Grazie sia a Samuele che a Alkondor, pero' vorrei proprio creare
l'Autorun.exe, sull'Autorun.inf non ho problemi.
Chi e' in grado di aiutarmi?


Ringrazio chiunque riuscira' ad aiutarmi, sono proprio disperata!
Se non usi Ocx e ti limiti alla toolbox standard è sufficiente creare
l'eseguibile e copiare nella dir da cui lanci l'exe il file Msvbvm50.dll.
Nel tuo caso mi sembra che dovresti mettere in root del CD i seguenti file:
- Msvbvm50.dll
- TuoProg.exe
- TuoProg.ico (facoltativo ;-)))
- autorun.inf
Inoltre avrai ovviamente la dir Explorer.
Da TuoProg.exe dovrai chiamare ie4setup.exe. Per farlo puoi usare la
seguente sub:
#ExecCmd
Public Sub ExecCmd(cmdline$)
    Dim proc As PROCESS_INFORMATION
    Dim start As STARTUPINFO
    Dim ret As Long
    start.cb = Len(start) ' Shell the Application:
    ret = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS,
0&, 0&, start, proc)
    ' Wait for the shelled application to finish:
    ret = WaitForSingleObject(proc.hProcess, INFINITE)
    ret = CloseHandle(proc.hProcess)
End Sub
#EndExecCmd
Per chiamare la sub dovrai usare qualcosa come :
ExecCmd Percorso & "Explorer\packages\ie4setup.exe"
Dimenticavo le dichiarazioni :
#Declarations
Option Explicit
'Windows API/Global Declarations for :ExecCmd
Private Type STARTUPINFO
       cb As Long
       lpReserved As String
       lpDesktop As String
       lpTitle As String
       dwX As Long
       dwY As Long
       dwXSize As Long
       dwYSize As Long
       dwXCountChars As Long
       dwYCountChars As Long
       dwFillAttribute As Long
       dwFlags As Long
       wShowWindow As Integer
       cbReserved2 As Integer
       lpReserved2 As Long
       hStdInput As Long
       hStdOutput As Long
       hStdError As Long
End Type
Private Type PROCESS_INFORMATION
       hProcess As Long
       hThread As Long
       dwProcessID As Long
       dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle
As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal
lpApplicationName As Long, ByVal lpCommandLine As String, ByVal
lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal
bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment
As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO,
lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
#EndDeclarations
# autorun.inf : (anche se forse non ti serve)
[autorun]
OPEN=TuoProg.exe
ICON=TuoProg.ICO
Ciao e scusa se mi sono dilungato troppo.