Sign in to follow this  
Followers 0
bumblebee

Help with code

4 posts in this topic

#1 ·  Posted (edited)

Hello AutoIT friends. Need some help please. :)

I can't figure out how to fix my code. Here is a part of the code

GUICreate("My GUI", 600,600,-1,-1,$WS_SIZEBOX+$WS_SYSMENU)
GUICtrlCreatePic( GUICtrlRead($file) , 0, 0, 0, 0)

The '$file' will read information from an input box but I want the size of the 'My GUI' to be that of the size of $file (because size varies) and not just 600x 600. So if example I use 50 x 50 file, the GUI should also be 50 x 50. Any tips?

With RazerM's help, I got this code from him (thanks RazerM and Simulcal)

#include <GUIConstants.au3>

$pic = "C:\Temp\Test.jpg";put path to picture here
$dimensions = _GetExtProperty($pic, 26)
$dimension_array = StringSplit($dimensions, " x ", 1)
$width = $dimension_array[1]
$height = $dimension_array[2]
GUICreate("Picture example", $width, $height)
GUICtrlCreatePic($pic, 0, 0, $width, $height)
GUISetState()
While 1
 If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd
;===============================================================================
; Function Name: GetExtProperty($sPath,$iProp)
; Description:    Returns an extended property of a given file.
; Parameter(s):  $sPath - The path to the file you are attempting to retrieve an extended property from.
;                  $iProp - The numerical value for the property you want returned. If $iProp is is set
;        to -1 then all properties will be returned in a 1 dimensional array in their corresponding order.
;      The properties are as follows:
;      Name = 0
;      Size = 1
;      Type = 2
;      DateModified = 3
;      DateCreated = 4
;      DateAccessed = 5
;      Attributes = 6
;      Status = 7
;      Owner = 8
;      Author = 9
;      Title = 10
;      Subject = 11
;      Category = 12
;      Pages = 13
;      Comments = 14
;      Copyright = 15
;      Artist = 16
;      AlbumTitle = 17
;      Year = 18
;      TrackNumber = 19
;      Genre = 20
;      Duration = 21
;      BitRate = 22
;      Protected = 23
;      CameraModel = 24
;      DatePictureTaken = 25
;      Dimensions = 26
;      Width = 27
;      Height = 28
;      Company = 30
;      Description = 31
;      FileVersion = 32
;      ProductName = 33
;      ProductVersion = 34
; Requirement(s):   File specified in $spath must exist.
; Return Value(s):  On Success - The extended file property, or if $iProp = -1 then an array with all properties
;                  On Failure - 0, @Error - 1 (If file does not exist)
; Author(s):        Simucal (Simucal@gmail.com)
; Note(s):
;
;===============================================================================
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 ;==>_GetExtProperty

Impressive code though I was really lost along. Seems to be the code I am after (unless there are other ways ?). I did a test using 'Test.jpg', compiled the au3 then ran the exe but I got this error message :whistle:

$oFile = $oDir.Parsename ($sFile)

$oFile = $oDir.Parsename ($sFile)^ ERROR

Error: The requested action with this object has failed.

Any help will be much appreciated. Thank you.

bumblebee :)

Edited by bumblebee

bumblebee is a newbie...so help me God.

Share this post


Link to post
Share on other sites



HI,

this should work.

#include <GUIConstants.au3>
$pic = "c:\Dokumente und Einstellungen\xf01145\Eigene Dateien\Eigene Bilder\alien.gif";put path to picture here
$dimensions = _GetExtProperty($pic, 26)
$dimension_array = StringSplit($dimensions, " x ", 1)
MsgBox(64, "Info", "Width: " &$dimension_array[1] & @CRLF & "Height: " & $dimension_array[2])
GUICreate("Picture example", $dimension_array[1], $dimension_array[2])
GUICtrlCreatePic($pic, 0, 0, $dimension_array[1], $dimension_array[2])
GUISetState()
While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd
;===============================================================================
; Function Name: GetExtProperty($sPath,$iProp)
; Description:      Returns an extended property of a given file.
; Parameter(s):     $sPath - The path to the file you are attempting to retrieve an extended property from.
;                   $iProp - The numerical value for the property you want returned. If $iProp is is set
;         to -1 then all properties will be returned in a 1 dimensional array in their corresponding order.
;       The properties are as follows:
;       Name = 0
;       Size = 1
;       Type = 2
;       DateModified = 3
;       DateCreated = 4
;       DateAccessed = 5
;       Attributes = 6
;       Status = 7
;       Owner = 8
;       Author = 9
;       Title = 10
;       Subject = 11
;       Category = 12
;       Pages = 13
;       Comments = 14
;       Copyright = 15
;       Artist = 16
;       AlbumTitle = 17
;       Year = 18
;       TrackNumber = 19
;       Genre = 20
;       Duration = 21
;       BitRate = 22
;       Protected = 23
;       CameraModel = 24
;       DatePictureTaken = 25
;       Dimensions = 26
;       Width = 27
;       Height = 28
;       Company = 30
;       Description = 31
;       FileVersion = 32
;       ProductName = 33
;       ProductVersion = 34
; Requirement(s):   File specified in $spath must exist.
; Return Value(s):  On Success - The extended file property, or if $iProp = -1 then an array with all properties
;                   On Failure - 0, @Error - 1 (If file does not exist)
; Author(s):        Simucal (Simucal@gmail.com)
; Note(s):
;
;===============================================================================
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   ;==>_GetExtProperty

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

Share this post


Link to post
Share on other sites

Worked like a charm Mega. Thank you very much. Of course thanks to RazerM for the PM reply and Simulcal for the function. :whistle::):)


bumblebee is a newbie...so help me God.

Share this post


Link to post
Share on other sites

HI,

:) no problem. Wasn't that much to do. :whistle:

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

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