On Sat, Jan 28, 2012 at 2:17 AM, Eric Borts <ebo...@bltek.com> wrote:
> The installation now runs successfully after deleting that registry key. > > In addition, I tried changing the default action on batch files from > "Open" to "Edit" using the registry (Windows 7). Double-clicking a file > opens it in Notepad, but the installation runs successfully. So it looks > like the UserChoice registry key, however it got there, is the essence of > the problem. > > Which, of course, %COMSPEC% /c would avoid because the program handling > batch files is explicit. > Nice analysis Eric. ANy idea why (which program set this) this particular registry was set. Dave, shall we consider using "%COMSPEC% /c" with 0 as second parameter..?? > > Thanks, > Eric > > > On 1/27/2012 1:16 PM, Eric Borts wrote: > > I found the problem with my computer > here<http://help.lockergnome.com/windows/BAT-File-Association-Broken--ftopict514456.html>. > It turns out this registry entry was causing my problem: > > HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat > \UserChoice > Progid REG_SZ (Applications\cmd.exe) > > Deleting the \UserChoice key restored my context menu and ability to run a > ".bat" directly instead of using %COMSPEC%. > > I am going to un-install an re-install postgres to verify that this solves > my installation issues. > > Eric > > > > > > > > On 1/27/2012 12:41 PM, Eric Borts wrote: > > Regarding my final point: > > "Similarly, you may prefer to have the default action for a batch file > (.bat) changed to Edit instead of Open. Double-clicking the file will not > run the commands in the file, and if users want to run the file, they can > use the *Open* command on the shortcut menu." > http://support.microsoft.com/kb/320036 > > This advice would be likely to hang the PostgreSQL installer. > > Cheers, > Eric > > > On 1/27/2012 12:32 PM, Eric Borts wrote: > > Hi Dave and Dharmendra, > > It is not the "%COMSPEC% /c" call that causes the window to popup, but the > WindowStyle parameter to WShell.Run (see Table 3.9 in MS TechNet WSH > Objects / Running > Programs<http://technet.microsoft.com/en-us/library/ee156605.aspx>). > Setting WindowStyle to "0" creates a hidden window. This is how the code in > the installer is currently written. Setting it to "1" creates a visible > window. This happens when using "%COMSPEC% /c" or when calling the batch > file directly. > > Here is a another site > recommending<http://classicasp.aspfaq.com/general/how-do-i-execute-a-dos-command/batch-file/exe-from-asp.html>the > use of "%COMSPEC% /c" with a "0" second parameter, along with a note > about the window (in)visibility: > > "[...] do not run any command that raises a prompt, dialog, msgbox or > any other GUI. This [...] could hang your entire system (since the > invisible GUI will be waiting for a reply [...]" > > Test code is attached that demonstrates using COMSPEC with a "0" versus a > "1". > > Output from SET command is also attached. Note that I've verified that > this problem still occurs in Safe Mode. > > Any other suggestions? I've also posted to > StackOverflow<http://stackoverflow.com/questions/9038927/vbscript-hangs-when-launching-batch-file-with-wshell-script-run>for > adivce. > > A separate line of reasoning for using COMSPEC is that the calling of the > .bat directly assumes that default action is to execute the batch file. If > a user has modified their default .bat actions (which I have not), the > postgres installer will fail. Using COMSPEC will avoid that pitfall. > > I'll keep you posted if I discover why my machine doesn't execute batch > files by default, or how it ended up in this condition. The computer is > only about 2 months old, so I haven't had *that* much time to overwhelm it > with installs. > > Eric > > > > > -- Dharmendra Goyal Senior Software Engineer EnterpriseDB Corporation The Enterprise Postgres Company Phone: +91-20-30589493 Mobile: +91-9552103323 Website: http://www.enterprisedb.com EnterpriseDB Blog: http://blogs.enterprisedb.com/ Follow us on Twitter: http://www.twitter.com/enterprisedb This e-mail message (and any attachment) is intended for the use of the individual or entity to whom it is addressed. This message contains information from EnterpriseDB Corporation that may be privileged, confidential, or exempt from disclosure under applicable law. If you are not the intended recipient or authorized to receive this for the intended recipient, any use, dissemination, distribution, retention, archiving, or copying of this communication is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately by reply e-mail and delete this message.