meamrussian Posted July 12, 2005 Share Posted July 12, 2005 Hello. I know that to open IE also to a specifit page (let's say google) I just have to put: Run ("C:\Program Files\Internet Explorer\iexplore.exe http://google.com") This will automatically make it run IE and start it on google.com. How do I make it do the same, but with firefox? I tried putting in the same command, except pointing to firefox, but that does not work. It doesn't have to be done in the same way; I just want ANYway to startup firefox and for it to go to a specific webpage. This will also teach me how to do the same in ANY browser. Thanks a lot. Link to comment Share on other sites More sharing options...
blindwig Posted July 12, 2005 Share Posted July 12, 2005 Find the default browser: Local $sType, $sCommand $sType = RegRead('HKEY_Classes_Root\.html') if $sType <> '' Then $sCommand = RegRead('HKCR\' & $sType & '\Shell\Open', '') if $sCommand <> '' then Run(_StringReplace($sCommand, '%1', 'http://www.google.com')) My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted July 12, 2005 Moderators Share Posted July 12, 2005 LOL, like the avatar blindwig! 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...
w0uter Posted July 12, 2005 Share Posted July 12, 2005 (edited) for the default brouwser; you can also use: RunWait(@COMSPEC & ' /c Start www.google.nl') OR if you have the BETA $o_URL = ObjCreate("Shell.Application") $o_URL.Open('www.google.nl') Edited July 12, 2005 by w0uter My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
blindwig Posted July 12, 2005 Share Posted July 12, 2005 LOL, like the avatar blindwig!<{POST_SNAPBACK}>It's a pic I took of me squeezing the crap out of the stress ball my girlfriend bought me last Christmas. You see, I'm one of the few programmers I know who doesn't smoke or drink coffee (or alcohol, for that matter) so I gotta take out my frustrations on SOMETHING! My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions Link to comment Share on other sites More sharing options...
blindwig Posted July 12, 2005 Share Posted July 12, 2005 for the default brouwser; you can also use:RunWait(@COMSPEC & ' /c Start www.google.nl')Yes, if you don't mind the ugly DOS box popping up! The routine I gave does basically the same thing as the START command - it looks in the registry for the command associated with a certain filetype (in this case, a URL) and launches the appropriate associated application.OR if you have the BETA$o_URL = ObjCreate("Shell.Application")$o_URL.Open('www.google.nl')You could also do this:DllCall("shell32.dll", "long", "ShellExecute", "hwnd", $parent_hwnd, "string", $sVerb, "string", 'Http://www.google.com' "string", $sArg, "string", $sFolder, "long", $state)Many paths to the same solution, eh? My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions Link to comment Share on other sites More sharing options...
w0uter Posted July 12, 2005 Share Posted July 12, 2005 (edited) Yes, if you don't mind the ugly DOS box popping up! <{POST_SNAPBACK}>RunWait(@ComSpec & ' /c start www.google.nl', @ScriptDir, @SW_HIDE) Edited July 13, 2005 by w0uter My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
meamrussian Posted July 13, 2005 Author Share Posted July 13, 2005 RunWait(@ComSpec & ' /c start www.google.nl', @ScriptDir, @SW_HIDE)<{POST_SNAPBACK}>Hey guys, thanks for your reply. I find this one to be the best lol, as it is the shortest. But, would you kindly explain this code to me step by step, as I am still kinda new to autoit? Thanks, w0uterblindwig, I tested your code, and it had a bunch of errors in it Thanks Link to comment Share on other sites More sharing options...
blindwig Posted July 13, 2005 Share Posted July 13, 2005 (edited) blindwig, I tested your code, and it had a bunch of errors in it Thanks<{POST_SNAPBACK}>Well it was more of pseudo-code to show you how to do it.Here's actual working code:Dim $sType, $sCommand $sType = RegRead('HKEY_Classes_Root\.html', '') if $sType <> '' Then $sCommand = RegRead('HKCR\' & $sType & '\Shell\Open\Command', '') if $sCommand <> '' then Run(StringReplace($sCommand, '%1', 'http://www.google.com'))And this is the more official way to do it:DllCall("shell32.dll", "long", "ShellExecute", "hwnd", 0, "string", 'open', "string", 'Http://www.google.com', "string", '', "string", @ScriptDir, "long", @SW_SHOWNORMAL) Edited July 13, 2005 by blindwig My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions Link to comment Share on other sites More sharing options...
w0uter Posted July 13, 2005 Share Posted July 13, 2005 @meamrussian RunWait( = runs a .exe/.com/.cmd/.etc and waits till its done. @comspec = the default command interperter (9x, command.com; nt, cmd.exe) /c = close after execution Start = open's a file (for more info "start > run > cmd.exe > help start") www.google.nl = the file to open. @scriptdir = working dir. @SW_HIDE = hide the dos box. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
meamrussian Posted July 13, 2005 Author Share Posted July 13, 2005 @meamrussianRunWait( = runs a .exe/.com/.cmd/.etc and waits till its done.@comspec = the default command interperter (9x, command.com; nt, cmd.exe)/c = close after executionStart = open's a file (for more info "start > run > cmd.exe > help start")www.google.nl = the file to open.@scriptdir = working dir.@SW_HIDE = hide the dos box.<{POST_SNAPBACK}>So, basically when you tell it to start www.google.nl, it knows to open it with the default browser? Also, what does @scriptdir do (working dir)?blindwig, thanks for that fixed up, ready to use code Link to comment Share on other sites More sharing options...
w0uter Posted July 13, 2005 Share Posted July 13, 2005 So, basically when you tell it to start www.google.nl, it knows to open it with the default browser?<{POST_SNAPBACK}>short. yes.Also, what does @scriptdir do (working dir)?<{POST_SNAPBACK}>im not sure. but i always thought:For EX.if you open a command promt (cmd.exe) its working dir is C:\if you type cd .\WINDOWS\ then your working dir will be C:\WINDOWS\but i can also be wrong and it can be @SystemDir. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
meamrussian Posted July 13, 2005 Author Share Posted July 13, 2005 (edited) Well it was more of pseudo-code to show you how to do it.Here's actual working code:Dim $sType, $sCommand $sType = RegRead('HKEY_Classes_Root\.html', '') if $sType <> '' Then $sCommand = RegRead('HKCR\' & $sType & '\Shell\Open\Command', '') if $sCommand <> '' then Run(StringReplace($sCommand, '%1', 'http://www.google.com'))And this is the more official way to do it:DllCall("shell32.dll", "long", "ShellExecute", "hwnd", 0, "string", 'open', "string", 'Http://www.google.com', "string", '', "string", @ScriptDir, "long", @SW_SHOWNORMAL)<{POST_SNAPBACK}>Sorry for being so annoying, but just getting the code isn't enough for me; any chance you could explain the code, like w0uter did? (the "official" one)Thanks a lot Edited July 13, 2005 by meamrussian Link to comment Share on other sites More sharing options...
meamrussian Posted July 13, 2005 Author Share Posted July 13, 2005 RunWait(@ComSpec & ' /c start www.google.nl', @ScriptDir, @SW_HIDE)Also, the only reason I don't really like this is that it can't start all URLs. If I'm not going to a home page, there are some VERY long links that have the symbol & in them, and the link stops when it reaches the &... is there a way to fix this? I am trying to make it open the following:RunWait(@ComSpec & ' /c start http://namepros.com/newthread.php?do=newthread&f=6', @ScriptDir, @SW_HIDE)As you can see if you tried it, it tries to go to:http://namepros.com/newthread.php?do=newthreadAny way to make it go to the whole url? Link to comment Share on other sites More sharing options...
blindwig Posted July 13, 2005 Share Posted July 13, 2005 Also, the only reason I don't really like this is that it can't start all URLs. If I'm not going to a home page, there are some VERY long links that have the symbol & in them, and the link stops when it reaches the &... is there a way to fix this? I am trying to make it open the following:RunWait(@ComSpec & ' /c start http://namepros.com/newthread.php?do=newthread&f=6', @ScriptDir, @SW_HIDE)As you can see if you tried it, it tries to go to:http://namepros.com/newthread.php?do=newthreadAny way to make it go to the whole url?<{POST_SNAPBACK}>Yes, this is an issue with the method you're using. You're launching a command shell, then running a command inside that shell and passing your string to it. The promblem is that the command shell and the command can each potentially have special interpretations of special characters, so certain strings can get lost in the translation. That's why I don't recommend this method - yes, it is quick and easy, but it's a sloppy way to do thigs and bring the potential for problems.The issue you're facing is that the command pre-processor uses the ampersand symbol as a command seperator. You can try to put your string in double quotes:RunWait(@ComSpec & ' /c start "http://namepros.com/newthread.php?do=newthread&f=6"', @ScriptDir, @SW_HIDE)That might work. But the real solution is to use a real solution.The best official true solution would be to use the object method w0uter suggested, or the DLLCall solution I suggested. Both of these methods pass the URL link to the part of the OS that decides which program is set to handle that link and launches it accordingly. The registry solution I gave you is a roundabout way of doing the same thing, but it doesn't cover all situations. My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions Link to comment Share on other sites More sharing options...
meamrussian Posted July 13, 2005 Author Share Posted July 13, 2005 The best official true solution would be to use the object method w0uter suggested What object method? Link to comment Share on other sites More sharing options...
blindwig Posted July 13, 2005 Share Posted July 13, 2005 Er, nevermind. I just tried the object solution on my machine and it doesn't do anything. I don't know whats wrong with it, because I've never done objects before. So, just go with the DLL solution for now My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions Link to comment Share on other sites More sharing options...
w0uter Posted July 13, 2005 Share Posted July 13, 2005 comspec: failed at all methods i tried. object: worked for me. dll: havent tried. and this is the "object" method: $o_URL = ObjCreate("Shell.Application") $o_URL.Open('www.google.nl') My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
meamrussian Posted July 13, 2005 Author Share Posted July 13, 2005 comspec: failed at all methods i tried.object: worked for me.dll: havent tried.and this is the "object" method:$o_URL = ObjCreate("Shell.Application") $o_URL.Open('www.google.nl')<{POST_SNAPBACK}>Oh, that's for the beta version Link to comment Share on other sites More sharing options...
blindwig Posted July 13, 2005 Share Posted July 13, 2005 comspec: failed at all methods i tried.object: worked for me.dll: havent tried.and this is the "object" method:$o_URL = ObjCreate("Shell.Application") $o_URL.Open('www.google.nl')<{POST_SNAPBACK}>For some reason, that doesn't work for me unless I put http:// in front of the address. My UDF Threads:Pseudo-Hash: Binary Trees, Flat TablesFiles: Filter by Attribute, Tree List, Recursive Find, Recursive Folders Size, exported to XMLArrays: Nested, Pull Common Elements, Display 2dSystem: Expand Environment Strings, List Drives, List USB DrivesMisc: Multi-Layer Progress Bars, Binary FlagsStrings: Find Char(s) in String, Find String in SetOther UDF Threads I Participated:Base64 Conversions 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