Jump to content

Standard UDF library


Jos
 Share

Recommended Posts

I'll look at adding them, and IF I add them In then the help file would be updated.

Would be helpful to know where you got the values for those two.

I'm not finding any documentation to support those, and until I do they won't be added.

You won't find much documentation, it's really really obscure.

Well really they are 4 constants taken from winuser.h. I merged the names as it seemed silly to have them seperate (as it does both of those at the same time).

#define SB_TOP 6

#define SB_LEFT 6

#define SB_BOTTOM 7

#define SB_RIGHT 7

MSDN: WM_VSCROLL

MSDN: WM_HSCROLL

But the reason I came back today is to complain about the restrictions on _ArrayToString.

It seems pretty silly to have errors 8 & 9. It's a hastle to dump an array to string without a deliminator. Seems like an artificial restriction for no good reason.

EDIT:

Didn't mean to come off before as giving orders.

Edited by BlindWanderer
Link to comment
Share on other sites

  • 1 month later...

There are some great scripts in my autoit database you could include. Check my sig.

http://www.autoitking.co.nr Site is DOWN | My deviantART | No Topic Topic - Don't do it!-------------------- UDF's/Scripts:AutoIt: [BenEditor 3.6] [_ShutDown()]PHP: [CommentScript]Web Based AutoIt: [MemStats] [HTML to AU3] [User LogIn and SignUp script]
Link to comment
Share on other sites

Ask the author of the udf for that.

If you want to see the UDFs added you'll need to take the initiative. There is no one to receive your command to sift through functions and contact their authors - this is a community driven project.

Dale

Free Internet Tools: DebugBar, AutoIt IE Builder, HTTP UDF, MODIV2, IE Developer Toolbar, IEDocMon, Fiddler, HTML Validator, WGet, curl

MSDN docs: InternetExplorer Object, Document Object, Overviews and Tutorials, DHTML Objects, DHTML Events, WinHttpRequest, XmlHttpRequest, Cross-Frame Scripting, Office object model

Automate input type=file (Related)

Alternative to _IECreateEmbedded? better: _IECreatePseudoEmbedded  Better Better?

IE.au3 issues with Vista - Workarounds

SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y

Doesn't work needs to be ripped out of the troubleshooting lexicon. It means that what you tried did not produce the results you expected. It begs the questions 1) what did you try?, 2) what did you expect? and 3) what happened instead?

Reproducer: a small (the smallest?) piece of stand-alone code that demonstrates your trouble

Link to comment
Share on other sites

  • 3 months later...

before I do all the work to get them ready for inclusion, does anyone think it would be ok to include my web app udfs in a release?

I understand they use AutoIt for something that it was not meant to be used for, but I think that they are pretty cool and would be used by a good amount of people.

I'm just asking first because well they are for something that autoit wasnt meant for so I would hate to do all that work then get a no.

The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN

Link to comment
Share on other sites

  • Developers

before I do all the work to get them ready for inclusion, does anyone think it would be ok to include my web app udfs in a release?

I understand they use AutoIt for something that it was not meant to be used for, but I think that they are pretty cool and would be used by a good amount of people.

I'm just asking first because well they are for something that autoit wasnt meant for so I would hate to do all that work then get a no.

I didn't check your UDF's and don't know what they do but does this answer your question ?

I welcome input on the listed UDFs like errors/ideas/Helppage-typo's etc..

Also new UDF's are welcome as long as they adhere to the standards and are usefull for a larger group of scripters. (and time permits to get it included :lmao: )

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

I didn't check your UDF's and don't know what they do but does this answer your question ?

well i think they would be useful to quite a few people, and I am not aware of any standards I am breaking...

As for the UDFs, they make it so you can make web-based apps using pure autoit. theyre mostly very simple functions but seem to be very useful.

So in short it makes autoit able to do web-based programming (like php)

The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN

Link to comment
Share on other sites

  • 4 weeks later...

Hi, I'm not sure where to put this post, so excuse me if it is missplaced.

I want to report a "BUG" in two UDF functions: _GUICtrlListViewGetItemText and _GUICtrlListViewGetItemTextArray

Here is the code from the example of _GUICtrlListViewGetItemText function with one small change to demonstrate the issue:

#include <GuiConstants.au3>
#include <GuiListView.au3>
 
Opt ('MustDeclareVars', 1)
Dim $listview, $Btn_Get, $Btn_GetSelected, $Btn_Exit, $msg, $Status, $ret
GUICreate("ListView Get Item Text", 392, 322)

$listview = GUICtrlCreateListView("col1|col2|col3", 40, 30, 310, 149)
GUICtrlCreateListViewItem("line1|data1|more1", $listview)
GUICtrlCreateListViewItem("line2|data2|more2", $listview)
GUICtrlCreateListViewItem("|data3|more3", $listview)       ;This line is modified for the demonstration of the issue
GUICtrlCreateListViewItem("line4|data4|more4", $listview)
GUICtrlCreateListViewItem("line5|data5|more5", $listview)
$Btn_Get = GUICtrlCreateButton("Get From Index 2", 75, 200, 90, 40)
$Btn_GetSelected = GUICtrlCreateButton("Get Selected", 200, 200, 90, 40)
$Btn_Exit = GUICtrlCreateButton("Exit", 300, 260, 70, 30)
$Status = GUICtrlCreateLabel("", 0, 302, 392, 20, BitOR($SS_SUNKEN, $SS_CENTER))

GUISetState()
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE Or $msg = $Btn_Exit
            ExitLoop
        Case $msg = $Btn_Get
            GUICtrlSetData($Status, "")
            MsgBox(0, "Passed Item Index only", _GUICtrlListViewGetItemText ($listview, 2))
            MsgBox(0, "Passed Item Index, SubItem 0", _GUICtrlListViewGetItemText ($listview, 2, 0))
        Case $msg = $Btn_GetSelected
            GUICtrlSetData($Status, "")
            $ret = _GUICtrlListViewGetItemText ($listview)
            If ($ret <> $LV_ERR) Then
                MsgBox(0, "Selected Item", $ret)
                $ret = _GUICtrlListViewGetItemText ($listview, -1, 0)
                If ($ret <> $LV_ERR) Then
                    MsgBox(0, "Selected Item, SubItem 0", $ret)
                EndIf
            Else
                GUICtrlSetData($Status, "Nothing Selected")
            EndIf
    EndSelect
WEnd
Exit

It returns:

data3|more3

instead of

|data3|more3

both functions have the same issue.

Link to comment
Share on other sites

Hi, I'm not sure where to put this post, so excuse me if it is missplaced.

I want to report a "BUG" in two UDF functions: _GUICtrlListViewGetItemText and _GUICtrlListViewGetItemTextArray

Here is the code from the example of _GUICtrlListViewGetItemText function with one small change to demonstrate the issue:

This should of been placed in bug reports

A quick fix would be to edit the GuiListView.au3

in the _GUICtrlListViewGetItemText function replace:

If StringLen($str) Then
oÝ÷ Û­«­¢+Ø($$$%%ÀÌØíá}¥¹¥Q¡¸(

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

I'm working on a SPTI (scsi passthru interface) UDF. It requires a substantial number of data structures and constants to be available top to bottom several levels deep into nested function calls. Since globals are verboten in UDFs, is there a better way to work around that than the standard byref parameters? Having dozens of parameters passed byref from function to function up and down the stack is going to be painful to maintain.

-brendan

Link to comment
Share on other sites

I'm working on a SPTI (scsi passthru interface) UDF. It requires a substantial number of data structures and constants to be available top to bottom several levels deep into nested function calls. Since globals are verboten in UDFs, is there a better way to work around that than the standard byref parameters? Having dozens of parameters passed byref from function to function up and down the stack is going to be painful to maintain.

-brendan

Constants apparently are fine. At least one UDF collection already included as part of the standard AutoIt install uses constants.

Non-constant globals, for data structures? Depending on the specifics, I'm thinking you'll get resistance there. Perhaps, in another thread, you could explain the specifics of the problem.

-S

(Yet Another) ExcelCOM UDF"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly...[indent]...specialization is for insects." - R. A. Heinlein[/indent]
Link to comment
Share on other sites

Constants apparently are fine. At least one UDF collection already included as part of the standard AutoIt install uses constants.

Non-constant globals, for data structures? Depending on the specifics, I'm thinking you'll get resistance there. Perhaps, in another thread, you could explain the specifics of the problem.

Hmm. If it ends up being a nightmare I'll do so. Making the constants global may suffice to keep the functions reasonable. I'll just be sure to name them something that is unlikely to cause a namespace issue. :whistle:

One more thing on a related UDF: am I going to have trouble returning a non-global com object byref from a UDF if the object is created inside the UDF? If I make sure to pass the empty variable byref to the UDF, the returned com object should remain valid, right?

thanks,

-brendan

Edited by bhoar
Link to comment
Share on other sites

bhoar, before you get all crazy making a standards-compliant library you might want to actually see if it is something that might be included. I personally don't know why AutoIt would need the library you are planning to write. The library should offer things lots of people have needs for, not niche things. What you're working on sounds niche.

Link to comment
Share on other sites

bhoar, before you get all crazy making a standards-compliant library you might want to actually see if it is something that might be included. I personally don't know why AutoIt would need the library you are planning to write. The library should offer things lots of people have needs for, not niche things. What you're working on sounds niche.

Good point.

What I am writing is a library for talking directly to SCSI or SCSI-like (ATA/USB/Firewire) devices via SPTI. So far, I'm already using my code to lock/unlock optical drive trays as and to query drives for the position of the tray (open or closed), if the drive supports more recent MMCs. Note that the latter bit is not the same as whether or not media is mounted - this code can tell the difference between an empty loaded tray and an unloaded tray. It can't, of course, tell if the unloaded tray has media in it. :whistle:

I've got on my todo list routines to extract drive capabilities, media types, and other information from drives/discs, as well as some more esoteric code having to do with scsi optical robots & changers.

However, even if there's no interest in this, I won't be disappointed. I just prefer to learn to write my libraries in the recommended UDF style, for consistency across libraries and for future ideas that might prove to be more broadly useful. That makes some sense, right? Perhaps such questions should be in a different thread?

-brendan

Link to comment
Share on other sites

Yes, a separate thread would be a good idea. The problems you seem to be concerned about are not specific to a standard library distributed with AutoIt but rather are more general "how to do it the right way" things.

Link to comment
Share on other sites

This should of been placed in bug reports

A quick fix would be to edit the GuiListView.au3

in the _GUICtrlListViewGetItemText function replace:

If StringLen($str) Then
oÝ÷ Û­«­¢+Ø($$$%%ÀÌØíá}¥¹¥Q¡¸(
I don't have permission to post in Bug reports :whistle:

It still doesn't work. ;)

Try this:

#include <GuiConstants.au3>
#include <GuiListView.au3>
 
Opt ('MustDeclareVars', 1)
Dim $listview, $Btn_Get, $Btn_GetSelected, $Btn_Exit, $msg, $Status, $ret
GUICreate("ListView Get Item Text", 392, 322)

$listview = GUICtrlCreateListView("col1|col2|col3", 40, 30, 310, 149)
GUICtrlCreateListViewItem("line1|data1|more1", $listview)
GUICtrlCreateListViewItem("line2|data2|more2", $listview)
GUICtrlCreateListViewItem("||more3", $listview)
GUICtrlCreateListViewItem("line4|data4|more4", $listview)
GUICtrlCreateListViewItem("line5|data5|more5", $listview)
$Btn_Get = GUICtrlCreateButton("Get From Index 2", 75, 200, 90, 40)
$Btn_GetSelected = GUICtrlCreateButton("Get Selected", 200, 200, 90, 40)
$Btn_Exit = GUICtrlCreateButton("Exit", 300, 260, 70, 30)
$Status = GUICtrlCreateLabel("", 0, 302, 392, 20, BitOR($SS_SUNKEN, $SS_CENTER))

GUISetState()
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE Or $msg = $Btn_Exit
            ExitLoop
        Case $msg = $Btn_Get
            GUICtrlSetData($Status, "")
            MsgBox(0, "Passed Item Index only", _GUICtrlListViewGetItemText ($listview, 2))
            MsgBox(0, "Passed Item Index, SubItem 0", _GUICtrlListViewGetItemText ($listview, 2, 0))
        Case $msg = $Btn_GetSelected
            GUICtrlSetData($Status, "")
            $ret = _GUICtrlListViewGetItemText ($listview)
            If ($ret <> $LV_ERR) Then
                MsgBox(0, "Selected Item", $ret)
                $ret = _GUICtrlListViewGetItemText ($listview, -1, 0)
                If ($ret <> $LV_ERR) Then
                    MsgBox(0, "Selected Item, SubItem 0", $ret)
                EndIf
            Else
                GUICtrlSetData($Status, "Nothing Selected")
            EndIf
    EndSelect
WEnd
Exit

It returns "|more3" instead of "||more3"

Link to comment
Share on other sites

I don't have permission to post in Bug reports :whistle:

It still doesn't work. ;)

Try this:

It returns "|more3" instead of "||more3"

Guests can post in bug reports so can you.

changing the line I told you to resulted in the outcome you expect on my system

GUICtrlCreateListViewItem("||more3", $listview)       ;This line is modified for the demonstration of the issue
oÝ÷ Ú·­º¹ìÞÝ©Ýjëh×6
GUICtrlCreateListViewItem("|data3|more3", $listview)       ;This line is modified for the demonstration of the issue

returns |data3|more3

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

  • 4 weeks later...

I would like to point out that the there are two duplicate math functions in the UDF files that are now apart of the standard feature set of AutoIt.

_Ceil (UDF) = Ceiling (AutoIt)

_Floor (UDF) = Floor (AutoIt)

I figured this would be worth pointing out.

Edit: Small textual error.

Thanks,

JS

Edited by JSThePatriot

AutoIt Links

File-String Hash Plugin Updated! 04-02-2008 Plugins have been discontinued. I just found out.

ComputerGetInfo UDF's Updated! 11-23-2006

External Links

Vortex Revolutions Engineer / Inventor (Web, Desktop, and Mobile Applications, Hardware Gizmos, Consulting, and more)

Link to comment
Share on other sites

Link to comment
Share on other sites

  • Jos locked this topic
Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

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