Klexen Posted July 12, 2007 Share Posted July 12, 2007 I have a window change title, but then if I click a link within that window it changes back to default title. Is there a way to detect if the set title was changed to the original then set it back to what I want it? Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted July 12, 2007 Moderators Share Posted July 12, 2007 Global $hWatchHwnd = WinGetHandle('Title Of Window To Change') Global $sChange = 'My Title That This SOB Keeps Changing!' AdlibEnable('_WinWatchTitleByHwnd', 100) While 1 ;Rest of script WEnd Func _WinWatchTitleByHwnd() If WinGetTitle($hWatchHwnd) <> $sChange Then WinSetTitle($hWatchHwnd, '', $sChange) Return '' EndFuncoÝ÷ ØêÚºÚ"µÍÚ[ÛYH Ø^K]LÉÝÂÛØ[ ÌÍÜÑVUÕØ]ÚH ÌÎNÕÕ^IÌÎNÂÛØ[ ÌÍÜÐÚ[ÙHH ÌÎNÓ^H]H]ÈÓÐÙYÈÚ[Ú[ÉÌÌÎÉÌÎNÂYX[XJ ÌÎN×ÕÚ[Ø]Ú]PTQ ÌÎNËL BÚ[HBNÔÝÙØÜÑ[[ÈÕÚ[Ø]Ú]PTQ BSØØ[ ÌÍØTHØÙÜÓÝ ÌÍÜÑVUÕØ]Ú BSØØ[ ÌÍØUÓHÚ[Ý BQÜ ÌÍÚPÐÈHHÈPÝ[ ÌÍØT HHBBQÜ ÌÍÞÐÈHHÈPÝ[ ÌÍØUÓ HHBBBRYÚ[Ù]ØÙÜÊ ÌÍØUÓÉÌÍÞÐ×VÌWJHH ÌÍØTÉÌÍÚPÐ×VÌWH[ÂBBBP]S Ú[Ù]Ý]J ÌÍØUÓÉÌÍÞÐ×VÌWJKH[BBBRY ÌÍØUÓÉÌÍÞÐ×VÌH ÉÝÈ ÌÍÜÐÚ[ÙH[Ú[Ù]]J ÌÍØUÓÉÌÍÞÐ×VÌWK ÌÎNÉÌÎNË ÌÍÜÐÚ[ÙJBBBQ[YBS^S^T] ÌÎNÉÌÎNÂ[[ Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted July 12, 2007 Moderators Share Posted July 12, 2007 WTF ... disregard the #include <array.au3>... I tried to edit it, but the code came out all garbled. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
herewasplato Posted July 12, 2007 Share Posted July 12, 2007 ...I tried to edit it, but the code came out all garbled.You can:edit the postcut all of the code and spaces between the autoit tagssubmit the modified postedit the post againpaste the code between the tagsedit the code as desiredsubmit the modified postsimple... :-(I had never tried those "simple" steps on a post that had two blocks of code, but it worked in the test thread - just leave the other code block alone during those steps. [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
Klexen Posted July 12, 2007 Author Share Posted July 12, 2007 (edited) Thanks Smoke... I was wondering, whats the different between using ' and " ? The only problem is I need to have two windows with the same name given. One the function I have that launches the windows, I have it change the title. Under function one I have it change the name To Window #1 and the second function opens the same name window but changes the name to Window #2. The reason I change the name is so that I can set a hotkey to activate the two seperate windows. For instance.. I have Alt+1 Switch to Window #1 and Alt+2 switch to Window #2. Well when I'm using window number one, and open the link it changes back to the Default name, Well if I click a link in Window #2 the name changes to default as well. Now they both share the same default name and the hotkey no longer activates them. I'm lost on how to make it so If Window #1 exits then Changes then change back to Window #1. Then if Window #2 changes then change back to Window #2. If they both change or one changes how will I know Which one to set back to Window #1 or Window #2 Since they both share default name? Wow I hope this makes sense. Again thanks so much! Is there a limit on how many times you use an adlibenable in a program? I already have one goin.. I don't think there is a problem, just double checking. I can't test till I get to work tomorrow or I would just test it now. Edited July 12, 2007 by Klexen Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted July 12, 2007 Moderators Share Posted July 12, 2007 (edited) Thanks Smoke... I was wondering, whats the different between using ' and " ? The only problem is I need to have two windows with the same name given. One the function I have that launches the windows, I have it change the title. Under function one I have it change the name To Window #1 and the second function opens the same name window but changes the name to Window #2. The reason I change the name is so that I can set a hotkey to activate the two seperate windows. For instance.. I have Alt+1 Switch to Window #1 and Alt+2 switch to Window #2. Well when I'm using window number one, and open the link it changes back to the Default name, Well if I click a link in Window #2 the name changes to default as well. Now they both share the same default name and the hotkey no longer activates them. I'm lost on how to make it so If Window #1 exits then Changes then change back to Window #1. Then if Window #2 changes then change back to Window #2. If they both change or one changes how will I know Which one to set back to Window #1 or Window #2 Since they both share default name? Wow I hope this makes sense. Again thanks so much! Is there a limit on how many times you use an adlibenable in a program? I already have one goin.. I don't think there is a problem, just double checking. I can't test till I get to work tomorrow or I would just test it now.Since you haven't shown any effort on your own of what you've attempted and failed at, I'll let you chew on this with "few" comments:expandcollapse popupGlobal $hMainWinNotToChange, $hWinToWatch Global $sMainTitle = 'I am a Title', $sChangeTitle = 'Change that SOB Now!!' ;Example seeing I don't know what program you are talking about $hGUI = GUICreate('I am a Title', 200, 50, Random(1, 200), Random(200, 400)) $hButton = GUICtrlCreateButton('Push To Activate 2nd Window', 10, 10, 180, 30) GUISetState() ;The above would not be in your script obviously AdlibEnable('_AdlibManager', 100) HotKeySet('!1', '_HotKeyManager') HotKeySet('!2', '_HotKeyManager') $hMainWinNotToChange = _WinGetByProcess('AutoIt3.exe', $sMainTitle);This would be under what you would launch right after you did the first window While 1 Switch GUIGetMsg() Case -3 Exit Case $hButton If UBound(WinList($sMainTitle)) - 1 < 2 And UBound(WinList($sChangeTitle)) - 1 = 0 Then ;Launch 2nd Window Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & @ScriptFullPath & '"', '', @SW_HIDE) ;You would delete the above and replace it with your own function, this is just a working example $hWinToWatch = _WinReturnSecondHandle($sMainTitle, $hMainWinNotToChange) EndIf EndSwitch WEnd Func _HotKeyManager() Switch @HotKeyPressed Case '!1' WinActivate($hMainWinNotToChange) Case '!2' WinActivate($hWinToWatch) EndSwitch Return EndFunc Func _AdlibManager() If $hWinToWatch And WinExists($hWinToWatch) = 0 Then $hWinToWatch = '' If $hWinToWatch Then If WinExists($hWinToWatch) And _ WinGetTitle($hWinToWatch) <> $sChangeTitle Then WinSetTitle($hWinToWatch, '', $sChangeTitle) EndIf EndIf Return '' EndFunc Func _WinReturnSecondHandle($nTitle, $hMain) Local $aWL = WinList($nTitle) If UBound($aWL) - 1 < 2 Then Do $aWL = WinList($nTitle) Sleep(10) Until UBound($aWL) - 1 = 2 EndIf For $iCC = 1 To UBound($aWL) - 1 If BitAND(WinGetState($aWL[$iCC][1]), 2) And _ $hMainWinNotToChange <> $aWL[$iCC][1] Then WinSetTitle($aWL[$iCC][1], '', $sChangeTitle) Return $aWL[$iCC][1] EndIf Next EndFunc Func _WinGetByProcess($sExe, $nTitle) Local $aPL = ProcessList($sExe) Local $aWL = WinList($nTitle) For $iCC = 1 To UBound($aWL) - 1 For $xCC = 1 To UBound($aPL) - 1 If WinGetProcess($aWL[$iCC][1]) = $aPL[$iCC][1] And _ BitAND(WinGetState($aWL[$iCC][1]), 2) Then Return $aWL[$iCC][1] EndIf Next Next EndFuncYou'll find using the handles, it doesn't matter what the title is ... I just did the above to humor you. Edited July 12, 2007 by SmOke_N Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Klexen Posted July 13, 2007 Author Share Posted July 13, 2007 (edited) What im trying to do is open 2 IE windows with the title "DellServ 6.17" When I launch them I have each one change their name... HotKeySet("!1", "ActiveDellServ1") HotKeySet("!2", "ActiveDellServ2") HotKeySet("!3", "ActiveDSN") HotKeySet("!4", "ActiveNotepad")oÝ÷ ØèçîËb¢xZ½â!j÷ºÚ"µÍÌÍÜÕTH ][ÝÚËÙY[ÙË[ÛÛKÙ[ÙÚÜÚ[^Ü ][ÝÂIÌÍÛÒQHHÒQPÜX]J ÌÍÜÕT BIÌÍÒÓHÒQTÜQÙ] ÌÍÛÒQK ][ÝÚÛ ][ÝÊBUÚ[Ù]Ý]J ÌÍÒÓ ][ÝÉ][ÝËÕ×ÓPVSRVJBWÒQPXÝ[Û ÌÍÛÒQK ][ÝÝÚXI][ÝÊBWÒQSØYØZ] ÌÍÛÒQJBSÜ ][ÝÕÚ[]SX]Ú[ÙI][ÝËJBUÚ[ØZ]XÝ]J ][ÝÑ[Ù MÉ][ÝÊBUÚ[XÝ]]J ][ÝÑ[Ù][ÝÊBUÚ[Ù]]J ][ÝÑ[Ù MÉ][ÝË ][ÝÉ][ÝË ][ÝÑ[ÙÌI][ÝÊoÝ÷ Ù8^Ø^¢÷«~éܶ*'"¯y«¢+ØÀÌØíÍUI0ôÅÕ½Ðí¡ÑÑÀè¼½±±ÍÉعÕ̹±°¹½´½±±ÍÉؽ©ÍÀ½¥¹à¹©ÍÀÅÕ½Ðì($ÀÌØí½%ô}% ÉÑ ÀÌØíÍUI0°À°À°À¤($ÀÌØí!]9ô}%AɽÁÉÑåÐ ÀÌØí½%°ÅÕ½Ðí¡Ý¹ÅÕ½Ðì¤(%]¥¹MÑMÑÑ ÀÌØí!]9°ÅÕ½ÐìÅÕ½Ðì°M]}5a%5%i¤(%}%Ñ¥½¸ ÀÌØí½%°ÅÕ½Ðí٥ͥ±ÅÕ½Ðì¤(%}%1½]¥Ð ÀÌØí½%¤((%=ÁÐ ÅÕ½Ðí]¥¹Q¥Ñ±5Ñ¡5½ÅÕ½Ðì°Ä¤(%]¥¹]¥ÑÑ¥Ù ÅÕ½Ðí±±MÉØظÄÜÅÕ½Ðì¤((%]¥¹Ñ¥ÙÑ ÅÕ½Ðí±±MÉØÅÕ½Ðì¤(%]¥¹MÑQ¥Ñ± ÅÕ½Ðí±±MÉØظÄÜÅÕ½Ðì°ÅÕ½ÐìÅÕ½Ðì°ÅÕ½Ðí±±MÉØÈÅÕ½ÐìoÝ÷ Ù*~׫¶"¯{j¶¬jg§v,{¦Ûaz*çjg¢°7¥'«¿V§t7¥'«¿e¡Èb±Ê(l¡¢ÙÊÌ(®H+y«SéÈrX©bL"¶§ éeIêïÖÃzYRz»ö¶°whÃ¥ÈZ¢·l¶+ey¶Ú*ºCzYRz»ú׺®¢Û(-èh¶G²Â÷öÜ(®D¨"wvÚ!j÷~éܶ*'z0ðÞT®ýpjÇ!jxvØ^Ú©àzØZ¶Þm§$¶ÞT®ýb|7¥'«¿l±ÈZ¶§«Þ×!jxm§$¶ÞT®ýH|h¶¬jëh×6Global $hWatchHwnd = WinGetHandle('DellServ 6.17') Global $sChange = 'DellServ #1' ; It doesn't know if DellServ #1 was changed or DellServ #2 AdlibEnable('_WinWatchTitleByHwnd', 100) While 1 ;Rest of script WEnd Func _WinWatchTitleByHwnd() If WinGetTitle($hWatchHwnd) <> $sChange Then WinSetTitle($hWatchHwnd, '', $sChange) Return '' EndFunc Does this make sense? Your other script would probably work, but it's a bit over my head. Heh, as I'm sure you knew that. Edited July 16, 2007 by Klexen Link to comment Share on other sites More sharing options...
Klexen Posted July 16, 2007 Author Share Posted July 16, 2007 ***BUMP FOR EDIT**** Link to comment Share on other sites More sharing options...
PsaltyDS Posted July 16, 2007 Share Posted July 16, 2007 As SmOke_N pointed out back in post #6, use the window handles instead of the titles. The handles never change no matter how many times the titles do... Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Klexen Posted July 16, 2007 Author Share Posted July 16, 2007 (edited) As SmOke_N pointed out back in post #6, use the window handles instead of the titles. The handles never change no matter how many times the titles do... So would this work? HotKeySet("!1", "ActiveDellServ1") HotKeySet("!2", "ActiveDellServ2") Global $DellServWindow1 = WinGetHandle("DellServ 6.17") Global $DellServWindow2 = WinGetHandle("DellServ 6.17") Func ActiveDellServ1() WinActivate($DellServWindow1) EndFunc ;==>ActiveDellServ1 Func ActiveDellServ2() WinActivate($DellServWindow2) EndFunc ;==>ActiveDellServ2 Edited July 16, 2007 by Klexen Link to comment Share on other sites More sharing options...
PsaltyDS Posted July 16, 2007 Share Posted July 16, 2007 So would this work? HotKeySet("!1", "ActiveDellServ1") HotKeySet("!2", "ActiveDellServ2") Global $DellServWindow1 = WinGetHandle("DellServ 6.17") Global $DellServWindow2 = WinGetHandle("DellServ 6.17") Func ActiveDellServ1() WinActivate($DellServWindow1) EndFunc ;==>ActiveDellServ1 Func ActiveDellServ2() WinActivate($DellServWindow2) EndFunc ;==>ActiveDellServ2oÝ÷ Ûú®¢×nëg¢Ú®×¢ØajwezÌ"VÞ¶¬jg¢éÞyÛhºÇªºVtâ¶Wj×!2^ªê- Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now