brdude Posted July 31, 2006 Share Posted July 31, 2006 I am creating a script to download specific files from the web. It knows wich file to download because it gets the link from a Exel spread sheet. Now the number of links is that has to download from always changes. And some times it dosent contain a link. Well here is the problem I tried to set it so that if the variable contains nothing it dosent even try to visit that site. I am a c++ coder so I tried these two codes. If $link <> "" Then and If $link <> ''Then but neither work. I have been searching the forum but no luck so far. I would apreciate it if any one wold help me with this. Thanks Link to comment Share on other sites More sharing options...
Xenobiologist Posted July 31, 2006 Share Posted July 31, 2006 Hi, doesn't look that wrong. Might show your script and / or the error? So long, Mega Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
brdude Posted July 31, 2006 Author Share Posted July 31, 2006 There is no error but I have been checking of things and even where there is no link it still tries to visit that page. But here is the code. expandcollapse popup#include <IE.au3> Opt("WinWaitDelay",100) Opt("WinTitleMatchMode",2) $oIE = _IECreate ("www.specpage.com") Sleep(5000) WinActivate("Microsoft Excel") WinWait("Microsoft Excel") Send("{CTRLDOWN}c{CTRLUP}") $name = ClipGet() Sleep(500) Send("{RIGHT}{CTRLDOWN}c{CTRLUP}") $link = ClipGet() Sleep(500) _IENavigate ($oIE, $link) WinActivate("Windows Internet Explorer") WinWait("Windows Internet Explorer") Sleep(2000) MouseMove(30, 150) Sleep(5000) While $name <> "" WinActivate("Microsoft Excel") WinWait("Microsoft Excel") if $link <> Then Send("{LEFT}{DOWN}{CTRLDOWN}c{CTRLUP}") $name = ClipGet() Sleep(500) Send("{RIGHT}{CTRLDOWN}c{CTRLUP}") $link = ClipGet() Sleep(5000) _IENavigate ($oIE, $link) Sleep(5000) WinActivate("Windows Internet Explorer") WinWait("Windows Internet Explorer") Sleep(2000) MouseMove(30, 150) Sleep(5000) EndIf WEnd Link to comment Share on other sites More sharing options...
PsaltyDS Posted July 31, 2006 Share Posted July 31, 2006 (edited) There is no error but I have been checking of things and even where there is no link it still tries to visit that page. But here is the code. CODE #include <IE.au3> Opt("WinWaitDelay",100) Opt("WinTitleMatchMode",2) $oIE = _IECreate ("www.specpage.com") Sleep(5000) WinActivate("Microsoft Excel") WinWait("Microsoft Excel") Send("{CTRLDOWN}c{CTRLUP}") $name = ClipGet() Sleep(500) Send("{RIGHT}{CTRLDOWN}c{CTRLUP}") $link = ClipGet() Sleep(500) _IENavigate ($oIE, $link) WinActivate("Windows Internet Explorer") WinWait("Windows Internet Explorer") Sleep(2000) MouseMove(30, 150) Sleep(5000) While $name <> "" WinActivate("Microsoft Excel") WinWait("Microsoft Excel") if $link <> Then Send("{LEFT}{DOWN}{CTRLDOWN}c{CTRLUP}") $name = ClipGet() Sleep(500) Send("{RIGHT}{CTRLDOWN}c{CTRLUP}") $link = ClipGet() Sleep(5000) _IENavigate ($oIE, $link) Sleep(5000) WinActivate("Windows Internet Explorer") WinWait("Windows Internet Explorer") Sleep(2000) MouseMove(30, 150) Sleep(5000) EndIf WEnd This is wrong: if $link <> Then Missing the second operator to compare with: if $link <> "" Then That gets you "If $link is not equal to an empty string, then..." as you would expect. Edited July 31, 2006 by PsaltyDS 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...
jefhal Posted July 31, 2006 Share Posted July 31, 2006 (edited) $link = ClipGet() if $link <> ThenEven if you put the "" back into the second line, are you sure that $link is really empty when you put a null clipget into it? Maybe clipget() puts some kind of character into $link even if the clip is "empty"... Try throwing this line into your script just after you set $link to clipget():MsgBox(0,"$link",$link) Edited July 31, 2006 by jefhal ...by the way, it's pronounced: "JIF"... Bob Berry --- inventor of the GIF format Link to comment Share on other sites More sharing options...
/dev/null Posted July 31, 2006 Share Posted July 31, 2006 There is no error but I have been checking of things and even where there is no link it still tries to visit that page. But here is the code. #include <IE.au3> $name = ClipGet() Sleep(500) Send("{RIGHT}{CTRLDOWN}c{CTRLUP}") $link = ClipGet() Sleep(500) well, did you ever check what's in $name and $link after the call to ClipGet(). msgbox() is your friend. Cheers Kurt __________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf * Link to comment Share on other sites More sharing options...
brdude Posted August 1, 2006 Author Share Posted August 1, 2006 well, did you ever check what's in $name and $link after the call to ClipGet(). msgbox() is your friend.CheersKurtSorry just got a chance to check it rigth now.I added the code in and the message box comes out empty. I also checked the exel file to see if there was a space and it is empty. I also fixed the code I was messing with it and forgot to put it back sorry about that. For some reason the string comparation is not working. If it maters at all I am using the latest beta of autoit. Any thoughts on this guys? Link to comment Share on other sites More sharing options...
zfisherdrums Posted August 1, 2006 Share Posted August 1, 2006 Sorry just got a chance to check it rigth now. I added the code in and the message box comes out empty. I also checked the exel file to see if there was a space and it is empty. I also fixed the code I was messing with it and forgot to put it back sorry about that. For some reason the string comparation is not working. If it maters at all I am using the latest beta of autoit. Any thoughts on this guys? One thing I've done is to check the length of the returned string. If the length > 0 then you have something to pass on. If StringLen($Link) > 0 then ... Does this help at all? Identify .NET controls by their design time namesLazyReader© could have read all this for you. Unit Testing for AutoItFolder WatcherWord Doc ComparisonThis here blog... Link to comment Share on other sites More sharing options...
zfisherdrums Posted August 1, 2006 Share Posted August 1, 2006 One last thing. I hope this isn't being presumptious, but I've had a lot of fun (read ANGER) with using sendkey operations between programs. They can be finicky, you know? I wanted to send you an example of using Excel's COM object to make the process of retrieving the links a little less susceptible to 'hiccups' like dialog forms, interrupting windows, etc. This is just an idea I had while perusing your code. Identify .NET controls by their design time namesLazyReader© could have read all this for you. Unit Testing for AutoItFolder WatcherWord Doc ComparisonThis here blog... 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