Jump to content

BasicOs

Active Members
  • Posts

    450
  • Joined

  • Last visited

Everything posted by BasicOs

  1. Hi, I congrat Autoit Team for the great work done, Before, I was writting here, about a no-end street (a T street), about jumping into 2008 Compiler : #492585 Hardware prices is dropping so fast that XP will be forgotten in a few months, Vista will be the next OS as stated by M$ non written laws, anyone can keep working with old Autoit exes for more reasons but because OS 98 changes. I mean previous versions of Autoit are also very good versions, lighter, and quick. "autoit was allways good" My problem for that all is to code, the programming in a new way (version changes) not the OS underneath, Questions: 1._Will this changes involve also syntax changes? If they dont, new Vista machines are really cheap, and I can recompile old .au3 into new .EXEs with new Autoit versions. Nowadays OS changes are more than 10 times cheaper than 5 years ago, but handwork of recoding .au3 syntax. Value Handwork (as ours, he, is expensive) Is it right? 2.- Is it not possible to move the old 98 code into a 2008 non MS compiler?, that do not force you to a "must" make .exes only for Windows but for other different OS. Nowadays, Autoit is not only for low level processes, but for colourfull data interfaces and database accesses that can be moved into a friendly web page or any OS. 3.-Similar to point 2. I have heard and seen, new compilers let you create web apps, from the code, with AUTOIT "save as Web". Do the new compiler create an autoit.exe - engine where you can copy your au3 files for been used as web pages directly?. I mean, you get 2 versions of Autoit, one for binaries and scripts, another one where you can ADD some autoit scripts to be executed as php. (I know there are now a days some engines but not native to Autoit, YOU CAN NOT COPY one script and in one second and run it from web). The good side is that autoit can script (not only compiling), so the changes can be made in the autoit.exe, as autoitweb.exe, so you get your GUI into a Web page directly, and SQL database access also. Is it too difficult to have an autoitweb.exe that rewrite on-the fly output, these beatiful au3s we make every day. (I know low level access UDF could not be done). You could have no knowledge of html, and run an autoit web page. The good side of it all is that we can have working autoit into any PDA, linux or whatever, when the server got autoit.exe Thanks to all, great Autoit programming. Remember programming is not only programming it is thinking, that belongs to no OS directly. Do not mix coding with algorithm, Autoit makes algorithm and coding very near, and that is the great point, do twice job done with one hit. Salu2 Do not forget Windows Vista can be LAST Monopoly OS, AS new competitors arise like PDA´S OSs, it may fail in next version or not, Roman Empire was bigger than MS, and it dissapeared. Edit: better explaining. Moving into something new with a good reason for future, estrategic is not only for today but also for tomorrows programming.
  2. Hi folks, devs and all, My first thought was to applause and repeat the same song that most are saying, ... and dream of new crazy things for AutoIt with new, new, new stuff... so on.. Thinking a little deeper, and paying some attention to my surrounding, not thinking of myself, but mostly of the world scenario I got some hipotesis. I will try to write them properly but I do not know if everybody will catch the "crazy" inside of it all: You should make a more accurate approach to every single advantage, and any real disadvantage, and see if it is really good or not. So make some nice coding promises of some new special features please... hehe. : I see many new good things, but I do not see many deep changes in Autoit-coding in the last months so any late 2007 version can be used with lot of success for any Autoit programmer for lots of apps. So changing for changing is not allways a good basis. What I see around is some Windows-MS CRISIS or failure to develop and adapt to changes. I mean, it may be possible MS-Windows-growth could dissappear or become defeated with new products. Is it not a proof the downgrade of Vista into XP?, as Vista is not going to success as expected. May be is MS a prehistoric dynosar beginning to drop into an ICE-AGE? Or volcanic one. Well you wonder right now, if MS is not going to success, what the hell is the new survivor in for the new "ICE-AGE", I mean which will be the new survivors AFTER Microsoft-ERA. I have my theory of what will happen in future, say (in between 6-11 years), but you would not beleave me, you could think I am really mad. I will not say that mad ideas. I will not go so far, but I would say only what is probably happenning now, end of this year and next 2009 and 2010 in advance: Please, Think of a new allways long-expected OS, (after today´s LINUX and MS ERA), think of something working with all machines and devices, not only PCs, with fridges, laptops, handies, telephone, doors, cars, etc.... I mean something really realiable and USEFUL. NOT TALKING OF WINDOWS I am thinking that the fight between TV and PC is all crap. Now are handyies winning more space, and late 2009 will be wonderful OSs in many HANDIES (TELEPHONES), something like PALM, IPAQ, or BlackBerry OSs. Many of them are now shipped with microprocessors similar to those in low end PCs. As a summary, I think that we are going forward into a new non AUTOIT compatible based in MS Version TRAPS, we will open new doors, and close many more important old doors. Into a T road, closed. What I have seen till now, is that any PALM,IPAQ or Blackberry OS, could run easily any win98 compatible exe with some kind of compatible layer or virtual machine, but not so easily Vista or more advanced one. I mean, by example, linux runs, wine .. easily win98 and XP exes, but not Vista ones.... I mean: Now: w95 - w98/2000 - wXP - wVista closed doors# Autoit is here Here is Possible jumping into a compatibility layer/API of Blackberry or other winner OSs Moving: w95 - w98/2000 - wXP - wVista ########closed doors#Autoit is here Here is NO Possible jumping into a compatibility layer/API of Blackberry or other winner OSs. We got stuck in MS trap, closing doors All that here, it is only sharing some creative HIPOTESYS. Hypotesis should be proved, I cannot probe that it all will happen but I mean there is some chance for it. PCs will not dissapear so soon ... as there are alive users for them and programmers,. As same old MS-DOS and AT/386. I will support Jon in his work as I find he will find Autoit+s way as ussual. Great and Best Job to MAKE this winner in MS-ERA: AUTOIT programming language, people, and tools. I mean Autoit is now more than a mere programming LANGUAGE, it is alive. Salu2
  3. Hi ptrex!, Thanks, It can run in any IIS or Apache, as far as it is based in CONSOLE command output of autoit, which is sent or trapped forward the http server socket 80x. One should know a little bit more about IIS, how it handles the console command output (text streaming), and config the ini and config files which allow it for Autoit instead of php. In fact there are same knowledge steps/layers about it, and I have been studying mostly the UDFs layer cloning php behaviour, cookies, persistence..., if php runs, autoit can do the same replacing php. A not tested dirty trick could be to replace a working copy of php into php dir. And rename autoit.exe as php.exe for testing???. It could work even under Linux, autoit console command should be compatible under Linux Wine, as there are many Autoit commands working and compatible with linux. -->Web Server Layer ----> Autoit Console command using socket -->Serving http in socket 80>>The Internet>> Client End user Web browsing Ciao
  4. I include here full source code for including it in Autoitscript web-searchs-database. Another Topic revision. It includes 1.web-libraries. 2.One working sample. This is what you need for Web interfaces, for programms you make in Autoit, and you want to make an Web-Addon. Or make them only for web. IN the style of HP IP-LAN Printers/Scanners interfaces under web. Nowadays are web interfaces very popular for any IP-LAN-Machine. You need a small Web Server, as explained in autoitscrip or in www.autoit.es, search abyss Web Server. It should be made with apache either. You need it for giving life and serve the web-pages towards any Web-Browser. You can access this Autoit-server from any existing Operating System with HTTP/IP.( WHICH can open external ip, http connections). http://server_IP o serverName.com. http://192.168.1.10/myAutoitcode.ahp by example for executing a Web-Script. It works for Internet but it is more for LAN intended web pages (apps), as you can use PHP in the same way for WORLD apps and Autoit is not so much tested for so many users (it should work anyway). I use for some of my own apps under my lan, have a good time, extra info about firsts versions http://www.autoitscript.com/forum/index.ph...3625&hl=aha ; Author: BASICOS UDFs for dinamic web *.aha ;######### _Autoit Hypertext Automation Aha UDFs ############## ;Why not Aha, Why UDF LIKE aaa*, because we think it is easier aaa than aha to write so is our objective to keep easy code ;Opt("OnExitFunc", "aaaCommitAll") ;#include AhaIncludes #include <SQLite.au3> #include <SQLite.dll.au3> #include "Misc.AU3" #include <Mysql.au3> #include <Array.au3> #Include <Date.au3> #include <INet.au3> #include <IE.au3> ;------------------USEFUL VARS--------------------- Global $_REMOTE_ADDR = EnvGet('REMOTE_ADDR'), $_ACCEPT_LANGUAGE = EnvGet('HTTP_ACCEPT_LANGUAGE') Global $_HOST = EnvGet('HTTP_HOST'), $_ACCEPT_CHARSET = EnvGet('HTTP_ACCEPT_CHARSET') Global $_USER_AGENT = EnvGet('HTTP_USER_AGENT'), $_SERVER_SOFTWARE = EnvGet('SERVER_SOFTWARE') Global $_SERVER_NAME = EnvGet('SERVER_NAME'), $_SERVER_PROTOCOL = EnvGet('SERVER_PROTOCOL') Global $_SERVER_PORT = EnvGet('SERVER_PORT'), $_SCRIPT_NAME = EnvGet('SCRIPT_NAME') Global $_HTTPS = EnvGet('HTTPS') Global $sql, $_AhaActiveSyntax = "MYSQL", $_Credits = "Wellcome to .AHA (Autoit Hyperlink Access) #cs <1 <b>%%%</b> Visits <br> " Global $saaaB, $output = StringSplit("cookie;Content-Type: text/html;;;", ";") Global $ssAaa_Id, $ssAccessed $objErr = ObjEvent("AutoIt.Error", "MyErrFunc") $aCookies = StringSplit(EnvGet("HTTP_COOKIE"), ";") For $i = 1 To $aCookies[0] $var_array = StringSplit($aCookies[$i], "=") $var_array[1] = StringStripWS($var_array[1], 8) If $var_array[0] >= 2 Then Assign($var_array[1], $var_array[2], 2) Next If $ssAaa_Id Then $ssVat = IniRead(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "main", "ssVAT", "___empty") $wArrayofVars = StringSplit($ssVat, ";") For $in = 1 To $wArrayofVars[0] $sValorArchivado = IniRead(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "vars", $wArrayofVars[$in], "___empty") If $sValorArchivado = "___empty" Then aaaB("Some Error by reading one var in ssVAT:" & $wArrayofVars[$in] & "<br>") Assign($wArrayofVars[$in], $sValorArchivado, 2) Next EndIf $varstring = EnvGet("QUERY_STRING");gets If StringInStr($varstring, "=") Then $num = __StringFindOccurances($varstring, "=") Local $vars[$num + 1] $vars = StringSplit($varstring, "&") For $i = 1 To $vars[0] $var_array = StringSplit($vars[$i], "=") If $var_array[0] = 2 Then Assign($var_array[1], _URLDecode($var_array[2]), 2) Next EndIf $varstring = ConsoleRead(EnvGet("CONTENT_LENGTH"));post If StringInStr($varstring, "=") Then $num = __StringFindOccurances($varstring, "=") Local $vars[$num + 1] $vars = StringSplit($varstring, "&") For $i = 1 To $vars[0] $var_array = StringSplit($vars[$i], "=") If $var_array[0] = 2 Then Assign($var_array[1], $var_array[2], 2) Next EndIf ;aaab('@@ Debug(41) : $output[1] = ' & $output[1] & '>Error code: ' & @error & @lf);### Debug Console ; msgbox(0,"",$output[1]) ;aaaPrintAll() #cs;======================= Sample App aaaCreateAll("My page","","var1;var2;var3");"#FAFAFA",many vars separated by; as var1;var2;var3;var4 aaaInitCookie("juancook1", "Alnorte") ; CODE aaaB(EnvGet("HTTP_COOKIE") & "<br><br><br>") $var1 = $var1 + 1 $var2 = $var2 + 2 $juancook1 = "lloviendorrrrrrrrrrrrrr" $var3 = $var3 & $juancook aaaB("hola" & $var1 & $var2) aaaB("<br>" & $ssAaa_Id) ;$juancook=$juancook+1 aaab("<br>"&$juancook1) aaaB(aaaTable($sQuery, $Pretext, $precol, $inTd, $postcol, $Postext, $iEcho = 1)) aaaB(doAutoitCode()) aaaB(aaaTemplateParse($file, $sPoint, $sToPoint, $iKeepPoints, $sCollectedSplitVars = ";;")) aaaCommitAll() #ce ======================== End Sample App Func aaaCreateAll($sPageTitle = "", $sBkColor = "", $sSesVars = "") If $sPageTitle = "" Then $sPageTitle = StringReplace(@ScriptName, ".aha", "") aaaSession($sSesVars) aaaCreateContent() aaaStartTitle($sPageTitle) aaaSetBkColor($sBkColor) EndFunc ;==>aaaCreateAll Func aaaCommitAll($sExpireCookies = "") aaaCookies("SAVE", $sExpireCookies) aaaSession() aaaCloseData($sql) aaaPrintAll() EndFunc ;==>aaaCommitAll Func aaaPrintAll() ;aaa('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'& Chr(13) & Chr(10)) $saaaB=$saaaB aaa($output[2] & Chr(13) & Chr(10)) If $output[1] <> "cookie" Then aaa($output[1]) aaa($output[3]) aaa(Chr(13) & Chr(10)) aaa($output[4] & Chr(13) & Chr(10)) aaa($output[5] & $saaaB & "</body></html>") $output = StringSplit("cookie;Content-Type: text/html;;;", ";") $saaaB = "" EndFunc ;==>aaaPrintAll ;;;; Creating and defining web Func aaaCreateContent($sContent_Type = "text/html"); ;"\r\n\r\n" $output[2] = "Content-Type: " & $sContent_Type EndFunc ;==>aaaCreateContent Func aaaHeader($sSomeHeader); ;"\r\n\r\n" $output[3] = $output[3] & $sSomeHeader & Chr(13) & Chr(10) EndFunc ;==>aaaHeader Func aaaStartTitle($sTitle = "") If $sTitle Then $output[4] = "<html><head><title>" & $sTitle & "</title></head>" EndFunc ;==>aaaStartTitle Func aaaSetBkColor($sSetColor = "") $output[5] = "<body bgcolor=#FAFAFA >" EndFunc ;==>aaaSetBkColor Func aaaB($sNextOutput) $saaaB = $saaaB & $sNextOutput EndFunc ;==>aaaB Func aaaBReplace($stoSearch, $stoReplace) $saaaB = StringReplace($saaaB, $stoSearch, $stoReplace) EndFunc ;==>aaaBReplace Func aaa($sToConsole) ConsoleWrite($sToConsole) EndFunc ;==>aaa #cs #### Templating UDFs Here we do the file reads and vars replaces from *.tpl or cs Blocks #ce Func aaaBlockRead($sfileHtml, $sPoint, $sToPoint, $iKeepPoints, $sSomeHtml = "%%%") If Not $sSomeHtml Then $sSomeHtml = "%%%" $sFileVar = StringReplace(StringReplace(FileRead($sfileHtml), '"' & $sPoint & '"', ""), '"' & $sToPoint & '"', "") $sFileVar = StringReplace(StringReplace($sFileVar, "'" & $sPoint & "'", ""), "'" & $sToPoint & "'", "") $iStart = StringInStr($sFileVar, $sPoint) + _Iif($iKeepPoints, 0, StringLen($sPoint)) $iCount = StringInStr($sFileVar, $sToPoint) - $iStart + _Iif($iKeepPoints, StringLen($sToPoint), 0) $theOutput = StringReplace($sSomeHtml, "%%%", StringMid($sFileVar, $iStart, $iCount)) Return _Iif($theOutput, $theOutput, "No Points Found, No data sent") EndFunc ;==>aaaBlockRead #cs aaaArraysSearch $aDiccBase=stringsplit("Hallo;;Good Morning",";;") ;$aDiccSpanish=stringsplit("Hola;;Buenos Dias",";;") ;$aDiccGerman=stringsplit("Hei;;Guten Tag",";;") ;$sTSalutation=SelectedTranslation($aDiccBase,$aDiccSpanish,"Salutation") #ce Func aaa2ArraySearch($sSearch, $Array, $aReplaceFromArray) $Pos = _ArraySearch($Array, $sSearch) If $Pos = -1 Then Return "Not found " & $sSearch Else Return $aReplaceFromArray[$Pos] EndIf EndFunc ;==>aaa2ArraySearch #cs aaaTemplateParse uses script's vars or a;; separated vars array #ce Func aaaTemplateParse($file, $sPoint, $sToPoint, $iKeepPoints, $sCollectedSplitVars = ";;") If $sCollectedSplitVars = ";;" Then $sCollectedSplitVars = aaaCollectTemplateVars(aaaBlockRead($file, $sPoint, $sToPoint, $iKeepPoints)) EndIf Return aaaTemplate($sCollectedSplitVars, aaaBlockRead($file, $sPoint, $sToPoint, $iKeepPoints)) EndFunc ;==>aaaTemplateParse Func aaaTemplate($sSplitArray, $sTemplateString) $aArray = StringSplit($sSplitArray, ";;") For $i = 1 To $aArray[0] $sTemplate = StringReplace($sTemplateString, "{" & $aArray[$i] & "}", Eval($aArray[$i])) Next Return $sTemplateString EndFunc ;==>aaaTemplate Func aaaCollectTemplateVars($sTemplate) If StringInStr($sTemplate, "{") = 0 Or StringInStr($sTemplate, "}") = 0 Then Return "" $ilenTemplate = StringLen($sTemplate) $sSplitArray = "##;" For $i = 1 To $ilenTemplate If StringMid($sTemplate, $i, 1) = "{" Then $sStartVar = 1 $sOneVar = "" ContinueLoop EndIf If StringMid($sTemplate, $i, 1) = "}" Then $sStartVar = 0 $sSplitArray = $sSplitArray & ";;" & $sOneVar $sOneVar = "" EndIf If $sStartVar Then $sOneVar = $sOneVar & StringMid($sTemplate, $i, 1) Next Return $sSplitArray = StringReplace($sSplitArray, "##;;;", "") EndFunc ;==>aaaCollectTemplateVars #cs =================== COOKIES ========================== SET COOKIES LIKE THAT: $name = $value; expires = $expiration; path = $path;domain = $domain; $secure \r\n" ; note expires must follow GMT naming.by exampl. Sun, 27-Dec-2009 01:01:01 GMT ;"cookie4=400;expires = Wednesday, 30-Jul-2020 12:00:00 GMT" ;if the expiration date is not specified, the cookie will persist only until the user quits the browser. #ce #include <date.au3> #CS Expiredate ( $iValToAdd,$sType, , $sDate ); Author Basicos EXPIRE DATE Parameters $sType D = Add number of days to the given date M = Add number of months to the given date Y = Add number of years to the given date w = Add number of weeks to the given date h = Add number of hours to the given date n = Add number of minutes to the given date ==>default n minutes s = Add number of seconds to the given date $iValToAdd number to be added $sDate Input date in the format "YYYY/MM/DD[ HH:MM:SS]" default => today Return Value Success: Newly calculated date. Failure: 0 you get this date format 2006/10/17 06:49:51 and produces this type: Wednesday, 30-Jul-2020 12:00:00 GMT #ce Func aaaExpireDate($timeValue, $TypeTime = "minutes", $fromDate = "now_but_no_Gmt");see _dateAdd, for format note they should be GMT relative dates like in London or at my city If $fromDate = "now_but_no_Gmt" Then $fromDate = _NowCalc() If $TypeTime = "minutes" Then $TypeTime = "n" $sNewDate = _DateAdd($TypeTime, $timeValue, $fromDate) $part1 = _DateToDayOfWeek(StringLeft($sNewDate, 4), StringMid($sNewDate, 6, 2), StringMid($sNewDate, 9, 2)) $part1 = _DateDayOfWeek($part1, 0) $arrayMonths = StringSplit("Jan-Feb-Mar-Apr-May-Jun-Jul-Ago-Sep-Oct-Nov-Dic", "-") Return $part1 & ", " & StringMid($sNewDate, 9, 2) & "-" & $arrayMonths[Number(StringMid($sNewDate, 6, 2)) ] & _ "-" & StringLeft($sNewDate, 4) & " " & StringMid($sNewDate, 12) & " GMT" EndFunc ;==>aaaExpireDate Func aaaInitCookie($sCookie, $sValue = "", $sExpireDate = "") ; "cooki1=100" or "cooki1=100&cookie2=200&cookie3=300" or If Not StringInStr(EnvGet("HTTP_COOKIE"), $sCookie) Then EnvSet("HTTP_COOKIE", EnvGet("HTTP_COOKIE") & ";" & $sCookie & "=" & $sValue) Assign($sCookie, $sValue, 2) If $output[1] = "cookie" Then $output[1] = "Set-Cookie: " & $sCookie & "=" & Eval($sCookie) & _Iif($sExpireDate, ";expires= " & $sExpireDate, "") & Chr(13) & Chr(10) Else $output[1] = $output[1] & "Set-Cookie: " & $sCookie & "=" & Eval($sCookie) & _Iif($sExpireDate, ";expires= " & $sExpireDate, "") & Chr(13) & Chr(10) EndIf EndIf EndFunc ;==>aaaInitCookie Func aaaCookies($sAction = "SAVE", $sExpireDate = "") $aCookies = StringSplit(EnvGet("HTTP_COOKIE"), ";") If $sAction = "SAVE" Then For $i = 1 To $aCookies[0] $var_array = StringSplit($aCookies[$i], "=") $var_array[1] = StringStripWS($var_array[1], 8) If $var_array[0] >= 2 Then If $output[1] = "cookie" Then $output[1] = "Set-Cookie: " & $var_array[1] & "=" & Eval($var_array[1]) & _Iif($sExpireDate, ";expires= " & $sExpireDate, "") & Chr(13) & Chr(10) Else $output[1] = $output[1] & "Set-Cookie: " & $var_array[1] & "=" & Eval($var_array[1]) & _Iif($sExpireDate, ";expires= " & $sExpireDate, "") & Chr(13) & Chr(10) EndIf EndIf Next EndIf EndFunc ;==>aaaCookies #CS ################################ SESSIONS opens: _SS_Global("") or _SS_Global($sNewVarNames) closes _SS_Global("") #CE Func aaaSession($sNewVarNames = "", $sExpireDate = "");many vars separated by; as var1;var2;var3;var4 $wArrayofVars0 = StringSplit($sNewVarNames, ";") For $in0 = 1 To $wArrayofVars0[0] aaaSessionOne($wArrayofVars0[$in0], $sExpireDate) Next EndFunc ;==>aaaSession Func aaaSessionOne($sVarname = "", $sExpireDate = ""); open/Retrieve/Create vars, close&SaveVars session If $ssAaa_Id Then $ssVat = IniRead(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "main", "ssVAT", "___empty") If $ssVat = "___empty" Then aaaB(aaaMsgBox("Some Error by reading ssVAT")) If Not $sVarname Then $wArrayofVars = StringSplit($ssVat, ";") $ssAccessed = _NowCalc() For $in = 1 To $wArrayofVars[0] IniWrite(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "vars", $wArrayofVars[$in], Eval($wArrayofVars[$in])) Next Else If StringInStr($ssVat, $sVarname) = 0 Then IniWrite(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "main", "ssVAT", $ssVat & ";" & $sVarname) If Not IsDeclared($sVarname) Then Assign($sVarname, "", 2) EndIf Else If Not FileExists(@TempDir & "\sessions") Then DirCreate(@TempDir & "\sessions") $ssid = StringReplace(StringReplace(StringReplace(StringStripWS(_NowCalc(), 8) & "_" & EnvGet('REMOTE_ADDR'), ".", "_"), "/", ""), ":", "") & "_" Do $ret = Random(11111, 99999, 1) Until Not FileExists(@TempDir & "\sessions\" & $ssid & $ret & ".ini") $ssAaa_Id = $ssid & $ret IniWrite(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "main", "ssVAT", "ssAccessed" & _Iif($sVarname, ";" & $sVarname, "")) $ssAccessed = _NowCalc() If $sVarname Then Assign($sVarname, "", 2) IniWrite(@TempDir & "\sessions\" & $ssAaa_Id & ".ini", "vars", "ssAccessed", $ssAccessed) aaaInitCookie("ssAaa_Id", $ssAaa_Id, $sExpireDate) EndIf EndFunc ;==>aaaSessionOne Func aaaGetSID() Return $ssAaa_Id EndFunc ;==>aaaGetSID ;at least 128 bits in length are recommended since ;############ end session Func aaaMsgBox($text) Return "<script>alert('" & $text & "')</script>" EndFunc ;==>aaaMsgBox Func aaaEcho($text, $tag = "") If $tag <> "" Then $split = StringSplit($tag, " ") Return "<" & $tag & ">" & $text & "</" & $split[1] & ">" Else Return $text & @CRLF EndIf EndFunc ;==>aaaEcho Func aaaWebCounter($sCounterMsg = 'You are Visitor Number % to this page', $sCounter = 'visits.txt') Dim $i = 1 While Not FileExists($sCounter) Sleep(60) WEnd FileMove($sCounter, $sCounter & ".tmp", 1) $line = Number(FileReadLine($sCounter & ".tmp")) Return StringReplace($sCounterMsg, "%", String($line)) FileWriteLine($sCounter, $line) FileDelete($sCounter & ".tmp") EndFunc ;==>aaaWebCounter Func aaaExit() aaaSession() Exit EndFunc ;==>aaaExit Func aaaExit1($sPretext = "", $sLink = "", $sDisplay = "", $sPostext = "") ;; echoLink ($sPretext, $sLink, $sDisplay, $sPostext) ;; echoLink ("", "http://www.emesn.com:8000/telluserror.au3", "If you want to write something click here is Error Page", "<br>") ;; echoImg ("autoit.jpg", ' ALT="aHa Autoit Hypertext Programming"', "<center>Made in aHa - Autoit Hypertext Access %%%</center><br>") ;; _MySQLEnd ($sql) ;; Exit EndFunc ;==>aaaExit1 Func _MsgBox($text) ConsoleWrite("<script>") ConsoleWrite('alert("' & $text & '")') ConsoleWrite("</script>") EndFunc ;==>_MsgBox Func _GetClientIp() Return EnvGet('REMOTE_ADDR') EndFunc ;==>_GetClientIp ;=========================================================================; Other Scripter`s Code; ;;Func _Mail($to, $subject, $message, $from = "") ;; $oIE = _INetGetSource("http://www.codewizonline.com/email.php?to=" & _URLEncode($to) & "&from=" & _URLEncode($from) & "&subject=" & _URLEncode($subject) & "&msg=" & _URLEncode($message), 0, 0) ;;EndFunc ;==>_Mail Func _Mail($to, $subject, $message, $from = "") $oIE = _IECreate("http://www.codewizonline.com/email.php?to=" & _URLEncode($to) & "&from=" & _URLEncode($from) & "&subject=" & _URLEncode($subject) & "&msg=" & _URLEncode($message), 0, 0) _IEQuit($oIE) EndFunc ;==>_Mail Func __StringFindOccurances($sStr1, $sStr2); For $i = 1 To StringLen($sStr1) If Not StringInStr($sStr1, $sStr2, 1, $i) Then ExitLoop Next Return $i EndFunc ;==>__StringFindOccurances ;===========================================================================; _URLEncode(); Func _URLEncode($toEncode, $encodeType = 0) Local $strHex = "", $iDec Local $aryChar = StringSplit($toEncode, "") If $encodeType = 1 Then;;Encode EVERYTHING For $i = 1 To $aryChar[0] $strHex = $strHex & "%" & Hex(Asc($aryChar[$i]), 2) Next Return $strHex ElseIf $encodeType = 0 Then;;Practical Encoding For $i = 1 To $aryChar[0] $iDec = Asc($aryChar[$i]) If $iDec <= 32 Or $iDec = 37 Then $strHex = $strHex & "%" & Hex($iDec, 2) Else $strHex = $strHex & $aryChar[$i] EndIf Next Return $strHex ElseIf $encodeType = 2 Then;;RFC 1738 Encoding For $i = 1 To $aryChar[0] If Not StringInStr("$-_.+!*'(),;/?:@=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", $aryChar[$i]) Then $strHex = $strHex & "%" & Hex(Asc($aryChar[$i]), 2) Else $strHex = $strHex & $aryChar[$i] EndIf Next Return $strHex EndIf EndFunc ;==>_URLEncode ;===============================================================================; _URLDecode(); ;Description: : Tranlates a URL-friendly string to a normal string; ;Parameter(s): : $toDecode - The URL-friendly string to decode; ;Return Value(s): : The URL decoded string; ;Author(s): : nfwu; Note(s): : -;;=============================================================================== Func _URLDecode($toDecode) Local $strChar = "", $iOne, $iTwo Local $aryHex = StringSplit($toDecode, "") For $i = 1 To $aryHex[0] If $aryHex[$i] = "%" Then $i = $i + 1 $iOne = $aryHex[$i] $i = $i + 1 $iTwo = $aryHex[$i] $strChar = $strChar & Chr(Dec($iOne & $iTwo)) Else $strChar = $strChar & $aryHex[$i] EndIf Next Return StringReplace($strChar, "+", " ") EndFunc ;==>_URLDecode ;########Svenp Error UDF Func MyErrFunc() $hexnum = Hex($objErr.number, 8) MsgBox(0, "", "We intercepted a COM Error!!" & @CRLF & @CRLF & _ "err.description is: " & $objErr.description & @CRLF & _ "err.windescription is: " & $objErr.windescription & @CRLF & _ "err.lastdllerror is: " & $objErr.lastdllerror & @CRLF & _ "err.scriptline is: " & $objErr.scriptline & @CRLF & _ "err.number is: " & $hexnum & @CRLF & _ "err.source is: " & $objErr.source & @CRLF & _ "err.helpfile is: " & $objErr.helpfile & @CRLF & _ "err.helpcontext is: " & $objErr.helpcontext _ , 15) Exit EndFunc ;==>MyErrFunc #cs ################# Creating html tags #ce Func aaaLink($sLink, $sDisplay, $sPostext = "") Return ('<a href="' & $sLink & '">' & $sDisplay & '</a>' & $sPostext) EndFunc ;==>aaaLink Func aaaImg($sLink, $sDisplay, $sPostext = "") Return ('<IMG SRC="' & $sLink & '" ' & $sDisplay & '>' & $sPostext) EndFunc ;==>aaaImg Func aaaTable($sQuery, $Pretext, $precol, $inTd, $postcol, $Postext, $iEcho = 0);$precol you can include the name of a field you want to show mixed with html code $sQuery = StringStripWS($sQuery, 7) If StringLeft($sQuery, 6) <> "SELECT" Then Return 0 $wTheFields = StringMid($sQuery, 8, StringInStr($sQuery, " FROM ") - 8) $wcolumns = StringSplit($wTheFields, ",") $result = aaaQuery($sql, $sQuery) $sTable1 = "" With $result If Not .eof Then $sTable1 = $sTable1 & ('<TABLE ' & $Pretext & "<tr>") If $precol Then $sTable1 = $sTable1 & ("<th>Choose</th>") For $i = 1 To $wcolumns[0] $sTable1 = $sTable1 & ("<th>" & $wcolumns[$i] & "</th>") Next $sTable1 = $sTable1 & ("</tr>") ;// we have at least one user, so show all users as options in select form While Not .eof $sTable1 = $sTable1 & ("<TR>") If $precol Then If StringInStr($precol, "&&&") Then $sVari = StringSplit($precol, "&&&", 1) For $i = 1 To $sVari[0] If StringLeft($sVari[$i], 1) = "#" Then $sprecol = StringReplace($precol, "&&&" & $sVari[$i], .Fields (StringReplace($sVari[$i], "#", "") ).value);todowith any EndIf Next $sprecol = StringReplace($sprecol, "&&&", "") EndIf $sTable1 = $sTable1 & ("<td >" & $sprecol & "</td>") ; msgbox(0,"",$aprecol&"//"&$precol) EndIf For $i = 1 To $wcolumns[0] If StringInStr($wcolumns[$i], "date") > 0 Then;if stringlen(stringstripws(.Fields ($wcolumns[$i]).value,8))>6 then $sTable1 = $sTable1 & ("<td " & $inTd & ">" & _DateTimeFormat1(.Fields ($wcolumns[$i]).value) & "</td>") Else $sTable1 = $sTable1 & ("<td " & $inTd & ">" & .Fields ($wcolumns[$i]).value & "</td>") EndIf Next If $postcol Then $sTable1 = $sTable1 & ("<td>" & $postcol & "</td>") $sTable1 = $sTable1 & ("</TR>") .movenext WEnd $sTable1 = $sTable1 & ("</TABLE>") Else $sTable1 = $sTable1 & ("<option value="">No data</option>"); EndIf EndWith $sTable1 = _URLDecode($sTable1 & ($Postext)) If $iEcho Then aaa($sTable1) Return $sTable1 EndFunc ;==>aaaTable Func _DateTimeFormat1($laFecha) If Not $laFecha Then Return "" $laFecha = StringMid($laFecha, 9, 2) & ":"& StringMid($laFecha, 11, 2) & " a "& StringMid($laFecha, 7, 2) & "/" & StringMid($laFecha, 5, 2) & "/" & StringMid($laFecha, 1, 4) ;msgbox(0,"",_datetimeformat($lafecha)) Return $laFecha ;_datetimeformat($lafecha) EndFunc ; ######################## WEB PAGE preprocessing and ECHOING ;######## Form creating functions: Func aaaPostForm($wAction, $sPosttext) If StringLeft($sPosttext, 1) <> ">" Then $sPosttext = '><div align="center"><center>' & $sPosttext Return ('<form method="POST" action="' & $wAction & '" ' & $sPosttext) EndFunc ;==>aaaPostForm Func aaaInput($sType, $sName, $sValue, $Posttext = ">") Return '<input type="' & $sType & '" name="' & $sName & '" value="' & $sValue & '"' & $Posttext EndFunc ;==>aaaInput Func aaaTextArea($sName, $sDefault, $sRowCol = ' ROWS=5 COLS=8'); aaa("Mytextarea", Default text goes here Return ('<TEXTAREA NAME="' & $sName & '"' & $sRowCol & ' >' & $sDefault & ' </TEXTAREA>') EndFunc ;==>aaaTextArea ;aaaTextArea("info","","Info: %%%",' ROWS=10 COLS=8 ') Func aaaSubmit($sSubmit, $sPosttext) If $sPosttext = "" Then $sPosttext = '></p></center></div></form>' Return ('<input type="submit" value="' & $sSubmit & '"' & $sPosttext) EndFunc ;==>aaaSubmit Func aaaOptionBox($sSelectBody, $sField2Value, $sField2Display, $sQuery); creates an option box out of a query $sReturnvar= ('<select ' & $sSelectBody & '>') $result = aaaQuery($sql, $sQuery) With $result If Not .eof Then ;// we have at least one user, so show all users as options in select form While Not .eof $sReturnvar = $sReturnvar & ("<option value='" & .Fields ($sField2Value).value & "'>" & _URLDecode(.Fields ($sField2Display).value) & "</option>") .movenext WEnd Else $sReturnvar = $sReturnvar & ("<option value="">No " & $sField2Display & " created yet</option>") EndIf EndWith Return $sReturnvar & ('</select>') EndFunc ;==>aaaOptionBox ;###### Quick decoding Functions Func aaaHtml2ascii($sEchoed) $sEchoed = StringReplace($sEchoed, "<", "<") $sEchoed = StringReplace($sEchoed, ">", ">") Return $sEchoed ;StringReplace($sEchoed, "&", "&") EndFunc ;==>aaaHtml2ascii Func aaaAscii2Html($sEchoed) $sEchoed = StringReplace($sEchoed, "<", "<") $sEchoed = StringReplace($sEchoed, ">", ">") Return $sEchoed ;StringReplace($sEchoed, "&", "&") EndFunc ;==>aaaAscii2Html Func aaaDecode($stoDecode) $stoDecode = StringReplace($stoDecode, "%3E", ">") $stoDecode = StringReplace($stoDecode, "%3C", "<") $stoDecode = StringReplace($stoDecode, "%40", "@") Return $stoDecode EndFunc ;==>aaaDecode Func aaaUrlDecode($toDecode) Return _URLDecode(StringReplace($toDecode, "%0D%0A", "<br>")) EndFunc ;==>aaaUrlDecode Func aaaStringProtect($elString) Return StringReplace(stringreplace(stringreplace($elString,'"',""),"<",""),"'","") EndFunc #cs ####################### Database Usability Switching Funcs (only Mysql tested .. Sqlite coming) ;1 tested for mysql use iniFile to Store Pass;if you have diferent servers update passwords please in every Script ;iniwrite("c:\Windows\ahp.ini","Main","admin","root") #ce Func aaaConnect($sdatabase = "", $sadmin = "", $sPass = "", $sServer = "") ;Func _AhaConnect($sAdmin = IniRead("c:\Windows\ahp.ini", "Main", "admin", ""), $sPass = IniRead("c:\Windows\ahp.ini", "Main", "pass", ""), _ ;$sDatabase = $sPass = IniRead("c:\Windows\ahp.ini", "Main", "database", ""), $sServer = IniRead("c:\Windows\ahp.ini", "Main", "server", "")) If Not $sadmin Then $sadmin = IniRead("c:\Windows\ahp.ini", "Main", "admin", "") If Not $sPass Then $sPass = IniRead("c:\Windows\ahp.ini", "Main", "pass", "") If Not $sdatabase Then $sdatabase = IniRead("c:\Windows\ahp.ini", "Main", "database", "") If Not $sServer Then $sServer = IniRead("c:\Windows\ahp.ini", "Main", "server", "") If Not $sdatabase Then MsgBox(0, "Error", "Database No defined", 2) Select Case $_AhaActiveSyntax = "MYSQL" Return _MySQLConnect ($sadmin, $sPass, $sdatabase, $sServer);handle Case $_AhaActiveSyntax = "SQLite" _SQLite_Startup() Return _SQLite_Open($sdatabase); handle EndSelect Return 0 EndFunc ;==>aaaConnect ;2 tested for mysql Func aaaQuery($hDb, $sSqlQuery) Select Case $_AhaActiveSyntax = "MYSQL" Return _query ($hDb, $sSqlQuery) ; Object Case $_AhaActiveSyntax = "SQLite" Local $aResult, $iColumns, $iRows _SQLite_GetTable2d($hDb, $sSqlQuery, $aResult, $iRows, $iColumns);array ;_SQlite_Query (-1, $wSqlQuery, $hQuery) Return $aResult EndSelect Return 0 EndFunc ;==>aaaQuery ;3 tested for mysql Func aaaCloseData($hDb); Select Case $_AhaActiveSyntax = "MYSQL" _MySQLEnd ($hDb) Case $_AhaActiveSyntax = "SQLITE" ; _SQLite_Close ($hDb) ; _SQLite_Shutdown () EndSelect EndFunc ;==>aaaCloseData ;4 not tested Func aaaCreateData($hDb, $wcreateStr, $windex); here look for an easier format than SqlLite or Mysql ; syntax correction of parameters to fit Select Case $_AhaActiveSyntax = "MYSQL" aaaQuery($hDb, $wcreateStr) Case $_AhaActiveSyntax = "SQLITE" ; SQLite_Exec (-1, $wcreateStr, $windex) EndSelect EndFunc ;==>aaaCreateData ;############################ Counter Utils/Apps and Quick "PseudoApplets" Func Func aaaPushCount($sId2Count, $PrePosttext, $iShow);definition of tables at the end, 0 doesnt show(returns) 2 doesnt count the hit Global $mysql_link, $ListofNoIps = "213.231.111.176;81.37.64.128;88.1.50.23" $var1 = aaaQuery($sql, "SELECT impressions from tds_counter where page_path='" & $sId2Count & "'") With $var1 If .eof Then aaaQuery($sql, "INSERT into tds_counter VALUES (0, '" & $sId2Count & "', 0, 0,SYSDATE())") If $iShow Then aaa(StringReplace($PrePosttext, "%%%", "0")) Else If $iShow <> 2 And StringInStr($ListofNoIps, $_REMOTE_ADDR) = 0 Then aaaQuery($sql, "UPDATE tds_counter set impressions=impressions+1 where page_path='" & $sId2Count & "'") If $iShow Then aaa(StringReplace($PrePosttext, "%%%", .Fields ("impressions").value)) EndIf If $iShow <> 2 And StringInStr($ListofNoIps, $_REMOTE_ADDR) = 0 Then _ aaaQuery($sql, "INSERT into tds_counter_log VALUES (0, '" & $sId2Count & "','" & .Fields ("impressions").value & "', SYSDATE(),'" & _ $_REMOTE_ADDR & "z','" & $_ACCEPT_LANGUAGE & "z','" & $_HOST & "z','" & $_ACCEPT_CHARSET & "z','" & $_USER_AGENT & "z','" & $_SERVER_SOFTWARE _ & "z','" & $_SERVER_NAME & "z','" & $_SERVER_PROTOCOL & "z','" & $_SERVER_PORT & "z','" & $_SCRIPT_NAME & "z','" & $_HTTPS & "z')") $iHits = 0 If Not .eof Then $iHit = .Fields ("impressions").value EndWith Return $iHits EndFunc ;==>aaaPushCount Func aaaRunfromWeb($sProg, $sName, $sMsgTitle, $sMsg, $sPass = "");remote run ANY programm with password (or without), WARNING-ACHTUNG Global $pRunPass ;$sName & " runpass" posted If $pRunPass = $sPass Then If Eval($sName) Then Run($sProg) aaa("<b><br>Great Now " & $sProg & "is Running, Thanks<br></b>") Else If $pRunPass Then _MsgBox("Wrong Pass please Try again") EndIf aaa("<p>" & aaaPostForm("", $sMsgTitle)) aaa(aaaInput("hidden", $sName, $sProg)) If $sPass Then aaa(aaaInput("password", "runpass", "")) aaa(aaaSubmit($sMsg, "")) Return _Iif(FileExists("c:\windows\temp\WebOutput.txt"), FileRead("c:\windows\temp\WebOutput.txt"), "") EndFunc ;==>aaaRunfromWeb #cs definition tds_counter and tds_counter_log Field,Type,Null,Key,Default,Extra COUNT_ID,int(11),NO,PRI,NULL,auto_increment page_path,varchar(250),YES,,NULL, impressions,int(11),YES,,NULL, reset_date,timestamp,YES,,0000-00-00 00:00:00, ---------after here different for tds_counter_log add this fields Remote_Addr,varchar(18),YES,,NULL, Language,varchar(18),YES,,NULL, Host,varchar(18),YES,,NULL, Accept_Charset,varchar(18),YES,,NULL, User_Agent,varchar(18),YES,,NULL, Server_Software,varchar(18),YES,,NULL, Server_Name,varchar(18),YES,,NULL, Server_Protocol,varchar(18),YES,,NULL, Server_Port,varchar(18),YES,,NULL, Script_Name,varchar(18),YES,,NULL, Https,varchar(25),YES,,NULL,<?xml version="1.0"?> #ce ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;FILEMAN Sample: YourFirstahp.ahp (it is an au3 in fact) [autoit]Author: BASICOS www.emesn.com/autoitforum UDFs for dinamic web *.aha Global $gclean #include "f:\au4\htdocs\Aha3.AU3";llibrary call llamando a la libreria anterior. aaaCreateAll("Codes Control","","ssPass");"#FAFAFA",many vars separated by; as var1;var2;var3;var4 aaaInitCookie("ssPass", "") ; CODE if not $ssPass then aaaB ("<BR><BR><BR><TABLE><TR><TD><p>") aaaB (aaaPostForm ("", '><div align="center"><center><b>Access Password</b><br>')) aaaB (aaaInput ("hidden", "preact", "preact", ' >')) aaaB ("Contrase
  5. Hi, Thanks for your answer It is an English version of Library, only the fields of mysql database are spanish, or may be something else. The names of funcs I tryed they were selfExplaining. If you do not understand something tell me. I Try to Translate the Docs info inside the post here: This is what you need for Web interfaces, for programms you make in Autoit, and you want to make an Web-Addon. Or make them only for web. IN the style of HP IP-LAN Printers/Scanners interfaces under web. Nowadays are web interfaces very popular for any IP-LAN-Machine. You need a small Web Server, as explained in autoitscrip or in www.autoit.es, search abyss Web Server. It should be made with apache either. You need it for giving life and serve the web-pages towards any Web-Browser. You can access this Autoit-server from any existing Operating System with HTTP/IP.( WHICH can open external ip, http connections). http://server_IP o serverName.com. http://192.168.1.10/myAutoitcode.ahp by example for executing a Web-Script. This is not Aha3 but a funcional beta of Aha4. it works. Really it is the structure (eskeleton), of whatever once is made in AutoIt, it should be an Autoit Web. (There are other libraries with a different approach running in Autoit) With all that a shopping cart, or whatever similar, can be done. Or you can create a terrific colourful and effectful Interface with any designing tool as Photoshop, DreamWeaver, etc.., which the customer-enterprise-manager can reach some profit-reports, or good news reports, by example, made under Autoit. I repeat, it is a beta and works fine since some months without buggs (for the sample). Maybe some UDFs could be improved or more powerful, but the ANALYSYS JOB is done. Only test and check. No manual is made, but all is mostly self-explaining, it is full source code published and well structured and not crazy code. It is all autoit and some UDFs are self reused inside. You should read as a whole, because I made some UDFs for reuse inside to optimize and use less code lines. Enjoy it.., if you cannot read it means you should practise some months Autoit, some part of the code code force your Autoit Knowledge. That is no newbies. Please, if you wish to propose some code samples, it can be good for begginners who cannot read how the UDFs are made, but they can reuse this samples. Some patient for newbies. Have a good time with this tool. No limits for coding.. Spanish version. If you find something is not good translated, tell me please to correct: Versión en español. Si piensas que no está bien traducida, dimelo para corregirlo, GRACIAS http://www.emesn.com/autoitforum/viewtopic.php?p=917#917
  6. DINGGGGG Somebody tested this library and sample? Thanks
  7. I publish here as it is intended more for developers hard core code. Also it involves some inner php core knowledge, cookies, cache and so on. It works for Internet but it is more for LAN intended web pages (apps), as you can use PHP in the same way for WORLD apps and Autoit is not so much tested for so many users (it should work anyway). I use for some of my own apps under my lan, have a good time, The page is in Spanish, but the code is in Autoit There is the library aha4 beta and a sample of a php/styled sql with table web page, http://www.emesn.com/autoitforum/viewtopic.php?p=917#917 Saludos
  8. Sorry, I did not mean that because all signatures are the same for autoit engine and upx, I meant after upx+autoit engine+Scripting code. How do they detect changes is the scripting code? they do now binary level but that check can be overriden, what happens then when the low level checking is not anymore working? ... that was what I was talking about in last post ..... I do not give more details because it is not a joke. if some qualified Scripter wish, I can give details of: The danger and how is this Antivirus-Bug working. Exactly how they use the virus signatures. How I think, that AntivirGbh soluted the false check, easily. How next time it can became quite difficult even a headache for any antivir Company I will not explain anymore, because I do not want to give a Virus-Making Lesson... of how the bug is. P.S. Aha interface does not have problems with virus anyway, as there is no exe in client computer.
  9. For sure, they can look for traces in many ways. I made an Antivir for a group of customers, a long time ago(Echo/Bleah), and I know what it its looking for sigs, traces, reading Ram, Reading disk, fat, fixing mbr, accessing to bites level, and so on ... If they work a little more, even they could identify some dangerous autit code directly after UPX. Problem could evolve and take only months vir-makers make some changes, that could be really difficult to know what is dangerous or not. I will not explain how obviously. I see in a future we should solve that problem by our selves helping to Avir companys, if they need, how to make some rules of what is dangerous and what not. As nobody knows better Autoit code than self-Scripters.(I hope that will not be necessary) I think by example there is something made by Devs in eval() udf restrictions ....
  10. I respect anyone point of view, as au3->c in a whole thing is very difficult. not bad idea au3->c for small snippets as whole scripts are very difficult, two possible ways: *cInau3("SOME C+ INTERPRETED CODE") * au2crun("some C compiled code dll") I did something alike, look at my dbase udfs where you can use dbase code inside an au3 and execute any code the same as in DBASE III+ inside an au3.(replaced au3 code into dbase code, for dbase geeks not bad). by example( dbaseInAu3("select 1;use mydb; list ; print; open lpt; , blah blah blah")) Nice mostly for some dll or plugin so that not whole script is open and wide, so that we keep some warranty to some sensitive customers, or security issues. not bad for reading ini files -> c+ for using passwords (inputs) -> c+ if somebody do not like my english, make yourself an favour and learn some language else, before talking . I hate this senseless phrase: "this are my 2cts of Euro ", so i will not write such awfull words.
  11. BasicOs

    .NET

    very Clever, you off topic ..... You are off topic when you say somebody is off topic. (also me when I say itself) Have not you anything else better to say about this topic? because: (we are not so to know that this should be in topic, and who did this post is not so idiot, because he did something idiot waiting for idiots to say it is off topic), 1 off topic x 10000000 times = 0,000000 this post rate should be 00000 worth ... be comprehensive with other people idiotness and you will get yours idiotness. please be clever and do not say my english is not pure english, it should be of couse - off topìc ...
  12. this script is the very first running app as booting, it is a compiled script I made, Randomly gets =)(/&%$·"!ª instead of 0987654321 it changes upper keys, changes keyboard key functionality. I know how to fix it: pressing left-shift it works back well again. (sometimes even I need to press alt-Tab and then left-shift) Thank for ideas I think spanish keyboard has nothing to do
  13. I posted mine tuned and qip, scripts, look at my signature Attention, they were made for vers 3.1. Two scripts one for winnt_xp and another one for win98, they work fine. tested. if you do not want to update to the 3.2 look for the older compiler, thanks.
  14. not the right forum but if you want that I posted mine tuned and qip, scripts, look at my signature Attention, they were made for vers 3.1. Two scripts one for winnt_xp and another one for win98, they work fine. tested. if you do not want to update to the 3.2 look for the older compiler, thanks.
  15. I don't use warning message boxes. I use INFO message boxes - MsgBox(64,"","") *I know, I meant it is terrible: Attention you lost some file ..agggg, better a more wellcome or what ever.... I ask the users to chose the group, because sometimes (very often) they just click SCAN and dont pay attention to which group is selected, and the result is not satisfying. *then when starting focus on only group existing when there is only one, it is not nice when you want to perform an action and you get a NO. but anyway not bad at the moment, only better. When you press SAVE for me it means you have finished changes and you are ready to leave. That is why I close the dialog. If you want to make more changes, start it again. *a close button is not too bad, anyway When you press CANCEL there is a message warning you that the changes won't be saved and you can return to save them by clicking Cancel in this message. *Yes, it is fine. It doesn't go "to where ever". It goes to "c:\". But I think it would be more appropriate to go to the current users Desktop so I'll make it to go to @UserProfileDir&"\Desktop" *But why not to script's folder, usually you can keep all in one place You can already do this: 1. Select a PC from the tree. (The data will fill the boxes) 2. Change the IP with the new one. 3. Change the description (make sure there is no other PC with this description) 4. Press the Add/Edit button. *I meant "another", funnier way... only The "Quality" and "Perormance" are very dependable terms. Everyone has a different perspective for these terms. So you can "clone" (see the answer of your 6-th suggestion) a PC and change only the Description and the Connection options. This way you can have two entries for one PC (for example PC1-Quick and PC2-Quality) *You can propouse a couple even with a list box, the /help is not very good with this programms You are my favourite tester, indeed! *Thank you for paying attention to this changes..
  16. 1) SAME error than at the beginnig after scanning, Autoit Error $MAC=$NameMac[2] $MAC='ÊRROR Error: Array variable has incorrect number of subcripts or subscript dimension range exceeded. I promise I do not post again this I recommend: write a check before happening: if dimension rangexeceed then msgbox(ehh you take care that happened) Waiting for devs in a not yet a Opt(AutoitError,) with seconds, and fatal/not fatal. it stays the whole time there.. and breaks. 2) POINT: WHEN IT CREATES THE SETTINGS OR PC.INI, CHANGE mssge to a not warning msg but simply, msgbox("Database created for pcs, Wellcome" ) 3)when scanning do not ask for selecting a group it there is only one group, and if there are many select first one and ask for choice, if it is ok or not to create a new one. 4) WHEN saving in the pcs, it should not exit the form I only wanted to save. may be another button for close, and if you did not save, ask if you want to do it. 5)When you click Import it should go to scriptname_path, no to where ever 6)another option for a different way to clone, on clicking on pc, CLONE, then you have another pc included password cloned, and ask for a number of last ip: 192.168.10.5 ask for inputbox(0,"What Ip for cloned pc?",6) 7)an option for renaming a group 8) two buttons with predefined options: (1 Performance) (2 Quality) and insert the preferred options into the textbox depending of the predefined name of the viewer. 9) in settings change Other and write Lang and Paths well If you can do I will look for more, signed: your favourite and most hated beta tester. You should write that in the same msgbox :"
  17. Not changed anything, I used the exe.right now after importing "No MAC address is specified for this computer"
  18. As I posted before, you do not need nothing but the working vnc File, only import/execute it in your Script, and you will get the Error Msg at the same moment. Easy. . Anyway if something missing in my system better a non-Script-Exiting-Msgbox than a Fatal Error.
  19. Wait look at the 4th October post, I asked about Mac problems yet, and I kept posting 3 times more... about this bug. As I am polite, I supoussed that it was MY mistake and not your mistake, but now as I thought that importing from the file.vnc, could solve it, but it keeps happening so I know it is a program bug and not my mistake as the file works fine. So you should have a look to fix if you like to do. I do enough by showing your programm bug all right? I enjoy your work anyway .. Well I send you the file.. (None of all othersl Vnc-Control Programs I tested, do not use MAC, as far as I know) but anyway I like this option in yours, mostly for awaking.
  20. Bump NONE.... Please, Accept the Challenge!! ... for this Autoit App... Come on, all People here, There are only rich People in this Forum? If you do not want the money, but you have the time and skills please donate: Autoit Hosting Expenses Significant resource usage due to the active forum. I've always ran AutoIt as a non-profit venture and I dislike websites with adverts so please help with my web hosting bills. Thanks, Jon Choose your donation method: do you know some Scripter who can be interested in this Challenge?, the app should be made under: autoit/win32, sql, autoit/php(aha), some word macros. I should do most in Internet Explorer forms Autoit/php(aha) Depends of the job done and of the Scripters Skills, more or less $$ . High Skilled Scripter should finish in 3 weeks full time +3 weeks beta vers. part time job 15-18 tables access-->Sql Acces Forms --> Gui + Web forms Access Queries-->Sql Access REports ---> Web Reports Nobody found till know..
  21. I adlibenable is multithread? i DO NOT need to create a loop to catch the error?. I can RUN adlib in the process which remains alive.. @Valik I can not send you whole code more 300 lines this script, I send you the UDF. $sListofProcesses = "process.exe;c:\Archivos de Programa\Project1\process.exe;c:\Archivos de Programa\Project1;" & @SW_MAXIMIZE func multiProcessControl($sListofProcesses) $procesos = StringSplit($sListofProcesses, ";") For $i = 1 To $procesos[0] Step 4 If Not ProcessExists($procesos[$i]) Then $wsecerro = 1 If FileExists($procesos[$i + 1]) Then Run($procesos[$i + 1], $procesos[$i + 2], $procesos[$i + 3]) EndIf EndIf Next endFunc EDIT: Thanks .. if @OSType="WIN32_WINDOWS" THEN AdlibEnable("ControlaAUTOITERROR",1000)
  22. By now the only chance I found to destroy the AUTOIT ERROR " unable to get a list of running processes" IS TO CREATE ANOTHER PROCESS WHICH: if winexists("AUTOIT ERROR") THEN WINACTIVATE("AUTOIT ERROR") SEND("{ENTER}") ENDIF if anybody has another solution of keeping this msgbox out of user´s view tell me, thank you
  23. Thanks for helping.. Well the problem is that: same code works perfectly in Windows XP. Tested in 10 different PCS. same code works perfectly in Windows 98 when there is only one Script calling this line.(have to check) same code gets this Autoit Error if a second Script or scripts-Array is calling the line OR maybe something special of Win 98 more I have tested in many different ways, it keeps allways same msg ... I am content if somebody knows if I can stop the bug to show the Error because it is minor function I do not mind in Windows 98. That is what the autoit Error msgbox says: " unable to get a list of running processes" The problem is when if ProcessExists("someProcess.exe") Then calling that from a multiple-thread of some Scripts array, executing same line at the same time. I am very sorry sometimes I can not explain things as well as I liked to, try to understand from the good side.
  24. I just migrated ONE HUGE Visual Basic 6 app, doing 4.000 lines optimized autoit code, and 8 tables. After done that, I am required now to migrate another one: One customer who has another similar database/forms app to migrate from ACCESS 2000 --> into .NET, or ACCESS 2007. Nevertheless, I prefer to do it into Autoit, but I do not know if I will have time to do (I estimate about 1 month full time approx. or 2 months half time whole migration plus 1 month beta 1/4 of day´s time) . if somebody needs CASH$$ and is interested in coop for coding this app. You can pm or tell me. As I am in another project for this next 9 months (no Scripting, but to do with handicapped people) and I have my own Scripting projects. I will get lack of time. This migration is good paid$ and it is a opportunity to learn how to. I calculate roughly, the propoused migration from Access 2000-->autoit could be about 5.000/8.000 line autoit optimized code or may be more. 15 tables. Most of the work should be testing, optimizing, and fixing, coding some modules. I speak of no nobbie. MINIMUM REQUIREMENTS SKILLS: AUTOIT LEVEL: BEGINNER-MEDIUM -HIGHACCESS LEVEL: MEDIUM-HIGH-GEEK (better ver 2000)PHP : MEDIUM-HIGH NOT IMPORTANT BUT OPTIMAL SKILLS:OTHER DATABASE DESIGN BY DREAMWEAVER AND PHOTOSHOPMANAGE COLOURS AND DESIGNMS WORD MACROSXMLGUIs
  25. Thanks both for answer @You are right, with $UBOUND=29, but I do not use $UBOUND=29 but $UBOUND =28, so it works. anyway the error i Think it may be a bug of ProcessExists that does not work in the same way under winXp and Win98.(it happened to my with a couple of funcs more under IE.au3 udfs may be ie55 version has to do) I would like to stop the Error msg as it looks like a critical error when there is not critical one
×
×
  • Create New...