Jump to content

IE pro needed


Recommended Posts

ok maybe not pro but someone smarter then me lol.

I got a script that looks at pictures and displays them on the gui its working fine but ran into a small problem i want the gui to fit the image.

so for example I am looking at a picture with theses dimensions 288 (Width) x 352 (height) ;so the gui is the same size as the picture

I want the gui to be like this

; dimensions 288 x 352

GUICreate("Embedded Web control Test" ,  288 , 352)
GUISetState()       
while 1
sleep(1000)
wend
Edited by testingtest
Link to comment
Share on other sites

I would think that you will be down-loading the pic anyways...so, that has little to do with IE.au3. Maybe more like getting the pic's dimensions through file info...not IE

8)

... unless it has to be "embedded"... still cant see the use though

Edited by Valuater

NEWHeader1.png

Link to comment
Share on other sites

ok maybe not pro but someone smarter then me lol.

I got a script that looks at pictures and displays them on the gui its working fine but ran into a small problem i want the gui to fit the image.

so for example I am looking at a picture with theses dimensions 288 (Width) x 352 (height) ;so the gui is the same size as the picture

I want the gui to be like this

Well, the GUI is the easy part. I don't suppose you already have a slick way to get metadata from the picture file for width and height in pixels?

I worked on a tweak to a function by Simucal that I called _FileGetExtProp(). It should be able to get the width and height from properties number 27 and 28, but alas, in my versions of XP, it's broke and only shows the first eight properties (see the notes at the bottom of that post).

You can try it with your Windows version/patch level and see if it works.

:)

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

I'm not an IE expert, I don't even know HTML, but I'm guessing that using lines like:

<img src='http://www.example.com/test.gif' width='50' height='50' alt='' />

you can adjust the width/height of the picture, in this case 50x50. If this does infact work (correct me if i'm wrong) than perhaps the script will produce a "prewritten" .htm file.

Something like..

$FileLines = "<img src='" & $PictureLink & "' width='50' height='50' alt='' />"
FileWrite("test.htm", $FileLines)

$oIE.navigate("test.htm")

I'm only guessing that the line of HTML will allow you to adjust the width/height of the picture. Good luck.

Edited by nooby
Link to comment
Share on other sites

Great idea.. Here's an example.. this will scale out ANY picture to your GUI:

$oIE = ObjCreate("Shell.Explorer.2")
GUICreate("Embedded Web control Test", 288, 352)
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 288, 352)
GUISetState()
ViewPicture("http://www.autoitscript.com/forum/uploads/av-9334.jpg")

While 1
    Sleep(50)
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
WEnd

Func ViewPicture($Link)
    FileDelete(@ScriptDir & "\test.htm")
    Sleep(500)
    $Lines = '<html>' & @CRLF & _
    "<img src='" & $Link & "' width='245' height='312' alt='' />" & @CRLF & _
    '</html>'
    FileWrite(@ScriptDir & "\test.htm", $Lines)
    Sleep(500)
    $oIE.navigate(@ScriptDir & "\test.htm")
    $oIE.document.body.scroll = "no"
EndFunc

In this example, it scales out PsaltyDS's avatar to fit the GUI.

Kurt

Awaiting Diablo III..

Link to comment
Share on other sites

ok it was a secret but here you'll get a better idea

it is to view live video feed of webcams but some are different sizes

#include <GUIConstants.au3>
#include <IE.au3>
MsgBox(0 , "Note" , "some cameras have a set refresh rate so be patient")
Global $Feed
$GUI = GUICreate("Live Cam By Proxy-Demon", 237, 50)
$Feed = GUICtrlCreateCombo("Live Feed Camera", 0, 0, 235, @DesktopHeight)
GUICtrlSetData(-1, "CN Tower|Niagara Falls")
$Select = GUICtrlCreateButton("Select...", 0, 24, 75, 25, 0)
$About = GUICtrlCreateButton("About", 80, 24, 75, 25, 0)
$Exit = GUICtrlCreateButton("Exit", 160, 24, 75, 25, 0)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Select
            _Select()
        Case $About
        MsgBox(0,"About","I have made this so people can acess just a few cool cameras that are live feed and most of them are Canadian cameras." & @CRLF & @CRLF & "You never know what you might see." & @CRLF & @CRLF & " ")
        Case $Exit
        Exit
    EndSwitch
WEnd

Func _Select()
    If GUICtrlRead($Feed) = "" Then _Error()
    If GUICtrlRead($Feed) = "Live Feed Camera" Then _Error()
    If GUICtrlRead($Feed) = "CN Tower" Then _Refresh("http://www.2ontario.com/webcam/oissouth.jpg")
    If GUICtrlRead($Feed) = "Niagara Falls" Then _IECreate("mms://niagaracam.protected.ca/niagara" , 0 , 1 , 1 , 0)

EndFunc

Func _Refresh($Site)
    ;manual buffering
    $oIE = ObjCreate("Shell.Explorer.2") ;600x400
    GUICreate("Embedded Web control Test" , 600 , 400)
    $GUIActiveX = GUICtrlCreateObj($oIE , 0 , 0 , 600 , 360)
    $GUI_Refresh = GuiCtrlCreateButton("Refresh" , 0 , 360 , 100,  30)
    GUISetState()       
    $oIE.navigate($Site)
    While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $GUI_Refresh
                $oIE.navigate($Site)
              EndSelect
              Wend
              GUIDelete ()
EndFunc

;   288x352
Func _Error()
    MsgBox(0 , "Error" , "that is not a proper video feed")
EndFunc
;mms://niagaracam.protected.ca/niagara
Link to comment
Share on other sites

Well just as I was reading your post, I had finished a working example:

$oIE = ObjCreate("Shell.Explorer.2")
$GUI = GUICreate("Embedded Web control Test", 288, 352)
$GUIActiveX = GUICtrlCreateObj($oIE, -28, -60, 1000, 1000)
GUISetState()
ViewPicture("http://www.autoitscript.com/forum/uploads/av-4920.jpg")

While 1
    Sleep(50)
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
WEnd

Func ViewPicture($Link)
    $File = @ScriptDir & "\test." & StringRight($Link, 3)
    $GuiSize = WinGetPos($GUI)
    InetGet($Link, $File)
    $Width = StringTrimRight(_GetExtProperty($File, 27),7)
    $Height = StringTrimRight(_GetExtProperty($File, 28), 7)
    WinMove($GUI, "", $GuiSize[0], $GuiSize[1], $Width+11, $Height+34)
    GUICtrlSetPos($GUIActiveX, -11, -16, $Width+22, $Height+34)
    $oIE.navigate($Link)
    $oIE.document.body.scroll = "no"
EndFunc

Func _GetExtProperty($sPath, $iProp)
    Local $iExist, $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
    $iExist = FileExists($sPath)
    If $iExist = 0 Then
        SetError(1)
        Return 0
    Else
        $sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
        $sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))
        $oShellApp = ObjCreate("shell.application")
        $oDir = $oShellApp.NameSpace ($sDir)
        $oFile = $oDir.Parsename ($sFile)
        If $iProp = -1 Then
            Local $aProperty[35]
            For $i = 0 To 34
                $aProperty[$i] = $oDir.GetDetailsOf ($oFile, $i)
            Next
            Return $aProperty
        Else
            $sProperty = $oDir.GetDetailsOf ($oFile, $iProp)
            If $sProperty = "" Then
                Return 0
            Else
                Return $sProperty
            EndIf
        EndIf
    EndIf
EndFunc

This seems to get the scales perfectly.

Kurt

Awaiting Diablo III..

Link to comment
Share on other sites

Well just as I was reading your post, I had finished a working example:

$oIE = ObjCreate("Shell.Explorer.2")
$GUI = GUICreate("Embedded Web control Test", 288, 352)
$GUIActiveX = GUICtrlCreateObj($oIE, -28, -60, 1000, 1000)
GUISetState()
ViewPicture("http://www.autoitscript.com/forum/uploads/av-4920.jpg")

While 1
    Sleep(50)
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
WEnd

Func ViewPicture($Link)
    $File = @ScriptDir & "\test." & StringRight($Link, 3)
    $GuiSize = WinGetPos($GUI)
    InetGet($Link, $File)
    $Width = StringTrimRight(_GetExtProperty($File, 27),7)
    $Height = StringTrimRight(_GetExtProperty($File, 28), 7)
    WinMove($GUI, "", $GuiSize[0], $GuiSize[1], $Width+11, $Height+34)
    GUICtrlSetPos($GUIActiveX, -11, -16, $Width+22, $Height+34)
    $oIE.navigate($Link)
    $oIE.document.body.scroll = "no"
EndFunc

Func _GetExtProperty($sPath, $iProp)
    Local $iExist, $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
    $iExist = FileExists($sPath)
    If $iExist = 0 Then
        SetError(1)
        Return 0
    Else
        $sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
        $sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))
        $oShellApp = ObjCreate("shell.application")
        $oDir = $oShellApp.NameSpace ($sDir)
        $oFile = $oDir.Parsename ($sFile)
        If $iProp = -1 Then
            Local $aProperty[35]
            For $i = 0 To 34
                $aProperty[$i] = $oDir.GetDetailsOf ($oFile, $i)
            Next
            Return $aProperty
        Else
            $sProperty = $oDir.GetDetailsOf ($oFile, $iProp)
            If $sProperty = "" Then
                Return 0
            Else
                Return $sProperty
            EndIf
        EndIf
    EndIf
EndFunc

This seems to get the scales perfectly.

Thanks but I tried it and it does not display the image

Kurt

It doesn't work for me :) Edited by testingtest
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...