laurel Posted December 15, 2009 Report Share Posted December 15, 2009 In searching this forum, I found reference to progress bars (i.e., http://pgmacros.invisionzone.com/index.php...l=progress+bar) but nowhere can I find how to display macro progress. I do not care in the slightest how it looks, but I need to be able to tell how far along a macro is. Actually, regarding not caring about looks, if it were possible I'd like it to display the step it was on (description) or whatever. But anything at all would help. The running man tells me nothing. Thanks in advance for any information, links, instructions, etc. laurel Quote Link to comment Share on other sites More sharing options...
Yehnfikm8Gq Posted December 15, 2009 Report Share Posted December 15, 2009 The first exercise is to determine how to measure progress. Macros are not necessarily linear according to lines/tasks completed. At various points in the macro you would update the progress number/string and display it, say with a Text Box. File manipulations can show standard Windows progress if you check the box in the dialog. I've never bothered but you could: Update an Integer and display as percent eg 15% You could sequentially add a character to a text string and display eg XXXXX (choosing the text box width to equal say 10 Xs) I'm sure there are more sophisticated possibilities with the new Text Box capabilities of MEPro If you look solely at line numbers, in most cases the indicated progress would be meaningless. For example, a repeat may only cover 5 lines but represent 2000 steps. To know where you are in a macro you can display/update a text box at completion of certain tasks eg "Web Pages Downloaded", "File List Complete", "Printing Started". If I'm searching for files or strings through my PC I indicate current folder or file being searched in a Text Box. If I'm extracting information from a long search in progress, I usually append to a text file. You can open it any time and get not only an idea of progress, but quality of what you have so far. Quote Link to comment Share on other sites More sharing options...
terrypin Posted December 15, 2009 Report Share Posted December 15, 2009 In searching this forum, I found reference to progress bars (i.e., http://pgmacros.invisionzone.com/index.php...l=progress+bar) but nowhere can I find how to display macro progress. I do not care in the slightest how it looks, but I need to be able to tell how far along a macro is. Actually, regarding not caring about looks, if it were possible I'd like it to display the step it was on (description) or whatever. But anything at all would help. The running man tells me nothing. Thanks in advance for any information, links, instructions, etc. laurel As John says, there are several ways to do it. Did you try the Update Textbox command Cory recommended in post #5 of the thread you referenced ? I suppose you could really go all the way and have the macro fill a bar with colour in familiar fashion, but I wonder how much slower that would make the main macro? -- Terry, East Grinstead, UK Quote Link to comment Share on other sites More sharing options...
Cory Posted December 15, 2009 Report Share Posted December 15, 2009 You have to make your own. .............................. In the thread you linked we were talking about the Macro Express system tray icon that appears when a macro is running, not a progress indictor. He looks like a running man so I named him Forrest because in the past he was prone to just keep running and running even when the need had expired. I have several different progress indicators I use depending on the need. In relatively short macros I have a subroutine I use to calculate percentage which updates the text box every 5% or what have you. But I have some very elaborate ones which first count the number of operations, calculates time remaining, elapsed time, average time, and will even calculate time of completion. Heck, it even allows one to stop the macro and resume in the middle of a big batch. Oh, and it does error counts and such. I even used a mono spaced font and padded all the values so that they all line up in a nice tabular form! But in most cases I make it a floating box and update it each time. However in some cases this can slow the macro so in many case it’s better to only update it about 1/100 or 1/1000 of the total time. Use the Floating Box option and in some cases yo might want it to be always on top but more and more I like making it not on top so the user can go about their way. IOW a lot depends. You can also create quasi-graphic progress indicators. We used to make them for run in BASIC where we would have characters like asterisk, equal signs or even some of the special characters to make a bar or whatever. I remember one very elaborate one where the guy made a little ASCII character dog that would run back and forth across the screen! In fact there are all kinds of nerds out there who like to make ASCII Art. Just do a YouTube search. Amazing stuff. Quote Link to comment Share on other sites More sharing options...
Cory Posted December 15, 2009 Report Share Posted December 15, 2009 Here's a cool looking progress indicator! ......................................................... I like this concept. I used the ASCII Extended set (High) character "Block" (0xDB) and colored them. However since we can't change formatting of the text box directly we need to get tricky. This one has 20 blocks for a 5% resolution. We could create all 20 and use conditions or we could get really bold and create the command (like you see in the Direct Editor) in a variable and use Run Macro in Variable command. Hmmmm.... This could be fun. Could even have multiline indicators mix with text, and all kinds of stuff. Quote Link to comment Share on other sites More sharing options...
cmharrington Posted December 23, 2009 Report Share Posted December 23, 2009 Good Idea, here is a simple one i came up with. It has 25 steps, will display a text line and a progress bar (kind of) <REPEAT START Start="1" Step="1" Count="25" Save="TRUE" Variable="%StatusCount25%" _ENABLED="FALSE"/> <VARIABLE SET STRING Option="\x00" Destination="%StatusText%" Value="Step %StatusCount25%" _ENABLED="FALSE"/> <SWITCH Variable="%StatusCount25%"/> <CASE Value="1"/> <TEXT BOX DISPLAY Title="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 n\\f1 \r\n\\par %StatusText%\\cf0\\f2 \r\n\\par }\r\n" Left="Left" Top="Bottom" Width="225" Height="68" Monitor="0" OnTop="TRUE" Keep_Focus="FALSE" Mode="\x02" Delay="0"/> <END CASE/> <CASE Value="2"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="3"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="4"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnn\\cf2\\f1 \r\n\\par %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="5"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="6"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="7"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="8"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnn\\cf2\\f1 \r\n\\par %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="9"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="10"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="11"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="12"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="13"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="14"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="15"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="16"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="17"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="18"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="19"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="20"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="21"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="22"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="23"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="24"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <CASE Value="25"/> <UPDATE TEXTBOX Header="Macro Status" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset2 Wingdings;}{\\f1\\fnil\\fcharset0 Tahoma;}{\\f2\\fnil Tahoma;}}\r\n{\\colortbl ;\\red0\\green0\\blue255;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs16 nnnnnnnnnnnnnnnnnnnnnnnnn\\f1 \r\n\\par \\cf2 %StatusText%\\cf0\\f2 \r\n\\par }\r\n"/> <END CASE/> <END SWITCH/> <DELAY Flags="\x01" Time="1" _ENABLED="FALSE"/> <END REPEAT _ENABLED="FALSE"/> Just add three lines of code to the macro you are tracking <VARIABLE SET INTEGER Option="\x00" Destination="%StatusCount25%" Value="1"/> <VARIABLE SET STRING Option="\x00" Destination="%StatusText%" Value="Step %StatusCount25%"/> <MACRO RUN Use_ID="FALSE" Name="Status Bar" ID="-1" Wait="TRUE"/> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.