Content Type
Profiles
Forums
Events
Posts posted by MHz
-
-
OemFilesPath="%CDROM%\$oem$" ;OemFilesPath, as some of you know, in win2k and above there's a bug that causes the $OEM$ folder to not be copied. Because of this the $OEM$ folder might need to be under the i386 folder, or parallel to the i386 folder. Using this command makes the bug mute, since you're telling setup where the $OEM$ folder is.
Hi darksimoon,
The behavior is documented by Microsoft so it is by design.
The %CDROM% variable may not work in your answer file. I would just try using OemFilesPath="\$OEM$".
0 -
This example is based off the beta installer so text maybe different but same conditions should apply.
#RequireAdmin
$title = 'eBoostr 3.0 (BETA) Setup'
Run("eBoostr.exe")
; handle the language window if appears and choose english
AdlibEnable('_Language')
WinWait($title, 'Welcome to the eBoostr')
ControlClick($title, 'Welcome to the eBoostr', '&Next >')
; disable use of Adlib function
AdlibDisable()
WinWait($title, 'License Agreement')
ControlClick($title, 'License Agreement', 'I &Agree')
; you can finish the code
Exit
Func _Language()
If WinExists('Installer Language', 'Please select a language') Then
ControlCommand('Installer Language', 'Please select a language', 'ComboBox1', 'SelectString', 'English')
If StringInStr(WinGetText('Installer Language', 'Please select a language'), 'English') Then
ControlClick('Installer Language', 'Please select a language', 'OK')
EndIf
EndIf
EndFuncI used #RequireAdmin as UAC in Vista requires it to allow automation to happen. The script is incomplete but it handles the 1st 3 windows and you can complete it if you wish.
0 -
Hi yocarim
Your code seems OK up to the ControlClick function. The parameters of ControlClick is shown below and I will describe the parameters of concern.
ControlClick ( "title", "text", controlID [, button [, clicks [, x [, y ]]]] )
You seem to have the "title" and "text" parameters correct. The controlID can be the text of the control such as being "OK", or can be the ClassnameNN such as being "Button1" (ensure text case is correct) or if needed advanced uses such as class, handle and so on. The "button" parameter can only be "", "left", "middle", "right", "primary", "main", "secondary" or "menu" thus your value used seems incorrect.
Perhaps try this
ControlClick($title, "Please select a language.", "OK")
or try this
ControlClick($title, "Please select a language.", "Button1")
I would not use the optional parameters unless you absolutely need to use them.
0 -
Do Sleep(200)
Until ControlCommand($title, , 'Button2', 'IsEnabled', '')
ControlClick($title, "", "[CLASS:Button; INSTANCE:2]")
Put the Do keyword on a line of it's own to avoid the error condition.
Do
Sleep(200)
Until ControlCommand($title, , 'Button2', 'IsEnabled', '')
ControlClick($title, "", "[CLASS:Button; INSTANCE:2]")You can use [ CODE ] ... [/ CODE ] tags (without spaces in the tags) to post code segments in this forum.
0 -
I made the code on 1 line before & I got error messages.
Is there a way to make it all on 1 line?
Controlclick() normally works with an inactive window so this may do the task as being 1 line.
If WinWait("setup") And ControlClick("setup", "", "[CLASS:Button; INSTANCE:##]") Then WinWaitClose("setup")
0 -
So I try it... the install it fails. So I change the switch to /passive to see what is going on. Ghost takes about a min to install. While it installs, other addons will start there install which makes nortons fail. While trying the addon by itself, Windows will not wait for the program to finish.
Back to 1st post as possible easy fix. If this is using CMD then you may try using "Start /Wait" to help with wait though a spawned process from msiexec maybe causing it to return early.
I am sure I will ask you TONS of questions. I thank you so very much for your help. So I am guessing the Autoitmicrogenerator is the program I need to start out with learning??AutoItMacrogenerator is the easy option to create an automated installation script. You just run the program located in the Scite4AutoIt3 install at "C:\Program Files\AutoIt3\SciTE\AutoItMacroGenerator". I prefer to run it standalone rather then thrtough the editor so I can see lines added instantly. Click the red button to start recording, click the title of each window shown during installation and then click the controls (buttons, etc) needed. You should then get a quick and basic script for installation after completing the whole process of recording.
I tried the microgenerator program, using nortons ghost setup.exe. I let it open and run and really ended up with nothing in the box but a single line. I have the program set up to install "passive" So I can see the progress bar. Will look around and see if I did something wrong with the generator.Unless the installer is Java or HTML based then I would expect the window and controls to be seen and recorded. Ensure that the recorder is in fact running.
I also tried autoit screen recorder, Now that seemed to give me a bit more to work with. Here is the script I ended up with that. I put the Exit in myself.Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
Run('C:\Documents and Settings\Administrator\Desktop\ghost 2003\setup.exe')
WinWait("Information","To help ensure compa")
If Not WinActive("Information","To help ensure compa") Then WinActivate("Information","To help ensure compa")
WinWaitActive("Information","To help ensure compa")
Send("{ENTER}")
Exit
The screen recorder can be used though it is not what I would refer as using functions suitable for automated installations. The screen recorder is more suitable for general desktop automation. The above script seems incomplete.
Now it seems to me after the send command is sent I need to put in a line for a "winwaitdelay" to allow the program to install. I will stop here untilYou get a bit of time to help. I may be going down the wrong path and Need to work more with the autoitmicrogenerator to compile a more workable script. Will wait on you.
"winwaitdelay" is an option to wait time before interaction from the next line of code. It is not a concern to use normally.
I am also starting out with the tutorials. Will hopefully take a new step every day. Today I did the "hello world" script. I messed around for a min and kinda made a perverted one for the girlfriend. Had her click on it and the pop up box displayed a funny adult type message. We both got a tickle, and she was rather impressed I did that.lol, I accept humor.
Seen a post that someone suggested learning the manual stuff to better understand the automated stuff and I kinda agree. Its starting to make sense.Yes, I prefer manual by using AutoIt Info Tool to gather information from the windows though I may sometimes use AutoItMacrogenerator as a lazy method. Doing it manually will help you learn. Using AutoItMacrogenerator is an easy option to begin with is why I mentioned it.
So if you can get a good start with the script then I can try to help you when you have problems. If Ghost installs fine using switches then you can try using ProcessWait() and ProcessWaitClose() on the spawned process to ensure wait time until end of installation so automation can be minimized.
0 -
If you put the effort in getting the ID3 tags correct, then programs like MP3Tag can rename and organize the files programmatically based on the ID3 information. This allows you to change the filenames in seconds rather then doing tedious manual handling to do the same objective. Further renaming from an example of "%artist% - %title%" to something like "%number% - %title%" is easy and quick based on correct ID3 tags.
0 -
Hi tym,
The code displayed looks like template code generated from CMenu or SendToA3x. There is a help file included with these programs with a installation script example provided. You are going to need to use the "AutoIt Info Tool" supplied with AutoIt3 installation to get window titles, window text, control identification classes and what ever else is needed. You can also use AutoItMacrogenerator which is perhaps already supplied else you can get with an installation of Scite4AutoIt3 which contains it and can be used to generate an automated installation script with the values mentioned above filled in.
This is a script I have in use from a template created by SendToA3X. The principle is the same as adding in needed info though I placed the functions within a separate include script.
#region - VobSub install script - (Automated with WinWait functions)
#include <Common_Functions.au3>
Opt('TrayIconDebug', 1)
Break(False)
; Installer.
$executable = 'VobSub 2.23.exe'
; Default group folder in startmenu.
$group = 'VobSub'
; Installation folder in Program Files.
$directory = ''
; Run the installer.
$pid = _Automated()
$title = 'VobSub 2.23 Setup'
If WinWait('Installer Language', 'Please select a language', 60) Then
ControlClick('Installer Language', 'Please select a language', 'OK')
WinWait($title, 'Welcome to the VobSub Setup')
ControlClick($title, 'Welcome to the VobSub Setup', '&Next >')
WinWait($title, 'Choose Components')
ControlClick($title, 'Choose Components', '&Next >')
WinWait($title, 'Select the folder to install VobSub')
ControlClick($title, 'Select the folder to install VobSub', '&Install')
WinWait($title, 'Installation Complete')
ControlClick($title, 'Installation Complete', '&Close')
Else
_Abort()
EndIf
ProcessWaitClose($pid)
; Remove shortcuts.
If _Programs('VobSub Configure.lnk') Then
If FileMove($group & '\DirectVobSub Configure.lnk', 'Audio-Video\', 9) _
And FileMove($group & '\VobSub Configure.lnk', 'Audio-Video\', 9) Then
DirRemove($group, 1)
EndIf
EndIf
Exit
#endregionAsk if you need more help.
0 -
Welcome to the forum RandomClown,
How would I set 2 conditions in a While statement?- There is the i++ thing something like that I saw in the very useful help file
- Where is the &&?
AutoIt supports only the operators under "Language Reference" catagory in the help file supplied within the installation of AutoIt3.
I want to set a While() with these conditions:- Run at most 10 times
- Check if "Some Window" is up
You may use as Nick White displays or you could use a For...Next loop that is suitable for limited looping by using a counter variable. Using AdlibEnable() function may also be suitable for detection in your script. The choice is for you to make. I made example code below.
; title of test window
$title = 'Target Window'
; create a window to test with
GUICreate($title)
GUISetState()
; run the _Adlib() function every 2 seconds to check for the test window
AdlibEnable('_Adlib', 2000)
Sleep(2000)
; activate the test window if needed
If Not WinActive($title) Then
WinActivate($title)
EndIf
; loop 10 times
For $i = 1 To 10
; check if test window is active
If WinActive($title) Then
; disable the _Adlib() function check
AdlibDisable()
; show the result
SplashTextOn('For...Next Loop', 'Window is active', 200, 50)
Sleep(2000)
SplashOff()
; enable the _Adlib() function check
AdlibEnable('_Adlib', 2000)
; exit the For...Next Loop
ExitLoop
EndIf
Sleep(500)
Next
Sleep(5000)
Exit
Func _Adlib()
; Adlib function to show result while the main code is executing
SplashTextOn('_Adlib() function', 'Window is active', 200, 50)
Sleep(1000)
SplashOff()
Sleep(250)
EndFunc...hmm I just saw this right now: "ExitLoop".I could do an If("Some Window" is up){ExitLoop} [of course in AutoIT language], but I want to cut off 3 lines from the tiny check script if possible.
Single line If...Then... are allowed though your mention of removing 3 lines is beyond my understanding to answer with the information supplied.
0 -
can this be installed via a run once commanded
You can use RunOnceEx or GuiRunOnce to install those applications when the services mentioned are running. See the Unattended guide for more information on how to do this.
0 -
Does anyone see why the components aren't being removed, or any other problems with it?
removed? they wont be removed but they shouldnt get installed when u install your windows from a fresh install
AFAIK, removing the component files from the Windows setup files was not mentioned.
In Windows XP, if you go to the "Add or Remove Programs" applet in control panel and use the "Add/Remove Windows Components" then you may understand the terminology of "remove" that Microsoft and Bolgan refers to.
Perhaps you were mistaken by the different meanings that remove may have. Sorry if I seem critical in my correction but I considered worth a mention.
@Bolgan
I have had same issue when using "UnattendMode=ProvideDefault" with a components section in Winnt.sif. The components window does not show during setup with the previous settings. You are perhaps better to omit the components section with using ProvideDefault or use another UnattendMode setting.
0 -
...
How could I create a context menu option to say "Move To R:\Full CD's " but open that particular folder so I could then browse to the artist folder and move the file to there?
Hi Balders and welcome to MSFN.
Thanks for the mention of appreciation.
The editor and shell extension is not my property just for clarification. I make use of them as per conditions of the Revenger inc. license supplied with CMenuExtender. The CMenu.exe and some of the other support files is what I created.
The copy to folder and move to folder preset options seem to want a static path to send to. I would recommend a script to do the custom operation that you want. I made a AutoIt3 script which when compiled may do what you have described as a custom starting path for the folder dialog.
; usage: script.exe copy|move source [ destination ]
; CMenu settings:
; Within editor, select New Item -> Custom command.
; Add suitable caption, browse for this compiled script and then
; add into the Commandline 'copy "custom path\to\copy\to"'.
; you can just use copy or move without any
; other parameter for default destination search.
; set the append file checkbox and then click OK button to accept.
Global $action, $destination
Switch $CMDLINE[0]
Case 2
_CheckAction()
$destination = FileSelectFolder($action & ' source to', '')
If Not @error And $destination <> '' Then
$source = $CMDLINE[2]
_PerformAction()
EndIf
Case 3
_CheckAction()
$destination = FileSelectFolder($action & ' source to', '', Default, $CMDLINE[2])
If Not @error And $destination <> '' Then
$source = $CMDLINE[3]
_PerformAction()
EndIf
Case Else
_HelpMsgBox()
EndSwitch
Exit
Func _CheckAction()
; set $action to copy or move
Switch $CMDLINE[1]
Case 'copy'
$action = 'copy'
Case 'move'
$action = 'move'
Case Else
_HelpMsgBox()
EndSwitch
EndFunc
Func _HelpMsgBox()
; show a Msgbox with helpful details
Local $text = _
$CMDLINE[0] & ' parameters passed. 2 or 3 parameters required.' & @CRLF & @CRLF & _
'Command used:' & @CRLF & _
$CMDLINERAW & @CRLF & @CRLF & _
'Usage:' & @CRLF & _
'"' & @ScriptName & '" copy|move source [destination]' & @CRLF & @CRLF & _
'Description:' & @CRLF & _
'Use "copy" or "move" as 1st parameter.' & @CRLF & _
'Use a valid source file or folder as 2nd parameter.' & @CRLF & _
'Use an optional, valid destination folder path as 3rd parameter.'
MsgBox(0, Default, $text)
Exit
EndFunc
Func _PerformAction()
; call the copy or move function dependant on $action
If $action = 'copy' Then
_Copy($source, $destination)
Else
_Move($source, $destination)
EndIf
EndFunc
Func _Copy($source, $destination)
; copy file or folder
Local $oShellApp = ObjCreate("shell.application")
If Not @error Then
$oShellApp.NameSpace($destination).CopyHere($source)
EndIf
EndFunc
Func _Move($source, $destination)
; move file or folder
Local $oShellApp = ObjCreate("shell.application")
If Not @error Then
$oShellApp.NameSpace($destination).MoveHere($source)
EndIf
EndFuncSample of settings window
I would recommend to test it with some temporary test files to ensure it works ok before doing your required tasks. You may need AutoIt3 to compile the script into an executable. You can get AutoIt3 from here.
Edit:
The above script may not handle multiple marked files/folders as the context menu extension handles them differently. I maybe able to adapt the script to do multiple files if needed.
0 -
-
It seems to have gotten caught in a loop where it tries to keep opening WordWeb.
Sorry. My results are different for some reason.
This will use the Ctrl+Alt+w hotkey
; path to webword directory
$ww_path = @ProgramFilesDir & '\WordWeb'
; WordWeb NoTray executable
$exe_notray = 'wwnotray.exe'
; WordWeb Tray executable
$exe_tray = 'wweb32.exe'
; main window title
$title = '[CLASS:TTHeDi]'
Select
Case WinActive($title)
; nothing to do
Exit
Case ProcessExists($exe_notray) And Not WinActive($title)
; restore and activate the window
WinSetState($title, '', @SW_RESTORE)
WinActivate($title)
Case ProcessExists($exe_tray) And Not WinActive($title)
; run tray exe to activate the window
_RunWordWeb($exe_tray)
Case Else
; no process running so choose $exe_notray or $exe_tray to run
_RunWordWeb($exe_tray)
EndSelect
Exit
Func _RunWordWeb($file)
; check to ensure the file to run is available, else return if not
If Not FileExists($ww_path & '\' & $file) Or $file = '' Then
Return SetError(1)
EndIf
Switch $file
Case $exe_notray
; run no tray exe to show window
Run('"' & $ww_path & '\' & $exe_notray & '"')
If Not @error Then
; wait for the window and then activate it
WinWait($title, '', 5)
WinActivate($title)
EndIf
Case $exe_tray
; run tray exe
Run('"' & $ww_path & '\' & $exe_tray & '"')
If Not @error Then
; wait for hidden tray icon window
WinWait('WordWeb Tray Icon', '', 5)
Sleep(500)
; if the window is not active, then use the hotkey
If Not WinActive($title) Then
WinActivate($title)
Send('^!w')
EndIf
EndIf
EndSwitch
Sleep(500)
; another attempt to activate the window if needed
If Not WinActive($title) Then
WinActivate($title)
EndIf
EndFuncIf you wish, you can run the no tray executable instead by changing the parameter of _RunWordWeb() in the Case Else part which shows a window which behave like a normal window.
before:
Case Else
; no process running so choose $exe_notray or $exe_tray to run
_RunWordWeb($exe_tray)
EndSelectafter:
Case Else
; no process running so choose $exe_notray or $exe_tray to run
_RunWordWeb($exe_notray)
EndSelect0 -
You have a tray executable and a no tray executable and also window states to consider. I chose the cover all known scenarios.
; path to webword directory
$ww_path = @ProgramFilesDir & '\WordWeb'
; WordWeb NoTray executable
$exe_notray = 'wwnotray.exe'
; WordWeb Tray executable
$exe_tray = 'wweb32.exe'
; main window title
$title = '[CLASS:TTHeDi]'
Select
Case WinActive($title)
; nothing to do
Exit
Case ProcessExists($exe_notray) And Not WinActive($title)
; restore and activate the window
WinSetState($title, '', @SW_RESTORE)
WinActivate($title)
Case ProcessExists($exe_tray) And Not WinActive($title)
; run tray exe to activate the window
_RunWordWeb($exe_tray)
Case Else
; no process running so choose $exe_notray or $exe_tray to run
_RunWordWeb($exe_tray)
EndSelect
Exit
Func _RunWordWeb($file)
; check to ensure the file to run is available, else return if not
If Not FileExists($ww_path & '\' & $file) Or $file = '' Then
Return SetError(1)
EndIf
Switch $file
Case $exe_notray
; run no tray exe to show window
Run('"' & $ww_path & '\' & $exe_notray & '"')
; wait for the window and then activate it
WinWait($title, '', 5)
WinActivate($title)
Case $exe_tray
; run instances of tray exe until the window is active
Do
Run('"' & $ww_path & '\' & $exe_tray & '"')
If Not ProcessExists($exe_tray) Then
; something is incorrect so return from this function
Return SetError(2)
Else
Sleep(250)
; activate the window
WinActivate($title)
EndIf
Until WinActive($title)
EndSwitch
EndFuncStarting a 2nd instance of the tray process seems to bring up the window so I chose that idea rather then the hotkey idea.
Note that the keyword "Else" likes it's own line in AutoIt3 except for "Case Else" as to your code error. Also "End If" needs to be "EndIf".
0 -
Please look at these topics:
How do i hide the install window in autoit
In the initial code above, Send() requires an active and visible window to send to so I would at least expect WinWaitActive() to be used. WinWait() only waits for the window to appear. Look at WinWait(), WinActivate() and WinWaitActive() when using Send() or Mouse*() functions.
You can hide an automated installation with AutoIt depending on various conditions that the certain installer allows. You may need to look at using WinWait() with the Control*() functions to achieve this. WinMove() and WinSetTrans() may be worth a look at using. Just about anything is possible with using AutoIt as you just need to understand how to do it.
0 -
I currently use VLC media player and Media Player Classic as my media players. VLC has it's own codecs for use including an AC3 decoder which is OK. For Media Player Classic, I use FDDShow for all codec decoders/encoders and use AC3Filter as the AC3 decoder because FFDShow is not as good with AC3 IMO.
0 -
Does anyone have any ideas? This is driving me crazy.
Try the idea that Yzöwl offers. If it fails then could you explain your setup some more so we may try to help you better.
Some unknowns to consider
- Are you using "OEMPreInstall=Yes" in Winnt.sif and adding these installers to "$OEM$\$1\COOL_STUFF" ?
- What does OemPreInstall.cmd contain or do ?
- Your installers use no switches so are they SFX archives that use a suitable extract and execute setup method ?
Known issues to consider
- Certain HKCU tweaks may not be accepted at T-12 stage of setup (cmdlines.txt). Add those certain tweaks at logon.
Attaching any files mentioned above (mask any sensitive information) may also help to diagnose the issue.
0 - Are you using "OEMPreInstall=Yes" in Winnt.sif and adding these installers to "$OEM$\$1\COOL_STUFF" ?
-
The bat file created is for a manual start to initiate setup. Since you are booting from CD, then the bat file is rather useless and can be disposed of.
It is differcult to know exactly what is missing or incorrect but I do notice that you use "Yes" when I use "1" for the AutomaticUpdates value. Try changing the value from "Yes" to "1" and see if it makes a difference. I seem to remember some time ago that setup ignored the "YES", IIRC.
[Data]AutomaticUpdates=1
AutoPartition=0
MsDosInitiated=0
UnattendedInstall=yes
0 -
I use an AutoIt script on XP Pro, much like your CMD script to do the last tasks in the setup. The shortcuts for IE and some others are created late when you arrive to the desktop. My script removes these shortcuts and do other tasks after a 10 second sleep so Windows Setup has fully complete. Upon completion, tasks are done, the HKCU\...\RunOnce entry is automatically removed and I see no more of it. The shortcuts do not return as you seem to describe. Why HKCU\...\RunOnce runs again for you is beyond me unless your CMD file adds the entry in again perhaps.
0 -
Steam install will not work as you overwrite the registry entries with the following SendTo entries. The SendTo entries may fail as whitespace exists in the path in which no double quotes used to keep the path together as one string. I would guess that cleanup will work as expected.
It is mentioned in the unattended guide about using quotes and using a backslash to escape them. Escaped double quotes will be added to registry where as the outer double quotes will not. Below shows your code with escaped double quotes added. Simply clicking on the CMD file adds the entries to the registry for you to examine for being correct. Remove the registry entries when the test is done.
cmdow @ /HID@echo off
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Installing Applications" /f
REG ADD %KEY%\002 /VE /D "Steam" /f
REG ADD %KEY%\002 /V 1 /D "\"%systemdrive%\install\Applications\steam.msi\" /qn" /f
REG ADD %KEY%\003 /VE /D "Additions to Sendto" /f
REG ADD %KEY%\003 /V 1 /D "\"%systemdrive%\install\Applications\ftp sendto.cmd\"" /f
REG ADD %KEY%\099 /VE /D "Cleaning Up and Rebooting" /f
REG ADD %KEY%\099 /V 1 /D "\"%systemdrive%\install\cleanup.cmd\"" /f
EXIT
The entries of concern are the entries with known or possible whitespace but I double quoted all to show a thorough example.
0 -
The issue would be that you execute RunOnceEx.cmd with GuiRunOnce which is after the event of the RunOnceEx key being processed. You can keep your current concept and make it work immediately by adding one line to RunOnceEx.cmd. Calling the ierunonce.dll can do this for you.
RunOnceEx.cmd
: RunOnceEx.cmd
setlocal enableextensions
set cdrom=%~d0
set key=HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
reg add "%key%" /f /v title /d "Installing Applications"
reg add "%key%\005" /f /ve /d "Registry Tweaks"
reg add "%key%\005" /f /v 1 /d "%systemdrive%\install\xp\hklm.cmd"
reg add "%key%\010" /f /ve /d "Adobe Acrobat Reader 9.0"
reg add "%key%\010" /f /v 1 /d "%systemdrive%\install\acrobat\AdobeReader90.exe /sAll /rs"
start /wait rundll32.exe iernonce.dll,RunOnceExProcess
endlocal0 -
A count down timer is rather basic. What you want to happen once the count ends is could mean something. A versatile program that I use at times is Poweroff. Poweroff is freeware. It does more then just handling the PC power functions as it can show just a message, run a program etc. Some details can be found here.
0 -
As you mention as posted here that you want to install from your %UserProfile% directories. The issue you are perhaps experiencing is that your %UserProfile% directories may not exist when Cmdlines.txt is executed. Only "Default User" and "All Users" profiles are available from Cmdlines.txt and any additional profiles created by the user are not available for use until they are logged into to at least once.
"C:\Documents and Settings\Default User\Desktop\7-Zip-v4.42.exe" is not recognized as an internal oe external command, operable program or batch file.So perhaps 7-Zip-v4.42.exe is not in the "Desktop" directory of the "Default User" profile?
If you wish to continue with the idea of adding installers to your personal %UserProfile%, then consider adding the files when your account has been created and logged into at least once. The usual time to add files to your own profile would be using RunOnceEx or GuiRunOnce which occur when you are logged into your account.
0
AutoIT Help needed
in Application Installs
Posted · Edited by MHz
This is a different way to handle closing the CDRom tray. This works without specifying the drive letter literally in registry. It also uses AutoIt to handle the tray functions of opening (eject) or closing.
Compile it to make it work correct before using.
Edit:
A note of usage:
Use the command CDTray.exe register to install the compiled executable. Use CDTray.exe unregister to uninstall it. Use CDTray.exe close <drive letter:> to close drive tray and CDTray.exe open <drive letter:> to open drive tray. Of course the context menu method is available as well when registered.