[Windows Mobile Software Development] RoryB:
SDAutorun replacement without SDAutorun.exe

Information will be added about this in the future.

Some more changes to my method I thought I would share.

Run the items in SDConfig.txt without using SDAutorun. I do not have any tsk to run, but it would work the same. I put copy first since some EXECs like xcopy need to be copied before execution.

###############################
# SDConfig without SDAutoRun
###############################
; Wait 10 seconds to start to be sure SDCard can be accessed
Sleep( 10000 )
If( FileExists( "\Storage Card\SDConfig.txt" ))
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
While( IsEmpty( xcount ) = FALSE )
If( SubStr( xcount, 1, 5 ) eq "CPY1:" )
xcopy1 = SubStr( xcount, 6 )
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
If( SubStr( xcount, 1, 5 ) eq "CPY2:" )
xcopy2 = SubStr( xcount, 6 )
Copy( xcopy1, xcopy2, TRUE )
EndIf
ElseIf( SubStr( xcount, 1, 5 ) eq "CAB: " )
RunWait( "\windows\wceload.exe", "/nodelete /silent " & [COLOR=blue]"""" & [/COLOR]SubStr( xcount, 6 ) [COLOR=blue]& """" [/COLOR])
While( ProcExists ( "wceload.exe" ))
sleep( 3000 )
endwhile
Else[COLOR=red]if[/COLOR]( SubStr( xcount, 1, 5 ) eq "EXEC:" )
If( SubStr( xcount, -[COLOR=red]3[/COLOR] ) [COLOR=red]eq[/COLOR] [COLOR=black]"[/COLOR][COLOR=red]exe[/COLOR][COLOR=black]"[/COLOR] )
Run( SubStr( xcount, 6 ))
EndIf
[COLOR=red] ElseIf( SubStr( xcount, 1, 5 ) eq "XML: " )[/COLOR]
[COLOR=red] RunWait( "\windows\TaskMgr.exe", "/provxml " & SubStr( xcount, 6 ))[/COLOR]
[COLOR=red] While( ProcExists ( "TaskMgr.exe" ))[/COLOR]
[COLOR=red] sleep( 3000 )[/COLOR]
[COLOR=red] endwhile[/COLOR]
[COLOR=red] ElseIf( SubStr( xcount, 1, 5 ) eq "TSK: " )[/COLOR]
[COLOR=red] RunWait( "\windows\cusTSK.exe", SubStr( xcount, 6 ))[/COLOR]
[COLOR=red] While( ProcExists ( "cusTSK.exe" ))[/COLOR]
[COLOR=red] sleep( 3000 )[/COLOR]
[COLOR=red] endwhile[/COLOR]
[COLOR=red]Else[/COLOR]
EndIf
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
EndWhile
EndIf

I have a mortscript I call user_C.mscr for some customizations that I used EXEC to run, but thought this way people could have multiple scripts.

If( DirExists( "\Storage Card\SDAUTO" ))
ForEach xscriptfile in Files( "\Storage Card\SDAUTO\*.mscr" )
CallScript( xscriptfile )
sleep( 3000 )
EndForEach
EndIf

Lastly, I have this final folder to hold cab files I want to install with user input. It also has a script to cleanup a few things from the cab install.

If( DirExists( "\Storage Card\SDAUTO\Final Files" ))
ForEach xcabfile in Files( "\Storage Card\SDAUTO\Final Files\*.cab" )
Runwait( "\Windows\wceload.exe", "/nodelete " & [COLOR=blue]"""" & [/COLOR]xcabfile [COLOR=blue]& """"[/COLOR] )
While( ProcExists ( "wceload.exe" ))
sleep( 3000 )
endwhile
EndForEach
ForEach xscriptfile in Files( "\Storage Card\SDAUTO\Final Files\*.mscr" )
CallScript( xscriptfile )
sleep( 3000 )
EndForEach
EndIf

I had to set config.txt to hide the overlay image and not lock the screen to allow seeing the messages and responding to them. Eventually I see this changing to have the first script copied to start up folder by an initflashfile and not even need AutoRun. Currently config.txt starts the mortscript and does nothing else.