Sign in to follow this  
Followers 0
TheSaint

Simple Dropbox For URL's

4 posts in this topic

#1 ·  Posted (edited)

I've finally come up with a simple solution for dragging & dropping a URL.
It's not perfect, but it does the job. Mostly just a tweak of some Help file examples.

Thanks also to AutoBert, for his StringRegExp and example that set me on the right path.

I have seen this requested for many times, so enjoy!

It goes without saying, that any improvements are welcome. :D

Dropbox For URLs.au3

#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>

Global $hGui, $g_hRichEdit

Example()

Func Example()
   Local $cnt, $URL, $val, $text
   Local $iMsg, $state = $WS_CAPTION + $WS_POPUP + $WS_CLIPSIBLINGS + $WS_SYSMENU
   $hGui = GUICreate(StringTrimRight(@ScriptName, 4), 160, 100, -1, -1, $state, $WS_EX_TOPMOST)
   $g_hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 140, 80, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
   GUISetState(@SW_SHOW)

   _GUICtrlRichEdit_SetEventMask($g_hRichEdit, $ENM_LINK)

   _GUICtrlRichEdit_AutoDetectURL($g_hRichEdit, True)

   $cnt = 0

   While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                _GUICtrlRichEdit_Destroy($g_hRichEdit)
                ExitLoop
             Case Else
               If $cnt = 20 Then
                  $text = _GUICtrlRichEdit_GetText($g_hRichEdit)
                  If $text <> "" Then
                     $val = StringRegExp($text, "(?s)((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)", 2)
                     If UBound($val) > 0 Then
                        $URL = $text
                        ClipPut($URL)
                        ;MsgBox(0, "URL", $URL, 0, $hGui)
                     Else
                        _GUICtrlRichEdit_SetText($g_hRichEdit, "Only URL's are supported!")
                        ;MsgBox(0, "Not URL", "Only URL's are supported!", 0, $hGui)
                     EndIf
                     Sleep(600)
                     _GUICtrlRichEdit_SetText($g_hRichEdit, "")
                  EndIf
                  $cnt = 0
               Else
                  $cnt = $cnt + 1
               EndIf
        EndSelect
    WEnd
EndFunc   ;==>Example

GUIDelete($hGui)

Exit

I also wanted a version that would work with an earlier version of AutoIt (v3.3.0.0), to use with updates for some older scripts (programs).

The following works fine on my Win XP laptop, but fails (also when compiled) on my Win 7 Netbook.

I found a RichEdit example in the GUICtrlCreateEdit function (Example 2) in the AutoIt v3.3.0.0 Help file, and modified that to suit my script.
Failure is no doubt due to 'MSCOMCT2.OCX' missing from the System32 folder, at the very least.

Any solution to getting the following to work on Win 7 would be greatly appreciated. Perhaps a different '.OCX' file etc.

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>

Global $oMyError

RichEditExample()

Exit

; Rich edit control EXAMPLE using GUICtrlCreateObj
; Author: Kåre Johansson
; AutoIt Version: 3.1.1.55
; Description: Very Simple example: Embedding RICHTEXT object
; Needs: MSCOMCT2.OCX in system32 but it's probably already there
; Date: 3 jul 2005
Func RichEditExample()
    Local $cnt, $DropBoxGUI, $GUIActiveX, $msg, $oRP, $state, $text, $URL, $val

    $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

    $oRP = ObjCreate("RICHTEXT.RichtextCtrl.1")
    If @error Then Return

    $state = $WS_CAPTION + $WS_POPUP + $WS_CLIPSIBLINGS + $WS_SYSMENU
    $DropBoxGUI = GUICreate(StringTrimRight(@ScriptName, 4), 160, 100, -1, -1, $state, $WS_EX_TOPMOST)

    $GUIActiveX = GUICtrlCreateObj($oRP, 0, 0, 140, 80)
    GUICtrlSetPos($GUIActiveX, 5, 5, 150, 90)

    $cnt = 0

    With $oRP; Object tag pool
        .OLEDrag()
        .Font = 'Arial'
        .Text = @CRLF & @CRLF & "     Drag & Drop a URL here."
        .SelBold = True
        .BackColor = 0xff00
        ;.FileName = @ScriptDir & '\RichText.rtf'
        ;$oRP.AboutBox()
        ;$oRP.SelBold = False
        ;$oRP.SelItalic = False
        ;$oRP.SelUnderline = False
        ;$oRP.SelFontSize = 8
        ;$oRP.SaveFile(@ScriptDir & "\RichText.rtf", 0)
    EndWith

    GUISetState(@SW_SHOW)

    While 1
        $msg = GUIGetMsg()

        Select
            Case $msg = $GUI_EVENT_CLOSE
                GUIDelete($DropBoxGUI)
                ExitLoop
            Case Else
                If $cnt = 20 Then
                    $text = $oRP.Text
                    If $text <> "" Then
                        If $text = @CRLF & @CRLF & "     Drag & Drop a URL here." Then
                            Sleep(2000)
                        Else
                            $val = StringRegExp($text, "(?s)((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)", 2)
                            If UBound($val) > 0 Then
                                $URL = $text
                                ClipPut($URL)
                                ;MsgBox(0, "URL", $URL, 0, $hGui)
                                Sleep(600)
                            Else
                                With $oRP
                                    .Text = "Only URL's are supported!"
                                EndWith
                                ;MsgBox(0, "Not URL", "Only URL's are supported!", 0, $hGui)
                                Sleep(1500)
                            EndIf
                        EndIf
                        With $oRP
                            .Text = ""
                            .SelBold = False
                        EndWith
                    EndIf
                    $cnt = 0
                Else
                    $cnt = $cnt + 1
                EndIf
        EndSelect
    WEnd
EndFunc   ;==>RichEditExample

Func MyErrFunc()
    MsgBox(0, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & Hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext , 5)
    ; Will automatically continue after 5 seconds

    Local $err = $oMyError.number
    If $err = 0 Then $err = -1

    SetError($err)  ; to check for after this function returns
EndFunc   ;==>MyErrFunc

And a slower embedded IE based version. This has an error in latest AutoIt, but works fine in v3.3.0.0.

#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

Local $DropboxGUI, $GUIActiveX, $loaded, $loops, $oBody, $oIE, $sHTML, $timeout, $urlpage

_IEErrorHandlerRegister()

$oIE = _IECreateEmbedded()
$DropboxGUI = GUICreate("URL Dropbox", 140, 140, -1, -1, _
    $WS_OVERLAPPED + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_SYSMENU, $WS_EX_TOPMOST)
$GUIActiveX = GUICtrlCreateObj($oIE, 5, 5, 125, 100)

$oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertHTML($oBody, "", "afterbegin")

$loaded = _IEPropertyGet($oIE, "locationurl")

$urlpage = $loaded
$loops = 0

$sHTML = ""
$sHTML &= "<HTML>" & @CR
$sHTML &= "<HEAD>" & @CR
$sHTML &= "<TITLE>Drag And Drop Example</TITLE>" & @CR
$sHTML &= "</HEAD>" & @CR
$sHTML &= "<BODY>" & @CR
$sHTML &= "</BODY>" & @CR
$sHTML &= "</HTML>"

_IELoadWaitTimeout(1)

While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        ; Quit, Close or Exit window
        GUIDelete($DropboxGUI)
        ExitLoop
    Case Else
        ;;;
        If $loops = 10 Then
            $loops = 0
            $loaded = _IEPropertyGet($oIE, "locationurl")
            If $loaded <> $urlpage Then
                _IEAction($oIE, "stop")
                _IEDocWriteHTML($oIE, $sHTML)
                If $loaded = "res://ieframe.dll/navcancl.htm" Then $loaded = ""
                $urlpage = $loaded
                _IEBodyWriteHTML($oIE, '<p style="WORD-WRAP: normal; WORD-BREAK: break-all; FONT-SIZE: 8px">' & $loaded & '</p>')
            EndIf
        Else
            $loops = $loops + 1
        EndIf
    EndSelect
WEnd

Exit

 

Edited by TheSaint
1 person likes this

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites



#2 ·  Posted

Added another method for earlier versions of AutoIt, that were before the inclusion of the RichEdit UDF.

NOTE - It works fine for me on Win XP, but fails on Win 7. Any solution to that would be greatly appreciated. :D

1 person likes this

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Well, I came up with a solution of sorts ... which works for me anyway, but not so great for sharing with an older AutoIt program of mine, that I hope to use it with, and I really do not want to recreate the program again in latest AutoIt, so I am still in need of a better solution.

I did quite a bit of research a few days ago, then went away for three days, so are just now attempting to recall the important bits, for those interested.

1. I installed the Visual Basic Runtime from here. That supposedly gave me the required library elements. This wasn't enough though.

2. Then doing some research both at the AutoIt Forum and online elsewhere, for the error message (Class is not licensed for use) that I was still getting, I came across Embedded activeX component - RichText. A post there mentions an ActiveX Fix, which I downloaded from here. The included reg file did the trick. I also came across what appears to be a similar thing, called vbctrls.reg, which is said to be located on the vb6 install CD, under \Common\tools\vb\controls. If that last had been at hand, I would have tried that first instead, but I have it buried away somewhere, and couldn't spare the time to find it ... and couldn't be bothered either. :P

P.S. I am not sure about the legality of that ActiveX Fix, so I have no intentions of recommending it. Users though, are free to do as they wish. It does seem odd to me though, that Microsoft have such a painful arrangement with these old controls, especially as the web is full of people struggling with a similar issue to mine. It is very much like VB .Net made VB6 programs redundant, which should not have been the case. According to what I have read, if the control was provided in a specific manner (attached to a form or something), then the licensing issue doesn't occur ... but I have no clue how to implement such in AutoIt ... if you even can.

Edited by TheSaint
1 person likes this

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Added a slower embedded IE based version. This has an error in latest AutoIt so doesn't run, but runs fine in v3.3.0.0. Tested on Win XP and Win 7 (32 bit).

Quite slow on my Win 7 Netbook, but I imagine it would be much faster on most PC's, so quite usable. It could however, be much slower with some links/URLs.

The slowness, it seems to me, is due to a minimum web page load time that cannot be avoided, that I know of. Would be great if we could avoid the web page for the URL from loading at all.

Edited by TheSaint
1 person likes this

AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Share this post


Link to post
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
Sign in to follow this  
Followers 0

  • Similar Content

    • Seminko
      By Seminko
      Hey fellas,
      I'm looking for an easy way to get an URL from an active browser.
      Now, I know about chrome and IE includes but the script I'm writing will be used by users with different browsers, obviously. I can imagine have both IE and Chrome includes in the script, identifying what browser the user uses etc but I was wondering if there is any other easier way.
      Thanks
      Seminko
    • dgm5555
      By dgm5555
      I'd like to create a dropbox uploader (and downloader) to provide a simple file sync without using the dropbox app.
      The following is my current code (cadged and modified from other posts and websites), but I can't even figure out how to get initial authorization. Can anyone help?
      NB I would be quite happy to use the oauth2 Generated access token if it bypassed a lot of this, but I'm not sure how to do this.
      (If you can't guess, I know virtually nothing about http calls)
      Alternatively if there is a working autoit dropbox up/downloader, I'm more than happy not to write my own (but couldn't find one)
      Thanks
       
      #include "WinHttp.au3" ; set the dropbox tokens ;to get the dropbox app_key and app_secret tokens, browse to https://www.dropbox.com/developers/apply?cont=/developers/apps and create a new app If $App_Key = "" Then $File = "" $App_Key = "" $App_secret = "" $Oauth_access_token = "" $Oauth_access_token_secret = "" ; this could possibly the personal Oauth2 Generated access token $App_folder = "" ; this is the name of your app - it's not currently needed in this code ; the folder where the uploaded file will be stored is: Dropbox/Apps/$App_folder EndIf Local $sURL = "https://api.dropbox.com/1/oauth/request_token " & _ "Authorization: OAuth oauth_version=""1.0"", oauth_signature_method=""PLAINTEXT"", " & _ "oauth_consumer_key=""" & $App_Key & """, " & _ "oauth_signature=""" & $App_secret & "&""" $hOpen = _WinHttpOpen() $FileHandle = FileOpen($File) $hConnect = _WinHttpConnect($hOpen, $sURL) $hRequest = _WinHttpOpenRequest($hConnect, "POST") _WinHttpReceiveResponse($hRequest) $sResult = "" Do $sResult &= _WinHttpReadData($hRequest) Until @error ;MsgBox(0, "", $sResult) ConsoleWrite($sResult & @CRLF) _WinHttpCloseHandle($hRequest) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen) ; response should be: ;oauth_token=<request-token>&oauth_token_secret=<request-token-secret> ;user will have to browse to the following and authorise the app ;https://www.dropbox.com/1/oauth/authorize?oauth_token=<request-token> ; you now need to generate an access token ; POST https://api.dropbox.com/1/oauth/access_token ; Header will be: ;Authorization: OAuth oauth_version="1.0", oauth_signature_method="PLAINTEXT", oauth_consumer_key="<app-key>", oauth_token="<request-token>", oauth_signature="<app-secret>&<request-token-secret>" ;reponse will be: ;oauth_token=<access-token>&oauth_token_secret=<access-token-secret>&uid=<user-id> ;now you can access the account and undertake actions ;eg get account info: ;GET https://api.dropbox.com/1/account/info ;Header: ;Authorization: OAuth oauth_version="1.0", oauth_signature_method="PLAINTEXT", oauth_consumer_key="<app-key>", oauth_token="<access-token>", oauth_signature="<app-secret>&<access-token-secret>" ; this function doesn't work, it will need to be modified to allow upload func upload($App_Key, $App_secret, $Oauth_access_token, $Oauth_access_token_secret, $File="") trayseticon("C:\Program Files\AutoIt3\Icons\cute panda.ico", -1) ; Get the file to upload Local $sDrive = "", $sDir = "", $sFilename = "", $sExtension = "" local $time=@HOUR & ":" & @MIN & ":" & @SEC local $Random = Random(0,32767,1) ; if a filename isn't passed to the function, then ask the user for one If $File = "" Then $File = fileopendialog("Pick something to upload", @desktopdir, "All (*.*)|Text files (*.txt)" ) EndIf ;message($File) ; Now open the file and load the data into memory local $array = _PathSplit($File,$sDrive, $sDir, $sFilename, $sExtension) ; get the file name and extension Local $i = UBound($array) - 1 local $sFile = fileopen($File,16) Local $data = fileread($sFile) local $size = @extended FileClose($File) ;set up the dropbox upload URL ;to get the dropbox tokens, browse to https://www.dropbox.com/developers/apply?cont=/developers/apps and create a new app ;$array[$i-1] is the file name of the file the user wants to upload and $array[$i] is the extension Local $sUrl = ("https://api-content.dropbox.com/1/files_put/dropbox"&"/"& $array[$i-1] & $array[$i] & _ '?oauth_consumer_key=' & $App_Key & _ " & oauth_token=" & $Oauth_access_token & _ " & oauth_signature_method=PLAINTEXT & oauth_signature=" & $App_secret & "%26" & $Oauth_access_token_secret & _ " & oauth_timestamp=" & $time & _ " & oauth_nonce=" & $RANDOM) ;Authorization: OAuth oauth_version="1.0", oauth_signature_method="PLAINTEXT", ;oauth_consumer_key="<app-key>", oauth_token="<access-token>", ;oauth_signature="<app-secret>&<access-token-secret>" msgbox(1,"URL",$sUrl) ; now attempt to upload the file with the generated dropbox URL Local $obj = ObjCreate("WinHttp.WinHttpRequest.5.1") ;message("here") $obj.Open("PUT", $sURL, False) If @error Then MsgBox(1,"ERROR","@1unable to upload" & " " &$array[$i-1] & $array[$i]) else ; message("request opened") $obj.SetRequestHeader("User-Agent", "User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0") ;$obj.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") $obj.SetRequestHeader("Content-Length", $size) ; if _FindNetwork() = "xavier" Then ; $obj.SetProxy(2, "number") ; endif ; message($sFile) $obj.Send($data) ; send the file to uploaded $oReceived = $obj.ResponseText $oStatusCode = $obj.Status If $obj.Status <> $HTTP_STATUS_OK Then ; local $FindError = FindError($oStatusCode) ; message($oReceived) msgbox(0 , "Error", "@2" & $oStatusCode & " :unable to upload " & $array[$i-1] & $array[$i]) else msgbox(0 , "success", "uploaded " & $array[$i-1] & $array[$i]) endif trayseticon("C:\Program Files\AutoIt3\Icons\panda.ico", -1) endif endfunc  
    • wakillon
      By wakillon
      Using GoogleDrive for store my files, some days ago, i discover those nice messages :
                 
      It is certain that if someone wants downloaded my files, such messages is not very encouraging !
      So, don't know which incompetent AV Google use, but i decided to try some other files hosters.
      I have made this script last year for GoogleDrive, but tired of false positives, i adapted it to OneDrive and Dropbox too. 
      Added the possibility to create a Html ShortcutRedirector as i use in my topics for download files.
       

      Buttons were made online with chimply.com the easy and free buttons generator !
       
      Source : SharedLink2DirectLink v1.0.0.9.au3.html
       
      Executable : SharedLink2DirectLink.exe.html
       
      Hope it can help someone ! 
    • Gimerly
      By Gimerly
      This .au3 file will take the trouble out of trying to gain your dropbox oauth_access_token and oauth_access_token_secret by doing it for you. when first run the program it will create an empty folder on your desktop. As you progress through the application it will create text files as needed. Be sure to follow each of the message box's instructions as it is vital that each step be completed before moving onto the next. Enjoy
    • MAS
      By MAS
      Hello
      I want to crack a URL by using the _WinHttpCrackUrl() function located in
      >winhttp UDF 
      It goes well for some URL's but for other URL's it gives error and sets the @error to 1
      the URL and my example
      #include "WinHttp.au3" #include <Array.au3> $url = "http://www.domain.com/dm/r.php?r=m%7C%23%23%7Cgh-oiv_%2Cf8t%2Cxg4%7C%23%23%7CWINbf%7C%23%23%7CCz1ytu9w%200%2F19%20%5C%5CMIDOOOcc%7C%7CccFt22%20Cz1ytu9w%200%2F19%20M5%2Czzzcc%7C%7CccUv9w%200%2F19%20M5%2Czcc%7C%7CccWzw3vu%2Fu5z0%20%2F-u5s9%20z0%20N9uBTbT-y5yb%7BfAjljEgBcFFnhcjAgncAkfCcjAhemfmElBAn%7D%20%28nninihCnnnnf%29cc%7C%7CccN9uBTbT-y5yb%7BmfmnhfhjchjmkcjiBfcBAkCcjBjAlmjnAmei%7D%20%28nninihCnnnnm%29cc%7C%7CccN9uBTbT-y5yb%7BfBEkfhikcBnilcjhmAcAngmcCkFfnkhmlBEA%7D%20%28BfghkFnCglek%29cc%7C%7CccSz8ur%2Fw9%20s9wv5z0%20W50%2Czrv%20f%20E0u9wyw5v9cc%7C%7CccWzw3vu%2Fu5z0%20%2Cz1%2F50%20WORKGROUPcc%7C%7CccLz7z0%20%2Cz1%2F50%20M5%2Czzzcc%7C%7CccCOM%20Oy90%20T519ztu%20%28v9-%29%20ncc%7C%7CccCOM%20S90%2C%20Czt0u%20%28_pu9%29%20mhcc%7C%7CccCOM%20S90%2C%20T519ztu%20%281v9-%29%20lincc%7C%7CccT69%20-z11%2F0%2C%20-z1y29u9%2C%20vt--9vv8t22p.cc%7C%7Ccc" $aUrl = _WinHttpCrackUrl($url) MsgBox(0, "Error", @error) _ArrayDisplay($aUrl, "_WinHttpCrackUrl()") if anyone can help in this thanks