thedavepower Posted April 9, 2015 Share Posted April 9, 2015 I was referred to AutoIt as a possible solution to a problem I am working on. Unfortunately I don't have the time to learn AutoIt in order to get this task done and I am willing to hire someone who can building the following for me. I would be grateful for any references/advice. Here is what I am looking for: Overview: In Outlook 365 web mail I want to reply to customer emails by simply clicking a button. We currently have have 7 generic responses we use based on the customer query. Operation: 1. Webmail client is open 2. AutoIt dialog box with 7 buttons is open. The buttons have the short description of the reply as the title. 3. User selects and reads email to determine appropriate response in webmail 4. User clicks 1 of 7 buttons in dialog box 5. AutoIt sets focus on webmail screen. 6. AutoIt sends the 'r' key (the shortcut key to reply to an email) 7. AutoIt sends the appropriate text 8. AutoIt sends the 'alt-s' key (the shortcut key to send) Thoughts? Link to comment Share on other sites More sharing options...
Rockerfeller Posted April 9, 2015 Share Posted April 9, 2015 Payment I'm advance? Link to comment Share on other sites More sharing options...
mpower Posted April 9, 2015 Share Posted April 9, 2015 (edited) I was referred to AutoIt as a possible solution to a problem I am working on. Unfortunately I don't have the time to learn AutoIt in order to get this task done and I am willing to hire someone who can building the following for me. I would be grateful for any references/advice. Here is what I am looking for: Overview: In Outlook 365 web mail I want to reply to customer emails by simply clicking a button. We currently have have 7 generic responses we use based on the customer query. Operation: 1. Webmail client is open 2. AutoIt dialog box with 7 buttons is open. The buttons have the short description of the reply as the title. 3. User selects and reads email to determine appropriate response in webmail 4. User clicks 1 of 7 buttons in dialog box 5. AutoIt sets focus on webmail screen. 6. AutoIt sends the 'r' key (the shortcut key to reply to an email) 7. AutoIt sends the appropriate text 8. AutoIt sends the 'alt-s' key (the shortcut key to send) Thoughts? This seems simple enough but I would imagine whoever would be coding for you would need access to either your production environment for testing or at the very least a lab environment set up to mimic what your production environment would be like. Is that something you're able to provide? How urgent is this? How much are you willing to spend? What would be the terms etc? I would recommend staying away from any users who have low post counts as it could be problematic (i.e. higher chances of getting scammed). Lastly, I would, in your position, contact AutoIt staff directly to see if they could do it or if they have any developers they could recommend who could do this work professionally for you. If you don't mind working with a fairly experienced third-party hobby developer (such as me) you can reach me at <redacted to prevent spam>. I have some further questions regarding this project. Edited April 9, 2015 by mpower Link to comment Share on other sites More sharing options...
Zedna Posted April 9, 2015 Share Posted April 9, 2015 I think that this is quite simple task and many helpful people here on the forum will help you with this for free. Also I'm not sure if hiring of coders here this way is not against forum rules, main idea of this forum is to give/get help and share ideas/code ... Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
SadBunny Posted April 9, 2015 Share Posted April 9, 2015 This is Seriously Trivial to write, at least in its very basic form. Like within the hour easy. Even if you wanted to, for instance, make the number of buttons dynamic, based on the number of template e-mails in the same directory of your script, so that anyone could have his own set of response templates just by having his own textfiles. (Just ideas.) I'd write an example just to keep you from getting scammed, but I'm late for work. Are you sure you don't want to learn this yourself and/or that you have a novice programmer in your midst that can do this? Roses are FF0000, violets are 0000FF... All my base are belong to you. Link to comment Share on other sites More sharing options...
thedavepower Posted April 9, 2015 Author Share Posted April 9, 2015 Thank you very much for the responses guys in answer to the posts: Rockerfeller - Depending on the cost estimate and user post count I would have no problem paying up front. mpower - Email sent Zedna - How would I confirm the forum rules? SadBunny - I can wait for you to get back from work; I would be eternally grateful! (: I would like to learn it, just don't have the time. I will, however, be using AutoIt now that I know what it is! Thanks guys, Dave Link to comment Share on other sites More sharing options...
Zedna Posted April 9, 2015 Share Posted April 9, 2015 Zedna - How would I confirm the forum rules? http://www.autoitscript.com/forum/forum-2/announcement-15-forum-rules-23-mar-2015/ '?do=embed' frameborder='0' data-embedContent>> It seems that this is not explicitly mentioned in forum rules but it was discused here ... Just hint for you: Make your GUI with 7 buttons with "always on top" style. Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
JohnOne Posted April 9, 2015 Share Posted April 9, 2015 (edited) This project would be a doddle if you were using IE, not so much if other browser. save yourself / company the money and spend a few hours looking at and trying the IE examples in the help file. Show a little bit of effort, post your attempt, and that script will be done within a few hours most likely. For free. Edited April 9, 2015 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
mpower Posted April 9, 2015 Share Posted April 9, 2015 (edited) I agree with what other users have said here, if this is going to go into a corporate production environment with multiple disparate systems I would not rely on things like key presses etc, but would rather use UDFs to interact directly with IE or whatever browser you're using for OWA. Depending on the urgency of the project I would look into spending some time learning AutoIt (it's not overy complex if you have any coding experience - even if you don't, its relatively easy to pick up). I'd be hesitant to use quickly put together solutions within a corporate environment though, just simply due to the nature of business processes/compliance etc. Also as others mentioned, we can provide some examples to guide you, but that could be problematic if we can't simulate your OWA environment (For example I dont have access to Office 365 OWA so I would not be able to contribute aside from maybe GUI and other features). Edited April 9, 2015 by mpower Link to comment Share on other sites More sharing options...
nitekram Posted April 10, 2015 Share Posted April 10, 2015 (edited) Are you going to be able to determine the option based upon something in the email. Meaning agent looks at email, then clicks the button? If that is the case, might be easier for you to just create a hotkey for each button - like CTRL SHIFT F1-F7, you have to check which one works with your apps, as some apps also have hot keys. Then create 7 variables and add your blurb for the agent to pick from Then use send(), but not the normal send, but the extended one, to send the variable based upon the hotkey pressed maybe something like this: expandcollapse popup#include <Misc.au3> Global $aVariable[8] $aVariable[1] = 'blurb 1' ; change this to the text you want for your button nubmer 1 $aVariable[2] = 'blurb 2' ; change this to the text you want for your button nubmer 2 $aVariable[3] = 'blurb 3' ; change this to the text you want for your button nubmer 3 $aVariable[4] = 'blurb 4' ; change this to the text you want for your button nubmer 4 $aVariable[5] = 'blurb 5' ; change this to the text you want for your button nubmer 5 $aVariable[6] = 'blurb 6' ; change this to the text you want for your button nubmer 6 $aVariable[7] = 'blurb 7' ; change this to the text you want for your button nubmer 7 HotKeySet('^+' & '{F1}', 'Blurb') HotKeySet('^+' & '{F2}', 'Blurb') HotKeySet('^+' & '{F3}', 'Blurb') HotKeySet('^+' & '{F4}', 'Blurb') HotKeySet('^+' & '{F5}', 'Blurb') HotKeySet('^+' & '{F6}', 'Blurb') HotKeySet('^+' & '{F7}', 'Blurb') While 1 Sleep(20) WEnd Func Blurb() Local $Index = StringRight(@HotKeyPressed, 1) For $x = 1 To 7 If StringInStr(@HotKeyPressed, 'f' & $x) Then MsgBox('', 'hotkey ' & @HotKeyPressed, '') ; you can remove this after testing Run('notepad.exe') ; you can remove this after testing Sleep(300) _SendEx($aVariable[$x]) Sleep(400) ; you can then add the send command _SendEx('!s') ; to send the email - but the agent would have to have the email opened before this happens EndIf Next EndFunc ;==>Blurb Func _SendEx($ss, $warn = "") Local $iT = TimerInit() While _IsPressed("10") Or _IsPressed("11") Or _IsPressed("12") If $warn <> "" And TimerDiff($iT) > 1000 Then MsgBox(262144, "Warning", $warn) EndIf Sleep(50) WEnd Send($ss) EndFunc ;==>_SendEx . Edited April 10, 2015 by nitekram 2¢ All by me:"Sometimes you have to go back to where you started, to get to where you want to go." "Everybody catches up with everyone, eventually" "As you teach others, you are really teaching yourself." From my dad "Do not worry about yesterday, as the only thing that you can control is tomorrow." WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2 AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit Docs SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language Programming Tips Excel Changes ControlHover.UDF GDI_Plus Draw_On_Screen GDI Basics GDI_More_Basics GDI Rotate GDI Graph GDI CheckExistingItems GDI Trajectory Replace $ghGDIPDll with $__g_hGDIPDll DLL 101? Array via Object GDI Swimlane GDI Plus French 101 Site GDI Examples UEZ GDI Basic Clock GDI Detection Ternary operator Link to comment Share on other sites More sharing options...
mpower Posted April 10, 2015 Share Posted April 10, 2015 (edited) thedavepower, here's something to get you started. This script has the following features: Updatecheck function - checks for a new version of the script via an ini file that can be located on a remote server (at this stage it needs to be a network drive, but I'm sure someone can re-purpose it to contact a web server if necessary, I code for a corporate environment so I usually just point my apps to a network drive that all users have access to) Autoupdate - automatically downloads the new version of the script and updates the app Dynamic button creation based on ini file content What I can't assist with is OWA interaction because I dont have access to an Office365 OWA interface. expandcollapse popup#Region ### includes ### #include-once #NoTrayIcon #AutoIt3Wrapper_Res_File_Add=resources.zip, rt_rcdata, resourceszip #AutoIt3Wrapper_Icon=OWA_Responder.ico #AutoIt3Wrapper_Outfile=OWA_Responder.exe #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_UseX64=n #include <EditConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> #include <Misc.au3> #include <File.au3> #include <Zip.au3> Opt('GUIResizeMode', 802) #EndRegion ### includes ### #Region ### global vars ### Global $appname = 'OWA Responder', $appver = '1.0', $maingui_W = 705, $maingui_H = 135, $alreadyrunningui_W = 420, $alreadyrunningui_H = 160, _ $appresourcesdir = @AppDataDir & '\OWA Responder\', $updateresources, $inifile = $appresourcesdir & 'settings.ini', $msgdataver, _ $msgdatafile = $appresourcesdir & 'msgdata.ini', $criticalupdate Dim $buttons[1][2] #EndRegion ### global vars ### IniCheck() ResourcesCheck() #Region ### $alreadyrunningui ### $alreadyrunningui = GUICreate($appname & ' ' & $appver, $alreadyrunningui_W, $alreadyrunningui_H, -1, -1) GUICtrlCreateLabel('Sorry, ' & $appname & ' appears to be running already.' & @CRLF & _ @CRLF & 'Please close the existing instance before trying again, thanks.', 10, 45, $alreadyrunningui_W - 20, 63, $SS_CENTER) GUICtrlSetFont(-1, 11, 400, -1) $alreadyrunning_okay = GUICtrlCreateButton('Ok', (($alreadyrunningui_W/2) - (100/2)), 120, 100) #EndRegion ### $alreadyrunningui ### #Region ### $maingui ### $maingui = GUICreate($appname & ' ' & $appver, $maingui_W, $maingui_H, -1, -1, BitOR($WS_SYSMENU, $WS_MINIMIZEBOX), $WS_EX_TOPMOST) #EndRegion ### $maingui ### #Region ### $updategui ### $updategui = GUICreate($appname & ' ' & $appver & ' - Update Available', 420, 260, -1, -1) GUISetBkColor(0xFFFFFF) $updategui_lbl1 = GUICtrlCreateLabel('A new Update is available:', 24, 24, 130, 17) $updategui_lblver = GUICtrlCreateLabel('', 154, 22, 55, 20) GUICtrlSetFont(-1, 10, 800, 0, 'MS Sans Serif') GUICtrlSetColor(-1, 0x000000) $updategui_lbl2 = GUICtrlCreateLabel('Size:', 208, 24, 27, 17) $updategui_lblsize = GUICtrlCreateLabel('', 233, 24, 83, 17) $updategui_pic1 = GUICtrlCreatePic($appresourcesdir & 'app_update.bmp', 330, 5, 64, 64) $updategui_lbl3 = GUICtrlCreateLabel('Change log:', 24, 56, 61, 17) $updategui_edit = GUICtrlCreateEdit('', 24, 72, 377, 121, BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_VSCROLL, $ES_READONLY)) GUICtrlSetBkColor(-1, 0xFFFFFF) $updategui_lblcrit = GUICtrlCreateLabel('THIS IS A MANDATORY UPDATE AND CANNOT BE SKIPPED!', 32, 202, 363, 17) GUICtrlSetFont(-1, 9, 800, 0, 'MS Sans Serif') GUICtrlSetColor(-1, 0xFF0000) GUICtrlSetState(-1, $GUI_HIDE) $updategui_bnupdate = GUICtrlCreateButton('Update now', 80, 224, 123, 25) $updategui_bnskip = GUICtrlCreateButton('Skip', 222, 224, 123, 25) #EndRegion ### $updategui ### #Region ### Single Instance Check and Main function (AppUpdateCheck()) start ### ;check if app already running or not and throw a message if it is, otherwise continue and check for app update If _Singleton("owaresponder", 1) = 0 Then GUISetState(@SW_SHOW, $alreadyrunningui) Else AppUpdateCheck() EndIf #EndRegion ### Single Instance Check and Main function (AppUpdateCheck()) start ### ;listen for gui messages and act accordingly While 1 $msg = GUIGetMsg(1) Switch $msg[1] Case $alreadyrunningui Switch $msg[0] Case $GUI_EVENT_CLOSE, $alreadyrunning_okay Exit EndSwitch Case $maingui Switch $msg[0] Case $GUI_EVENT_CLOSE Exit Case $buttons[1][0] to $buttons[Ubound($buttons)-1][0] For $i = 0 To Ubound($buttons) - 1 If $buttons[$i][0] = $msg[0] Then SendOWAMessage($buttons[$i][1]) Next EndSwitch Case $updategui Switch $msg[0] Case $GUI_EVENT_CLOSE If $criticalupdate = 'False' Then $msgbox = MsgBox(48+3,$appname & ' ' & $appver, 'Closing this window will cancel the update process.' & @CRLF & @CRLF & 'Do you want to skip the update?') If $msgbox = 6 Then GUISetState(@SW_HIDE, $updategui) UpdateMessageData() EndIf ElseIf $criticalupdate = 'True' Then $msgbox = MsgBox(48+3,$appname & ' ' & $appver, 'Closing this window will cancel the update process.' & @CRLF & @CRLF & _ 'Because this is a mandatory update, cancelling the update process will exit the application.' & @CRLF & @CRLF & _ 'Do you want to cancel the update and exit the application?') If $msgbox = 6 Then Exit EndIf Case $updategui_bnupdate ShellExecute($appresourcesdir & 'autoupdate.exe') Exit Case $updategui_bnskip $msgbox = MsgBox(48+3,$appname & ' ' & $appver, 'Updates are recommended as they contain bug fixes and new features.' & @CRLF & @CRLF & _ 'Are you sure you want to skip the update?') If $msgbox = 6 Then GUISetState(@SW_HIDE, $updategui) UpdateMessageData() EndIf EndSwitch EndSwitch WEnd Func IniCheck() If FileExists($appresourcesdir) <> 1 Then DirCreate($appresourcesdir) ;Check if Resources Directory exists, if it doesnt, create it If FileExists($inifile) <> 1 Then ;Check if Ini File exists, if it doesnt, create it and populate with default data $iFile = FileOpen($inifile, 2) ;open file to write it FileWrite($iFile, '[Options]' & @CRLF & 'UpdateResources=True' & _ ;write base ini file @CRLF & 'AppDir=' & @ScriptDir & @CRLF & 'AppExe=' & @ScriptName & @CRLF & 'AppVer=' & $appver) FileClose($iFile) ;close it to finish creating the file $iFile = FileOpen($msgdatafile, 2) ConsoleWrite($iFile) FileWrite($iFile, '[Options]' & @CRLF & 'Version=1.0' & @CRLF & '[Messages]' & @CRLF & 'Total=7' & @CRLF & '[Message1]' & @CRLF & 'Name=Short name for Message 1' & @CRLF & _ 'Content=Dear customer,/nn/nnThis is Message 1 content that will go in the body of the email.'& @CRLF & '[Message2]' & @CRLF & _ 'Name=Short name for Message 2' & @CRLF & 'Content=Dear customer,/nn/nnThis is Message 2 content that will go in the body of the email.' & _ @CRLF & '[Message3]' & @CRLF & 'Name=Short name for Message 3' & @CRLF & 'Content=Dear customer,/nn/nnThis is Message 3 content that will go in the body of the email.' & _ @CRLF & '[Message4]' & @CRLF & 'Name=Short name for Message 4' & @CRLF & 'Content=Dear customer,/nn/nnThis is Message 4 content that will go in the body of the email.' & _ @CRLF & '[Message5]' & @CRLF & 'Name=Short name for Message 5' & @CRLF & 'Content=Dear customer,/nn/nnThis is Message 5 content that will go in the body of the email.' & _ @CRLF & '[Message6]' & @CRLF & 'Name=Short name for Message 6' & @CRLF & 'Content=Dear customer,/nn/nnThis is Message 6 content that will go in the body of the email.' & _ @CRLF & '[Message7]' & @CRLF & 'Name=Short name for Message 7' & @CRLF & 'Content=Dear customer,/nn/nnThis is Message 7 content that will go in the body of the email.') FileClose($iFile) Else IniWrite($inifile, 'Options', 'AppDir', @ScriptDir) ;update the ini with current app directory IniWrite($inifile, 'Options', 'AppVer', $appver) EndIf $updateresources = IniRead($inifile, 'Options', 'UpdateResources', 'True') $msgdataver = IniRead($msgdatafile, 'Options', 'Version', '1.0') EndFunc ;==> IniCheck() Func ResourcesCheck() ;cehck if app resources are installed in AppData/Appname directory, if not, install it (this function will also update resources - but will always keep settings and msgdata ini files) If $updateresources = 'True' Then $sFilesToDelete = _FileListToArray($appresourcesdir) If IsArray($sFilesToDelete) Then For $i = 1 To UBound($sFilesToDelete) - 1 If BitAND(Not StringInStr($sFilesToDelete[$i], "settings."), Not StringInStr($sFilesToDelete[$i], "msgdata.")) Then If StringInStr(FileGetAttrib($appresourcesdir & $sFilesToDelete[$i]), 'R') Then FileSetAttrib($appresourcesdir & $sFilesToDelete[$i], '-R') FileDelete($appresourcesdir & $sFilesToDelete[$i]) EndIf Next EndIf FileInstall('resources.zip', $appresourcesdir & 'resources.zip') _Zip_UnzipAll($appresourcesdir & 'resources.zip', $appresourcesdir) IniWrite($inifile, 'Options', 'UpdateResources', 'False') FileDelete($appresourcesdir & 'resources.zip') EndIf EndFunc ;==> ResourcesCheck() Func AppUpdateCheck() ;check if a new app is available from server Local $updateini, $changelog, $fileLinkApp, $currentver, $criticalupdate, $downloadFileSizeApp, $newFeatures $updateini = '<PATH TO UPDATE INI FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' $changelog = '<PATH TO CHANGELOG TXT FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' $fileLinkApp = '<PATH TO UPDATE ZIP FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' If $updateini <> '<PATH TO UPDATE INI FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' Then $currentver = IniRead($updateini, 'Update', 'AppVersion', $appver) $criticalupdate = IniRead($updateini, 'Update', 'Critical', 'False') $downloadFileSizeApp = FileGetSize($fileLinkApp) $iFile = FileOpen($changelog) $newFeatures = FileRead($iFile) FileClose($changelog) If $currentver > $appver Then GUICtrlSetData($updategui_lblver, $currentver) GUICtrlSetData($updategui_edit, $newFeatures) GUICtrlSetData($updategui_lblsize, Round($downloadFileSizeApp/1024/1024, 1) & " MB") If $criticalupdate = "True" Then GUICtrlSetState($updategui_lblcrit, $GUI_SHOW) GUICtrlSetState($updategui_bnskip, $GUI_DISABLE) ElseIf $criticalupdate = "False" Then GUICtrlSetState($updategui_lblcrit, $GUI_HIDE) GUICtrlSetState($updategui_bnskip, $GUI_ENABLE) EndIf GUISetState(@SW_SHOW, $updategui) Else UpdateMessageData() EndIf Else MsgBox(0, 'Message', 'Path to App update ini is not set yet, remember to set this!') UpdateMessageData() EndIf EndFunc ;==> AppUpdateCheck() Func UpdateMessageData() ;cehck if a new messagedata file is available from server Local $updateini, $currentver, $fileLinkMsgData $updateini = '<PATH TO MESSAGE DATA INI FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' If $updateini <> '<PATH TO MESSAGE DATA INI FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' Then $currentver = IniRead($updateini, 'Options', 'Version', $currentver) If $currentver > $msgdataver Then FileCopy($updateini, $appresourcesdir, 1) $msgdataver = IniRead($msgdatafile, 'Options', 'Version', '1.0') Msgbox(48, 'Messages Update', 'Messages have been updated to version ' * $msgdataver) EndIf Else MsgBox(0, 'Message', 'Path to MsgData update ini is not set yet, remember to set this!') EndIf StartMain() EndFunc ;==> UpdateMessageData() Func StartMain() ;generate buttons on GUI based on data from ini file (in rows of 7 buttons) Local $totalmessages, $xoffset, $yoffset $totalmessages = IniRead($msgdatafile, 'Messages', 'Total', 0) If $totalmessages <> 0 Then ReDim $buttons[$totalmessages+1][2] $buttons[0][0] = $totalmessages For $i = 1 to $buttons[0][0] GUISwitch($maingui) $buttons[$i][0] = GUICtrlCreateButton(IniRead($msgdatafile, "Message" & $i, "Name", "Error"), $xoffset + 10, $yoffset + 10, 88.5, 88.5, $BS_MULTILINE) $buttons[$i][1] = IniRead($msgdatafile, "Message" & $i, "Content", "Error") $xoffset += 98.5 If BitAnd(IsInt(Number($i/7)), $i <> $buttons[0][0]) Then $yoffset += 98.5 $xoffset = 0 $wPos = WinGetPos($maingui) WinMove($maingui, "", Default, Default, Default, $wPos[3] + 98.5) EndIf Next EndIf GUISetState(@SW_SHOW, $maingui) EndFunc ;==> StartMain() Func SendOWAMessage($message) ;this is where you will interact with IE/other browser to inser $message into the relevant field and then submit the message for sending - this I can't help with as I don't have access to Office365 OWA. MsgBox(0, 'Message', 'Will send below message:' & @CRLF & @CRLF & StringReplace($message, '/nn', @CRLF), Default, $maingui) EndFunc I've attached the full package file to the post. It includes the source .au3 file as well as the resource zip file which contains BMP images and the compiled autoupdate.au3 exe script - this is only called when a new version is available). Here are the usage instructions: 1. Extract all files to a folder on your pc - place the files located in "SERVER NETWORK DRIVE FILE TEMPLATES" folder somewhere on your PC or a network drive 2. Open autoupdate.au3 and update the paths below to the same paths on your pc or a network drive (to simulate an update server) - the ini files from "SERVER NETWORK DRIVE FILE TEMPLATES" will be in this path: $updateini = '<PATH TO UPDATE INI FILE - LOCATED ON A REMOTE SERVER>' $updatefile = '<PATH TO UPDATE ZIP FILE - LOCATED ON A REMOTE SERVER>' - recommended 'update.zip' 3. Compile the autoupdate file -> output will be autoupdate.exe 4. Place the autoupdate.exe file in the resources.zip file (overwrite the existing autoupdate.exe file in the resources.zip file) 5. Open OWA_Responder.au3 and update the following paths to some paths on your pc of network drive (to simulate an update server): in AppUpdateCheck() function: $updateini = '<PATH TO UPDATE INI FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' $changelog = '<PATH TO CHANGELOG TXT FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' $fileLinkApp = '<PATH TO UPDATE ZIP FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' - recommended 'update.zip' In UpdateMessageData() function: $updateini = '<PATH TO MESSAGE DATA INI FILE - LOCATED ON A REMOTE SERVER NETWORK DRIVE>' 6. Compile the OWA_Reponder file. 7. Run the OWA_Responder.exe file. To simulate an App update: 1. Open OWA_Responder.au3, change version number to 1.1 (for example) and recompile. 2. Add the new version 1.1 exe of OWA_Responder.exe to 'update.zip' 3. Place update.zip which now contains the new v1.1 exe in the update directory ($updatefile variable in autoupdate.au3 and $fileLinkApp variable in OWA_Responder.au3 should be the full path to this file) 4. Open the previously extracted update.ini file and update the file to: [Update] Version=1.1 Critical=False ;you can change this to True to simulate a 'Critical Update' - which doesnt allow skipping the update UpdateIni=False 5. Run the original v1.0 OWA_Responder to see if the update check and autoupdate functions work. You can do the same thing with the MsgData update by incrementing the version number in the ini file and relaunching the app to see if the message file is updated. Have a look and hopefully this will help you with your project. OWAResponder.zip Edited April 10, 2015 by mpower Link to comment Share on other sites More sharing options...
nitekram Posted April 10, 2015 Share Posted April 10, 2015 (edited) @mpower I think you missed one file. zip.au3 Edited April 10, 2015 by nitekram 2¢ All by me:"Sometimes you have to go back to where you started, to get to where you want to go." "Everybody catches up with everyone, eventually" "As you teach others, you are really teaching yourself." From my dad "Do not worry about yesterday, as the only thing that you can control is tomorrow." WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2 AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit Docs SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language Programming Tips Excel Changes ControlHover.UDF GDI_Plus Draw_On_Screen GDI Basics GDI_More_Basics GDI Rotate GDI Graph GDI CheckExistingItems GDI Trajectory Replace $ghGDIPDll with $__g_hGDIPDll DLL 101? Array via Object GDI Swimlane GDI Plus French 101 Site GDI Examples UEZ GDI Basic Clock GDI Detection Ternary operator Link to comment Share on other sites More sharing options...
mpower Posted April 10, 2015 Share Posted April 10, 2015 @mpower I think you missed one file. zip.au3 You're right, here is the Zip.au3 UDF fileZip.au3 Link to comment Share on other sites More sharing options...
Developers Jos Posted April 10, 2015 Developers Share Posted April 10, 2015 Continue in the background please as this is a support for Autoit forum. Jos 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 More sharing options...
Recommended Posts