Jump to content
Sign in to follow this  
JohnBailey

Prevent shell.application object's OPEN() from stealing focus

Recommended Posts

JohnBailey

How do I prevent the following new window (as shown in the code) from stealing focus.

Local $dirPath = "C:\Program Files\"
If Not FileExists($dirPath) Then
      MsgBox(0, "Explorer Open - Error", "Directory does not exist: "&$dirPath)
      Exit
EndIf
$oShell = ObjCreate("shell.application") 
$oShell.open($dirPath)

Exit

A decision is a powerful thing

Share this post


Link to post
Share on other sites
DaleHohm

Valik wrote some code for me to address this issue taht I included in IE.au3. You can't prevent it from trying, but you can prevent it from getting it. See the undocumented function __IELockSetForegroundWindow() in IE.au3.

Dale


Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Share this post


Link to post
Share on other sites
JohnBailey

Valik wrote some code for me to address this issue taht I included in IE.au3. You can't prevent it from trying, but you can prevent it from getting it. See the undocumented function __IELockSetForegroundWindow() in IE.au3.

Dale

I tried that function. It doesn't seem to work for this.


A decision is a powerful thing

Share this post


Link to post
Share on other sites
Joon

Why not just use ShellExecute with flag?

Share this post


Link to post
Share on other sites
JohnBailey

Why not just use ShellExecute with flag?

Because I'm using COM for a project I've been working on. ShellExecute doesn't do everything that I want.


A decision is a powerful thing

Share this post


Link to post
Share on other sites
Joon

Hmm... I must be missing something but on this particular task, your code and my code appear to be doing the same thing.

Local $dirPath = "C:\Program Files\"
If Not FileExists($dirPath) Then
      MsgBox(0, "Explorer Open - Error", "Directory does not exist: "&$dirPath)
      Exit
EndIf
$oShell = ObjCreate("shell.application") 
$oShell.ShellExecute( $dirPath, "", "", "open", 6 )

Share this post


Link to post
Share on other sites
DaleHohm

I tried that function. It doesn't seem to work for this.

It's a pet peeve, but "doesn't work" needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Dale


Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×