Jump to content

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


Recommended Posts

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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 )
Link to comment
Share on other sites

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

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...