Hi I want to make a small test window app that can force IE to save its data and shutdown upon a button click and restart with same tabs when another button is clicked??
I am fairly new to Win32 programming can anyone help me out here.??
Any leads will be appriciated??
Try to find one of each browser class with EnumChildWindows then you save the text(current link) of each one, and send a WM_CLOSE message to the program, if you debug the IE you'll probably see a CALL to the function to open a new window, when you find it, you can call it again and with the new browser class you put the text you got from the one that was opened
Related
My MFC application has multiple top level (parented to the desktop) windows, any one of which can host an external application which can launch a modal dialog. Is there a way for one the other top level windows to get a notification when any of the others becomes modal?
My specific problem is that one of the my windows is hosting an embedded PDF viewer and when the user clicks print, only the window hosting the viewer is locked, not the others.
When a modal dialog is shown EnableWindow(FALSE) is called for the parent. It is deactivated now and will not accept any mouse input. Also it will not receive the keyboard focus.
When EnableWindow(FALSE) is called WM_ENABLE with wParam==FALSE is sent to the window.
When your parent receives this message you can call EnableWindow(FALSE) for all your other windows too. Recursion might be a problem here, but you can use a private window message or flags to prevent this.
Before the modal dialog closes EnableWndow(TRUE) is called again and WM_ENABLE with wParam==TRUE is sent again.
If my wxWidgets application creates a new window while the application does not have focus, its taskbar icon blinks yellow until I switch to it, as shown here:
This is annoying. How can I prevent this from happening?
EDIT: The original version of this question suggested the blinking was happening during startup. After further investigation, this is not occurring right at application startup; rather, it occurs if I create an additional window while the application does not have focus.
To give a bit more background: my application is a sort of server, that opens windows in response to network events. If I boot up the application, then switch focus to something else and a network event comes in while the focus is elsewhere, my application will open a new window in the background (not grabbing focus) and this blinking will occur.
The windows are wxFrames; the application constructs them and their child widgets, then calls Show(true) on the frame.
Also, I've attempted to set a breakpoint on the FlashWindow Win32 API function, hoping to trap wherever in WX it's getting called, but haven't been able to make that work.
Maybe the following would work:
wxTopLevelWindow::ShowWithoutActivating ( )
http://docs.wxwidgets.org/trunk/classwx_top_level_window.html#a03e526f505716568318d601318527bd0
Yes. If you create a new top level window while the app does not have focus, then the task bar icon will flash. This is the intended behaviour of the windows operating system.
I am trying to prevent the user from closing the window when they click on the close button. I would like to have the application dock to the system tray.
My first step is to recognize when the user attempts to close the window and prevent the default behavior on that event. I would expect this code to work, but it does not.
var appWindow = Titanium.UI.getCurrentWindow();
appWindow.addEventListener('app.exit', function(event){
event.preventDefault();
})
I tried using the exit event and the event constants themselves to no avail.
This wont work because all your doing when you call preventDefault is stopping the default behavior in the WebKit browser page, not the native application wrapper itself.
The close command is a native function call to the underlying wrapper, it just passes an event to the listener, it does not pass control.
Also, this sounds somewhat dangerous, not allowing a user to close an application seems problematic. Maybe instead you should register a background service to run instead?
one trick might be to open an 'invisible' window for the app, so even if the user closes the 'application' window, the app should still be running.
I have a small utility app written in Visual Basic 6 that has been happily running on XP clients for many years until recently a client who is using Windows 7 has notified and shown me that the behaviour is different.
When my VB app displays the dialog, it remains hidden until the user clicks on it in the taskbar.
I changed the code so rather than using a ".show vbModal" command, I changed to displaying the form with non-modally, and then added various API calls like BringWindowToFront and SetWindowPos to make it top most AND calling .focus on the form, despite these extra instructions the best result I can achieve is to make the form flash prompting the user to click on it.
No matter what I've tried I cannot make the window display topmost, and with focus, without user intervention.
Note. this is an ActiveX exe project and is being called by a Win16 app through COM.
Has anyone else encountered this behaviour and know of a solution?
Any suggestions/advice appreciated, thanks.
Applications can't (without lying to Windows) steal focus. The calling app should really call AllowSetForegroundWindow() (if it's available on win16) to allow the COM process to steal the focus, or call SetForegroundWindow() itself.
See the help for SetForegroundWindow() for the conditions on setting focus.
IE 8 sharing session among different Explorer Window for same domain.
Like if you are a logined at hotmail.com in IE 8, and you have open another explorer window for hotmail.com, you will automatically logined.
This was not in IE 7, In IE 7 session has shared in the same explorer tab rather different Explorer Window.
Can anyone have a idea about this, Whether it is bug or something else in IE 8
Use
File -> New Session
Well, it is not a bug. Browsers usually share data via cookies. IE8 have this 'new session' feature to let you use multiple email accounts (and similar services) with multiple browsers.
Modify IE8 Shortcut to Permanently Launch New IE Browser Window in New Session
Right click on the IE8 shortcut (all IE8 shortcuts or icons on desktop, Start Menu, Quick Launch bar or Taskbar that you want it to run as a new instance session have to be changed), and choose Properties from the right click context menu. Then, append -nomerge to the end of the of the program path in “Target” text box at “Shortcut” tab. For example,
“C:\Program Files\Internet Explorer\iexplore.exe” -nomerge
link
http://www.mydigitallife.info/2009/07/22/run-separate-isolated-ie8-window-frame-session-with-nomerge-switch-for-multiple-logins/
Create a new shortcut to ieplore.exe, add the -nomerge switch. This will always start a new session.
I prefer using "Run" and just type "iexplore.exe -nomerge"
Your question isn't that clear.
Are saying in IE8 when you open a new window that window shares the same session as the previous window hence any login made in one is shared by the other?
If so then that would be normal behaviour and not any different to the way IE7 handled it.
OTH are you saying that when you open a new window in IE8 it doesn't continue to share the same session as the previous window? If you mean using the New Window action from the Page menu then that would appear to be a bug to me but it doesn't happen on my copy of IE8.
If by new window you mean starting a new instance of IE from quick links or Start menu then it would be correct for that to start a new session and not share session cookies with the other session you have running.
I suspect this last is the real situation, previously the standard IE link added to Start Menu or Desktop would simply open a new window using one of any existing IE sessions currently running, IE8 doesn't do that it will invoke a new session from this link.
You can prevent new windows from sharing session cookies by File -> New Session, however you cannot prevent new tabs from sharing data by default.
Any new window that you open (using iexplore.exe and not openning from inside another window) shares the same session as any previous.
Open a window and log in into your bank account.
Open another window (blank window).
Close the bank account window by clicking on the X.
Wait 5 minutes (just to emphasize the problem).
open another window and type the bank account address.
Result => You are logged into the bank account.
Don't tell me that this is not a bug. This is a huge one! (maybe a design bug)
Most users do not expect this behavior and complain that there is a "problem with our site" because they have another window open on some radiostation which makes sure the session of another site is persisted, I then have to explain to them that Microsoft/Google decided that that's the "right" way. The default should be -nomerge and not the other way around.