avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday July 19, 2024, 3:24 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - evamaria [ switch to compact view ]

Pages: [1]
Here on DC, there is an old "comparitive" review of Beyond Compare:


It states, there is one prob with BC, which is lack of in-place editing. Now, the review being from 2005, this prob has been resolved long ago.

But there is another prob with almost all of these text compare tools, which is they are unable to compare "displaced text parts", or whatever you would call them.

"All" these tools just compare line by line, and the respective line content, and are thus unable to "see" that a bunch of 10 or 50 lines is UNCHANGED, whenever that bunch of lines has been displaced elsewhere in the second text.

For every programmer who displaces routines within his global set of programming lines, this makes these ordinary tools almost unusable, and existing tools which lack such functionality, unfortunately are NOT amended in such a way (and the developers of BC (of which I have a license) are very friendly but don't do the necessary development to their otherwise fine program either), but there should be SOME tools at least that DO such a thing.

Now let me explain. I know that for discovering that a single LINE has been displaced elsewhere, first, such a tool would need a much more complicated algorithm, since without being really sophisticated, it would process lots of false "hits": It goes without saying that in normal texts, here and there, but in programming, LOTS of lines would be identical, but without being displaced, it's just that the same lines occur, again and again, within many, DIFFERENT, contexts. So, these respective contexts would have to be analyzed, too, by such a tool.

Also, the same problem COULD occur with "PARAGRAPHS": Since in programming, a line is also a paragraph, for such a tool, checking for "paragraph" first, would not be helpful in order to avoid such "false hits". On the other hand, most paragraphs in normal texts would be "enclosed" by blank lines, whilst in programming, these lines would be paragraphs, but normally NOT "enclosed" by blank lines, so the algorithm could check for "REAL" paragraphs vs. paragraphs that are just separate lines, and then try for finding just these "real paragraphs" elsewhere, whenever in place they would be expected, in text 2, they are missing. So this would be ONE OPTION for such a tool.

A SECOND OPTION for such a tool (and this could be realized even within the same tool, "by option") would be to look after a special character or any other "divider character combination" or such, i.e. it would not even to check for displaced "real paragraphs", but only for displaced "paragraph groups" / "text entities" or such, meaning, when text enclosed in these "divider codes" is there in text 1, but missing in text 2. Such "divider codes" could be TWO blank lines, or a really special character that does not occur BUT for separating your "programming entities" within your big file (e.g. the Japanese Yen character, or anything you want), and it would be easy to put such a very special character into your programming text whenever needed, since any programming language has got a special character for "comment line", and you would only put such lines between your sub-routines, in the form

CommentLineCharacter and then SeparateEntityBeginCode

Also, such a tool, with such functionality, would be a relief for anybody doing his work within an outliner, since outliners "invite" to re-arrange all your stuff again and again, in order to have, in the end and ideally, all your stuff within "meaning ful context", in the same way some people don't so much multiply separate paper files, but put them, whenever possible, into lever files, in order to group them. (It goes without saying here that this is a good thing for "reference material", but not really advisable for separate customer files or such.)

Now, most of these outliners have got an EXPORT function, to plain text at least, and for a text compare tool, this is the format in which such "outliner files" could be read and be compared, and it immediately becomes evident what the above-mentioned functionality would be able to to here:

Any outliner item that you just would have displaced, would be checked by such a tool, and then discarded as identical, which in fact it is, and this tool would only show then items in which you would have done ADDITIONS or CHANGES, or NEW items, or (in the other pane, respectively,) DELETED items, but it would NOT show all these, perhaps numerous, items that are unchanged, but just displaced to another position within your tree.

So, here as with programming bits above, the question is, which TEXT compare tools are able to to such a more sophisticated comparison, without all those "false hits" showing up in less elaborate tools,

AND, there also should perhaps be some DATABASE compare tools that are able to do such a comparison, by database "RECORD CONTENT" comparison. Here, the very first problem is that most databse compare tools do NOT EVEN compare content, but only structure, and those that are (possibly) able to compare content, are "just for MySQL", so the question is, are they able to compare "records" in just text format, and with the "record begin code" of your choice (of course, it would be possible to use the special character the db compare tools then "needs", or to replace the "commentlinecharacter plus recordbegincharer" to the special "recordbegincharacter" the db compare tool then needs in order to properly function.

But there is also the question if these db compare tools, comparing content, are able to then compare the content of any record to the content of any record, or if they, too, as in the usual text compare tools, just compare content of record 1 in "text" 1 to content of record 1 in "text" 2, then record 2 to record 2, and so on, which would be devoid of any sense. (Of course, there is an additional prob with db compare tools, price: some of them are 1,000 dollars or even more, so I'm looking out for such a tool, in case, that's not as expensive as that.)

Hence my questions:

- any insight into text compare tools, with respect to these details?
- or any insight into database compare tools, ditto?

I won't fall on fellow DCs' nerves by endlessly repeating how happy I am to have switched from IE to Chrome, you will have understood this. But now, it's my task to "personalize" Chrome a little bit - which is a pure joy, having all those "extensions" around, BUT some of thise get just rave reviews, and then, ain't but crap, or something similar at least.

First, there is many ERRONEOUS "info" about Chrome's cache M (for management): Many "info" will make you believe the setting "Menu - Settings - Show advanced settings - Privacy - Content settings - Cookies - Keep local data only until I quit my browser" (my gosh!) will clear cookies, history and cache after closing down Chrome - some of them even outrightly will state so.

This is all rubbish.

It seems that some time, Chrome HAD a similar setting (in their early "twenties" perhaps), but they have done away with it, in order to better sell your browsing history (and there is no tool to automatically (!) do away with all those awful Flash cookies, anyway, so you have to regularly go to that macromedia site by your own).

Current state of affairs is, you have to use an extension for clearing your history and your cache (or do it manually; and with such an extension, you don't need those Chrome settings above anymore, anyway...).

As for relevant extensions, multiple sites propose Click&Clean, so I installed that one, but in fact, there are many more, and I suppose they ain't any worse:

History Eraser (from the same developer), ClearCache, OneClickCleaner, CleanTheJunk, NoHistory, SimpleClear, Browser Privacy Clean-Up Assistant, or then BetterHistory (which is something different and could be useful in some instances). ("The winner takes it all" - "nowhere", these alternatives get any coverage, so "they all" install C&C, but well, it seems to do what it promises to do, then!)

And now for tab M and use logic hampered by developers' technical incompetence:

In IE8, this was totally awful, the prob being you get from one link to the other, and at a certain moment in your browsing session, you will have opened 60, 80 or 120 tabs: On my XP system with 2 GB of working memory, response times are totally down in such circumstances.

How to manage such links "for later"? Doing bookmarks? Not handy! So many a times, I left my comp on, for the next day, and even further days, and of course, at some time all of this will become totally corrupted, and you will lose all your finds you will not have properly "processed" then.

Now this in Chrome: First, memory M is MUCH better than with IE, even without that incredibly effective AdBlock running, but WITH Adblock running, it's pure joy to have dozens of Chrome tabs open, in direct comparison with IE: Acceptable response times, no real problems.

But then, from a less compare-it-with-total-sh** but more objective, "2013" pov, having dozens of tabs open in Chrome isn't THAT fun, since you will have to process them (= some checking, some hdd storage if there is something of value for your current research subject, etc.) in a row, which is not really possible without leaving your comp on for days, depending on the subject, and not speaking of any "navigation" between such pages, virtually impossible here, i.e. you have to go "one-by-one", then process the page that presents itself to you, and close it, in order to have, many hours (and / or some days) later, a Chrome state from which then you could close down Windows and your pc.

So there is one extension that only gets rave reviews but which is almost useless though: OneTab.

I installed it, b/o all those rave reviews, and the idea behind it is simple: Close down all your currently openend tabs, but have them stored in one "container" tab, so it's sort of a "local, intermediate bookmarking service" - this also frees your working memory, but my pov is twofold here:

- for one, this freeing of the working memory, most of the time, isn't even really necessary
- and then, whenever you click on such a page, it has to be reloaded, from the web it seems (judging by the response times then)

So, in the end, immediate availability of these pages would be preferable, in most circumstances, but an OPTION to have them cleared from working memory in extreme cases, would indeed be helpful.

Now for my saying it's almost useless, and to explain that part of the title saying that some developers don't code in a logical way, from the users' pov:

In practical use, whenever you have got too many tabs open in your browsing session, you would click on OneTab's symbol, and then have all these pages relegated to the container tab.

But afterward, you will need to "open" these tabs again, in order to process them: "Restore all" would do this, and since you can even form "groups", this doesn't seem to bad at all.

Where things GO BAD, though, is when you will be PROCESSING these re-opened tabs:

Of course, you assume that they will vanish from OneTab list whenever you close them down, or to speak the truth:

There are THREE scenarii in which you would need such a tool:

- in the scenario above where the tool serves for clearing "tab clutter", when there are too many tabs opened at the same time
- in a totally different scenario where you would like to constitute groups of bookmarks for further use
- in a combination of these two where you would use it to de-clutter your tabs, but here and there, you would even want to preserve SOME tab for further use, instead of getting rid of it after processing it

Now, getting rid of tabs is almost impossible with OneTab, since whenever you then close one of your re-openend tabs, it will NOT vanish from the OneTab list, and unfortunately, this makes this tool almost unusable for its intended main use, since you never really know which one from all these pages listed there is ready to be deleted from there, too, manually, and which one has to be preserved, since most of the time, doing research, these pages are rather similarly-named, and, as already said,

there is no back-synch whatsoever from your closed tabs to their listing in the OneTab list.

But again, OneTab is not marketed as a permanent-bookmark tool, but as a tab M tool, and as such, evidently, it's a total failure.

So let's muse about the background: The developer has no knowledge / expertise, presumable, to DO that back-synch between closed-down tabs and his list. Of course, two routines would be needed:

- the usual control-F4 one, for "close current tab AND delete this page from the OneTab list", and then
- a special key combi, let's say, shift-control-F4, for "close current tab BUT preserve it in the OneTab list for further access to it"

It's evident the first alternative would be needed in most cases, for making OneTab the tab M tool it wants to be, AND, indeed, the second alternative would be most helpful for SOME such tabs, but only some... and it's evident the developer doesn't know how to code this, so he codes some appealing offering that at the end of the day is almost useless.

Question is, why those rave reviews, then, on https://chrome.googl...lloiipkdnihall?hl=en ?

Some interesting extensions I'll have to check out:

Tabs Outliner (very interesting thing, with which OneTab won't work together anyway...)
Tabman Tabs Manager
Awsome New Tab Page
Sidewise Tree Style Tabs
and perhaps some more

But as we see here

1) sheer programming incompetence of developers prevents many good ideas from being realized, and worse:

2) instead of doing nothing, they then realize what they are able to do, and which is not much, and worse:

3) they even get rave reviews for such deceptive tools

Awful. And yes, why not pay some 20 bucks for a tool that lives up to its promises, but good-enough free tools that only do the minor part... the part the developer was technically able to program, leaving out the relevant, really important part... life's too short to be endlessly bothered by such minor software.

General Software Discussion / Ad blockers, newspaper sites, etc.
« on: July 02, 2013, 06:16 PM »
So, I said, after 12 or 15 years of IE, I switched to Chrome, and first thing I installed was AdBlock, oh my! So read here my defence speech!:

As for "ads needed in order to finance the sites", well, I understand the argument, but I mainly browse such news sites, and during these last months, there has been lots of propaganda there, in the way of "web users should PAY us for our quality journalism" (= on top of looking at ads, and of clicking on them, please...), when in fact, the only interesting thing there are the users' comments, and certainly not any "quality journalism" which is blatantly absent from such sites.

Also, they all cite the example of the NYT, and here, there IS quality journalism (as there is in, but in NOT ONE of the many German or French newspaper or weekly magazine sites), and so, or, with their constant reminders of them delivering "quality journalism", went greatly on my nerves, these last months, all the more so since all of them, on top of delivering (heavily-biased) "news" those same newspapers would have been deeply ashamed of just 10 or 12 years ago (cf. and Der Spiegel today, and that same weekly newsmagazine 20 years ago, being the best one in the world at its time), AND their heavy censorship of those aforementioned user comments.

In fact, in order to get some "back-up" news or such, some details that shine a new light on the news they present, some info that better makes you understand what you hear and see, you now have to rely virtually exclusively upon some user comments, and this means you must be "thankful" to them for any such instructive user comment they do NOT censor as soon as possible, in order to "mainstream" their sites as much as they can. And yes, here and there, you even have the impression that they "leave some important info in" such user comments, instead of deleting them, because, here and there, they're just too ashamed of holding back ALL relevant facts, and not being allowed, from their owners, to present them themselves, they at least leave such info alone, when it comes from some well-informed user.

All this has brought me, a once heavily, and long-time paying reader of Der Spiegel, Die Zeit (both expensive weeklies) and FAZ (, Frankfurter Allgemeine Zeitung) to seriously thinking, get paid by your owners, and by those powerful people you do your daily propaganda for, and if you don't get paid enough that way, go to he**.

And this way, I never considered clicking on any of their ads, in order to get them some click money: I just endured those ads since for IE, there isn't a good ad blocker: Here, with Chrome, Adblock works tremendously well if I dare say!

As for blogs and other sites where ads "should" be clicked, well, it seems you can do some setting in Adblock or Adblock Plus, in order to see them again there... but I have to say, being not sure if a click was enough, or if I also had to do some clicking within that ad page, then, in order for the blog, etc. to get my click money (= without me buying anything there), I very rarely took the effort to click an such an ad, and then navigate within that site I wasn't interested in, and in any such case I wondered if what I did there was perhaps completely pointless, without my buying that crap on offering there.

So, having installed an adblocker now, after 12 or 15 years of browsing WITH ads, is also a means to get out of such schizophrenia to just SIMULATE interest in ads, in order to "help" bloggers, etc.

A similar phenomenon with Google ads (which ain't blocked this way): Very often, instead of getting good hits (within the very first 30 or 50 hits there), you just (or mostly) get crap, but also the ads of some overpriced offerings when in fact you want info, not buy unnecessary goods/services, and the very fact of not finding what I was searching for, triggered my clicks on such ads, in order to make them COST their unwanted advertizing.

But this is weird, unhealthy, or, as the French say, louche et malade!

We all pay a monthly fee for our browsing experience (in my case, 35 euro), and why not distribute some of this money (let's say 15 euro, or make it 25 plus 15, = 40 euro) evenly to those sites we spend our time in? Ok, this would undeservingly advantage those "newspaper" sites (in my case at least), since they would be paid for my reading "their" user comments... but it would certainly be a much healthier approach to webspace financing than all this unwanted advertizing now.

And not speaking here of all those Google ads like "lawyer (specialty) (town)" on which 90 p.c. of the clicks come from "another lawyer (same specialty) (same town)".

So discussing ads is discussing visual clutter, and burnt money... and whenever I want to buy something, I'm searching offers in vain that'd read "look here, we're NOT more expensive than our competitors, but we have a real good product/service: here's proof:..." Never ever. Everytime I want to spend money, I have to search for hours, delving into biased "reviews", offers made as intransparent as possible in order to make them as in-comparable as it gets, etc.

What's blatantly missing, especially, is a thing honorable vendors could easily do now, in most countries, and yes, even in Germany:

They could compare their product/service to those similar, by their competitors, and they could do it in an honorable way, listing not only their products' strengths and their competitors' products' weaknesses, but they could do a balanced, equilibrated, real comparison - at this condition = at this "price" of total honesty, they could even do it in Germany, where "comparative advertizing" had been forbidden for many years.

This way, products' and services' quality would be literally multiplied within a few years, and you know what this would imply for the "economies" of the Western Hemisphere:

They would literally roar up!

But no, "everybody" convenes instead in lying to us, in taking all efforts to have us not know the negative core aspects, in a word, they treat us like idiots: They BLUR our knowledge, instead of widening it up.

And that's why I'm very happy to use Chrome, with AdBlock, now, at last.

Does anybody know how to go far back within those tumblr "archives" that ain't e.g. 12 new photos on each new page, and where by this you can select page 124, by its number, within the address line, but which are made of just ONE, endlessly scrolling page? Let's say you want to see what they did publish there some 3 months ago... prob here, you'd have to scroll down, again and again, the same 1,000 or 1,500 photos, before even reaching the first photo you might be interested in! I won't give you response times for this in IE8, they are incredibly awful even for the first 500 such photos... but Chrome isn't THAT much better here on my system (with 2 GB of memory), so how to do it, or what to do alternatively, except for making a spider attack in the night?

I even thought of "hiding photos" when endlessly scrolling down, and then "unhide photos" after having scrolled down by a 1,000 photos. Any better idea than that (since it THEN will break my system, trying to display all these 1,000 "unnecessary" pictures, before displaying any "new" (i.e. sufficiently old) one), anyone?

So this is quite an awful web page format, but quite common on tumblr, and perhaps some web specialist here knows how to handle it best, from the outside?


I'm sorry, I should have put a question mark at the end of the title line.

Another example of these special "back-loading" pages - or what's the correct denomination of these, in order to google for an answer? - ist this one:


Here again, every "pgdn" or "end" pressing will load more pictures, again and again. Are there elements in the source code that could be of interest, to check, or even to manipulate, in order to get to the "depths" of such a page, more quickly than by incessant, endless scrolling down?

I normally use comp 1, with IE8 and MS updates latest version; unfortunately, this IE8 doesn't work properly (anymore) with many websites (I've got XP so IE9 won't install). So, in order to get beyond such probs, I also installed FF, using it just for such problematic sites.

Now I "lost" my AC adaptor for my comp 1 (will have to do 160 km to retrieve it, in some weeks), and so I unpacked pc 2 which in fact I hadn't used for months (or was it years?), and without having done the "necessary" MS update installs.

Now, a revelation: Many of the websites that don't show up properly in IE8 on my up-to-date comp 1, don't cause any problems here, with IE8 a little bit older... or is it just different settings here?, and certainly with XP3 in a version many months older than on comp 1.

To give a precise example: On the website, it's the users' comments that are really interesting (as it's in lotsa other press offerings:,,,, and many more). Now, in order to read those comments, I had to revert to FF, on my comp 1, "in spite of" doing any possible MS update (when in fact, it's probable those updates CAUSED those problems!)... and here, on comp 2, I CAN read the comments (which would not open in comp 1 anymore, for many, many months now) again! I don't have to say this is an incredible relief for me, it's so more pleasant to just use just ONE browser, and I'm fine with IE8 when it works!

Hence my big question: How to assure that in pc 1 (when it will work again) I can read the "Disqus-powered" user comments of again, like in old times?

Should I check for some special settings? And yes, I've got very old backups, but they would destroy ALL new things in my pc 1 system, so going back a year or two isn't a viable solution.

(In the normal curse of things, you'd assume that you could resolve problems with updates; in MS' case, it seems to be the other way round - how to get an early version of IE8, then, for downloading, after having de-installed the current version - if that ever is possible? Or, to put that question in another way: On pc 2, I obviously have got a working, old (but installed, not fresh) version of IE8 - how to retrieve that, in order to install it over my new crap version on pc 1? (All those are English versions, which I prefer.))

("EDITED" July, 5, 2013 just for giving it a more expressive title for google!)

With this little Intro and Lesson 1, you'll have set your first key remappings in less than an hour, promised!

Why a scripting language?

"Hotkeys" (as they are called in AHK)

Most people wanting to shift characters or functions from one key (or key combination like shift-somekey, control-somekey, etc.) of their keyboard to another key or key combination, look out for (free or paid) proprietary macro tools, which means they get some additional application for their computer with which then they will be stuck for a long time, because of the INVESTMENT they will have put into it, some money perhaps, but first of all, many, many hours of "putting things into it" - that's why the switch, later on, to a full-grown scripting language like AHK, becomes more and more "psychologically impossible", all the more so since most of these proprietary macro tools will NOT allow for any "export" of your macros but force you to view them on screen and then recoup them, by hand, into your script (or any other competing proprietary tool, perhaps more "powerful" than the first one).

"Hotstrings" (as they are called in AHK)

Thus, macro tool users "learn" to live with the numerous limitations of most of such tools, and by the way, this also applies to so-called "text expander" tools: Most of them have many limitations, and many of them don't even allow for exporting your hotstrings into another tool. So what are hotstrings? If you use Microsoft Word, for example, you can "expand" some short "strings" (some characters devoid of meaning, not forming a real word in your language), plus a trigger (for example a punctuation character), into real (but much longer or difficult to spell / type) words, or even into texts of some length, including line breaks, for example your letterhead, complimentary closes, and many more.

So this is possible in Word and some other "text processors", but not many applications come with such functionality, so some people buy a "text expander" on top of their macro tool, in order to have available the same set of hotstrings in more than one application, "system-wide" (just a hint here: AHK even allows for different sets of hotstrings, for example if you write in more than one language, or if you have general texts and then legal texts, or whatever your needs are, AHK's possibilities are endless!).

Another aspect of interest here: Both your macro tool and your text expander tool will persistently monitor your system and every key you'll ever press, in order to detect when they are expected to do "something real", and this does not only make for "double overhead", but also, many such macro tools do not function well with many such text expander tools, so you would have to check out carefully your possible combinations. AHK, on the other hand, will also monitor your system, but for hotkeys and hotstrings at the same time, so this is "minimally invasive", and no interference of two tools disturbing each other will occur.

So why people get the above tools, instead of a scripting language?

Because the very first steps with a scripting language are not (made) evident, all the less so with the fact that most people would like to start their "macroing experience" with reassigning not some normal character keys (since those are needed for typing), but some "special keys", and here, in a macro tool, you just press the key in question in order to reassign it, but in a scripting language, you will need the "name" of that key, and worse, you will probably even need the "scan code" of that key - DON'T STOP READING HERE, THOUGH, there's no need to worry!!!

So you see, with a scripting language, some (imaginary) "real problems" seem to get into your way, right on your very first steps: Let's call this "very unfortunate", all the more so since there was no quick help easily available. But now, there is, and knowing how to do it is knowing how extremely easy it is! (If you really need to sneak beforehand: it's point 6 below!)

Lesson 1

Step 1

What do you need for your very first script? You need a script, so you need an editor: If you don't have any particular one, just open the "Editor" that comes with Windows. Then, copy the script below: As you can read in the script, it comprises two parts: An autoexec section, which will be executed once, just after "loading" the script, and a "persistently running", with all your hotkey and hotstring assignments; after some months, this could be several hundred such assignments (or even thousands, especially if you work with "scope" later on, meaning you'll have different assignments for different applications (or different hotstrings for different languages), but then, it's perfectly possible to just limit yourself on doing it straight, never doing anything else than what you find in this lesson 1).

As you can see, the script here contains some assignments to start, in order for you to see that it's running; afterwards, you will "edit" this script, in your editor, and then "reload" it.

But first, you must SAVE this script in a way that it becomes available for AHK. Save it to .txt if you want, then rename it to .ahk, or save it to .ahk in the first place, which is preferable - even so, it stays a plain text file, let's say you save it under the name of first.ahk.

This script contains some hotkeys and hotstrings; trigger them in order to see what they do, and you will quickly replace them by those hotkeys and hotstrings that will be helpful in your daily work, from now on.

Step 2

You need AHK. So you go to, and there, you click the orange button "Download AutoHotkey". Of interest here, the download dialog will show you you're downloading AHK_L, from the site ! No, that's not a trick to get you malware from somewhere, but AHK_L is the AHK version in active development, and in order to get resources for the additional goodies of this most recent version, but it's recommended to refer, for help, to the principal site, - you will not need anything in for your start.

You install this AHK_L; the installer will ask you for the version you want to install, don't install the ANSI version (which is only there for historical reasons), but the Unicode version, and the right one for your system (32bit or 64bit).

Step 3

Now, with AHK_L installed, you RUN that file "first.ahk" (or whatever name you will have given to it, but always with the ".ahk" suffix).

You'll do this by double-clicking on it in your file manager (if you don't have any file manager, install xplorer2 lite, which is free, or if you insist on doing it all within that one here I promised you above, use that Windows thing that pretends to "replace" a file manager (and of which I don't even know the name: never used it in my life!) later on, you will put this into your autostart folder), so this script is running (there is NO intermediate step for "compiling" here!).

Then, you press shift-control-m, in order to see that your first AHK script is running indeed!

Step 4

Also, you will see that there is now a new symbol / icon for this file, appearing in the "notification area" / "system tray" of your screen (the thing to the right of your task bar, right in the bottom right hand screen corner). Right-click on this icon, in order to have a look at the little right-click menu there. Of immediate interest here: "Help", of course (and you will also have seen the "AHK forum" link on the site in step 2), "Edit this script" (which will open the script in your editor) and then "Reload this script", but also "Open", for step 6.

So this is the "traymenu".

Step 5

Edit your script: Add some new hotkey and / or hotstring assignments to it! Let's say some shift-control-h for "Hello aunt Birdie" or tyl for "Thank you very much for your letter that I received well" - everything you want, just play around with it some minutes in order to see how easy it all is.

After each editing, do a control-s for saving (but it's not necessary to close your script or your editor!), THEN do traymenu-"reload this script", and try your new hotkeys and hotstrings right in that same editor, in that same first.ahk file!

Before the next script changes,

; "out-comment" any changes your hotkeys / hotstrings will have made to your script, by a leading semicolon, or see this:

Code: Autohotkey [Select]
  1. a:: send b ; before the semicolon, it's a command, and this here is a comment, or see this:
  3. /*
  4. this is a comment
  5. spanning
  6. several
  7. or multiple
  8. lines
  9. */

or simply delete what your first macros do within your first script; if you miss this step, your "reload this script" will get you an error message, and the "new version" is not loaded. Then, delete those text passages, save (^s), and reload again; it goes without saying that afterwards, you'll do really useful hotkeys and hotstrings that you will trigger not in your script, but in your real applications, but why not just minimize your script file after each addition / change / save / reload (also, see the general observations in step 6 for this!), to have it immediately ready for any further addition or change, during those very first weeks where you'll make a lot of such edits!

HERE'S WHAT YOU NEED TO KNOW FOR STEP 5 (You might print this out for handy reference)


Over and over, you'll need the SEND command; you'll find the official help here, together with the names of many special keys, so you'll access this site many times:


The official list for triggers is here: but I only use the "send" command help before, since it's all there what I need, and anyway, you must understand the following:

As the key TO WHICH you assign a command (the SEND key), the name of the key is without braces (be it normal character key or a special key with a special name), but for the key TO BE SENT (the SENT key), the ordinary character keys are without braces, but all those special keys are with the same names but WITH braces:

Code: Autohotkey [Select]
  1. a:: send b
  2. a:: send {home}
  3. home:: send a
  4. home:: send {end} ; send key: no braces, but sent key: braces!

This also applies to special keys identified by their respective scan code (step 6):

Code: Autohotkey [Select]
  1. SC023:: send {SC029}

Also with so-called "modifiers", +, ^, !, # (shift, control alt, winkey), and which you can also use in combination, even in any order, but I strictly observe the order +^!#, because when you have hundreds of such hotkeys, some standardization will help with quickly identifying all these keys and key combinations. Note, all modifiers before the braces, not within; examples:

Code: Autohotkey [Select]
  1. ^a:: send !b ; here, control-a sends an alt-b
  2. +!a:: send ^!b ; here, shift-alt-a sends a control-alt-b
  3. !#F10:: send +#{F11} ; here, alt-win-F10 sends shift-win-F11 (send key: no braces, but sent key: braces!)
  4. +^SC023:: ^!{SC029}

For an example of bolded and italicized text, see the script, but note that formatting will not be shown in your editor (but should, for example in Word or another text processor). Finally, the send command is with, or without a comma; do it the way you like:

Code: Autohotkey [Select]
  1. +^a:: send b ; or this way:
  2. a:: send, b


Above, we've always sent single keys, but you also can send strings and special characters that need a so-called "exception character" before them; in this example the accent grave is the exception character for the n, which makes a carriage return, and also, you need the exception character for special characters like +^!# since, as we have seen, AHK uses them as "modifiers", normally. So, this:

Code: Autohotkey [Select]
  1. +^a:: send Dear Sir, `n`nThank you very much for your letter `+ fax`! ; will make:

Dear Sir,

Thank you very much for your letter + fax!

As you see, the send command does NOT use any "" for strings (and would enclose variables (but that would be a further lession!) in p.c. signs: send somestring with %somevariable% and some other string and %someothervariable% perhaps).

Finally, you also can combine such strings with special keys; the following example would type the string into your text, but then not leave the cursor at the end of that text, but shift the cursor to position one, before the "D":

Code: Autohotkey [Select]
  1. +^b:: send Dear Sir, thank you very much{home}


In the same way, you'll build real macros, spanning several lines of code (and thus be ended by a so-called "return" (which has nothing to do with the return key on your keyboard)), but that will be a further lesson; here just an example which also shows the very important sleep and msgbox commands (look them up within the commands list linked above):

Code: Autohotkey [Select]
  1. +^c::
  2. send First line
  3. send ^{left} ; control-leftarrowkey
  4. sleep, 1500 ; for your visual checking
  5. send (and only){space} ; here, a space not within text (as above), but (before or) after text
  6. sleep, 1500
  7. send {end}`nOh, second line here`!{home} ;
  8. sleep, 1500
  9. send {up}{end}{left, 3} ; sends the leftarrowkey 3 times in a row
  10. sleep, 1500
  11. msgbox, See where the cursor is now! ; exception characters in send strings, but not needed in msgbox strings!
  12. return

Remember, for just key reassignments, nothing of such is needed, just do it one-line style as the examples above.

Step 6

You will want to reassign special keys, too, which cannot be identified by their "names" as in step 5, hence your need the respective scan codes of such keys.

If you do NOT want to do this at this time (but don't be afraid of this step, it's so easy!), out-comment the special line in the script, and also, BEFORE doing step 6, please check that the special line is NOT out-commented! And do NOT use any other external tool for identfying these scan codes, since they might be totally different from those you get (and need) here! (Don't ask me why this is so, but don't complain if your wrong scan codes won't work!)

AND, GENERAL OBSERVATION HERE: Check that the special line is not only NOT out-commented (meaning, it must NOT have the leading semicolon), AND CHECK THAT THIS NEWEST VERSION IS THE RUNNING ONE! This means, save the script, and reload it - often, you miss one of these steps, inadvertantly, and then you don't get why your script doesn't work as expected, when simply the running version is not the one you see before your eyes!

Ok, now for the oh-so-difficult part of it all!

Do "traymenu" (rightclick on the "H") and select "Open" there. In that new window then you select the menu "View - Key history and script info".

By this, AND WITH THAT SPECIAL SETTING IN THE SCRIPT that you later will "out-comment", by a semicolon, any key pressed will be listed in that window, and in order to have all this in just some minutes, just press the key "a", then a special key, then key "b", then the next special key you want to get the scancode of, etc. (why not beginning top left on your keyboard (except for everything that's not strictly a...z keys), then going down to bottom right?), and note all these a, b, c (which only serve to clearly distinguish what you then will read in the list on screen: in this list you will see which special keys would also be accessible by their name, and which keys must be addressed by their respective scan code in order to become available in AHK), AND the special keys pressed in-between (not their official "names", just some indications for yourself to identify these keys later on), on a sheet of paper. Then look into the list you got on screen, and note the corresponding scan codes, it's as simple as that. (Of course, you could do it one by one, but why should it take hours, right?)

Well, that's all! You've seen above how to use these scancodes in your script, and whenever you'll have finished with all this scan code identifying, you'll outcomment the "special line" in the screen, to avoid the overhead that line, when active, causes on your system.

And now the basic script, the text to put into your very first AHK script file (note the hotkeys / hotstrings, and try them out):

Code: Autohotkey [Select]
  1. ; This auto execute section of the script is executed ONCE, immediately after loading the script:
  3. #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
  4. ; #Warn ; Recommended for catching common errors.
  5. #Hotstring EndChars -()[]{}:;"/\,.?!`n `t ; different from the default setting, I excluded the ' character here
  8. SetTitleMatchMode, 2 ; = to identify applications by just PARTS of their caption, file title or such not interfering with this!
  9. /*
  10. which means that's for SCOPE, for application scope to begin with, but you will quickly get to context scope (depending
  11. on variables, or on "controls", meaning the same key will trigger different commands if you are in the tree, or in the list
  12. field of your file manager for example: again "trymenu", then "Window Spy", in order to identify those elements):
  13. AHK is just too powerful in order to not profit from these fine features! And yes, feel free to delete all my comments!
  14. */
  16. SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
  17. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
  18. CoordMode, Mouse, Screen ; here "Screen" or "Relative"
  19. DetectHiddenWindows, On ; here "On" or (default) "Off"
  21. ; #Persistent : not necessary here since this script is persistent anyway because it contains hotkey assignments
  22. #InstallKeybdHook ; THIS IS FOR DETECTING THESE SCAN CODES ; outcomment when not needed anymore!
  26. ; Here starts the persistently-running part of the script (AHK knows this because now assignments follow)
  28. +^m:: msgbox, Message - Yes, this script is running indeed. ; no return needed since single-line
  30. +^n:: send This is ^b^ijust example text^b^i, and in a text processor, it'd even appear formatted`!
  32. ::mmm:: After hotstrings, don't forget the trigger space or trigger "enter" or such`!
  34. ::nnn::: Just another hotstring, with ^utext formatting^u (invisible in your editor, though)...
  36. +!m:: ; and the example from above:
  37. send First line
  38. send ^{left} ; control-leftarrowkey
  39. sleep, 1500 ; for your visual checking
  40. send (and only){space} ; here, a space not within text (as above), but (before or) after text
  41. sleep, 1500
  42. send {end}`nOh, second line here`!{home} ;
  43. sleep, 1500
  44. send {up}{end}{left, 3} ; sends the leftarrowkey 3 times in a row
  45. sleep, 1500
  46. msgbox, See where the cursor is now! ; exception characters in send strings, but not needed in msgbox strings!
  47. return
  49. ; and here, your code:
  50. ; ...

That's all!  Ok, I lied to you, I know it's 90 min. later now, but then, 60 min. of them were spent not with AHK, but with all this awful reading you had to do! ;-)

And now, you can stop learning here, and will have a versatile (though free!) macro tool and text expander, or you'll spend some time with the complete commands list, and have a look at the application scope command, "if (WinActive)" / IfWinActive (also in the form #IfWinActive - those "#" commands are at the end of the alphabetical list of commands, don't overlook them), at the ClipWait command (which will enhance all the ^c and ^x that you will soon put into your macros), and many more, just browse them and read "into" those that might be of interest.

The next big step then will be the introduction of "logical constructs", which means, as soon as you'll discover "if / else" and such, you'll have a big problem to understand how you ever did pc work without having these at your disposal: a fantastic, new world will open up to you (and you'll have got a fantastic, new hobby for your week-ends, that's the bad news for your family here)!

So, here's the command list (just the parent page of the send command above):

(and that's just those for AHK, not incl. the additional AHK_L ones!), and then look here, for example:


and well, there will be strictly no end, since AHK's possibilities are stricly unlimited! (Have a look what a real, top-notch AHK expert is able to do with it (and with a lot of expertise, that is), here: .)

Bye for today!

I have Adobe Viewer X / 10, and all my pdf documents (wheter in my browser, directly from the web, or from my harddisk, meaning I stored them to my harddisk, at some time, from the web, meaning all these documents are of third-party origin, not created by myself) are by default opened by this Adobe viewer.

Now my problem is, every one of these documents opens in this Adobe viewer, not in any standard appearance of this viewer, but in all sorts of different views and with all sorts of different settings, so it's evident that pdf documents have the ability to do this, meaning to override any default settings of your Adobe viewer in order to force their own settings, and most of the time, this is very ugly, and I have to switch settings (if this is even possible to begin with, which is not the case when they open directly in my browser, or do I overlook the possibility to do this otherwise here?) then, before reading the documents in question, meaning to make the view "full screen" (not really "full screen view", without caption bar, but a maximized window), fiddling around with the menu (which can appear in many variants or not appear at all), with the table of contents (which may appear or not, and in numerous flavors), and perhaps even (a real pain but worthwile when you want to read a long document) with the setting that makes the pgup/pgedn  keys move the view by a real page.

All this is a real pain, so most of the time, I avoid reading pdfs when not really necessary.

So I have two questions:

Is there a way to have this better, with Adobe viewer X / 10, or with the newest one, 11, or even by reinstalling the old one, version 9?

Is there another pdf viewer (in its free, or in its paid version - I know all these viewers in principle, meaning I know of their existence, know their names, but did not install / try them) where I could get rid of these problems, and where the settings of the viewer would override the respective pdf document settings, instead of their settings overriding the settings of the viewer? I also would be interested in knowing if this is possible with several of such viewers, meaning they might be different in other respects, so perhaps I even would be able to get rid of these problems, by going away from the Adobe viewer,  AND have the choice in installing / buying an alternative?

General Software Discussion / Outlook synching
« on: March 07, 2013, 05:37 PM »
I have several mail accounts, with yahoo and such (pop). I have two computers, one at home, and a laptop. I use Outlook that gathers the new mails from these different account, and then I put them into several Outlook folders / subfolders, by drag and drop. (I also could buy some add-in that would help me here, and will probably do so: There is QuickFile (70$), SimplyFile (50$), SpeedFiler (40$), and also ClearContext (90$) - SimplyFile seems to be best to me, but I would have to try them first.)

Now I don't want those mails, in yahoo, etc., to be deleted after downloading, but want them to be preserved there, too. This means I cannot download mails from both of my computers, as I would like to do, since Outlook in computer 1 does not know that I did download all these mails by Outlook in computer 2, and I would quickly create total chaos - this goes without saying, and I never tried to do such an idiotic thing.

What I do, I use computer 1 for accessing my mails, then copy my Outlook pst file to computer 2, then access my yahoo accounts again. This is a lot of fuss, but should work.

I also had a look at alternatives: I read all available reviews on Outlook synch tools, but I see there they all seem to be rather buggy. SynchPST from Wisco (90$), for example, will be available from bitsdujour soon, but reading the user reviews on will probably make you refrain from your purchase (and its competitors don't seem to function better).

Then, there is "Exchange Hosting", for example from, but one "mailbox", as they call it, is 10$ per month, and I don't know how many of these "mailboxes" I will need - in the end, such a solution seems to be the very best one here, for people like me who don't want to switch from Outlook to google.mail and similar, and who want to use several computers to access their mail. (But I don't know anything about Exchange, and Rackspace won't explain their system in a way I am able to understand.)

Now for my immediate problem, though.

As said, I use computer 1 with Outlook 1 for accessing my mails, then I copy the pst file to computer 2 and want to use Outlook 2 there, then again I want to transfer that same pst file back to computer 1 and access my mail account by Outlook 1, and so on.

Now, the second computer, with the refreshed pst file coming from computer 1, will NOT "know" that all these mails are downloaded and stored and categorized within my pst file, but it will begin to download thousands of "new" mails.

This means, the second computer, the second Outlook installation, with the same pst file that functions well in computer 1, behaves as if I had a second pst file here, and not the pst file from computer 1.

So, even with the fuss I'm going into in order to make my system work (I know it's crazy, and I should work with google.mail or something like that instead), nothing works, and I can't access my mail but with one computer, not both.

Does anybody know if I must reset some option within that second (identical) Outlook installation on my second computer, in order to stop that second installation from downloading all these mails that are already within its file system? (It's that unique pst file, WITH all these mails within its hierarchy - I see them, I can open them, and notwithstanding that, that second installation downloads all these files again, when the same pst file in computer one behaves normally: Here, only new files are downloaded.)

I should add that my system is exactly what they say you should do on numerous web sites, and nowhere there is a hint at the problems I encounter here.

General Software Discussion / how to get rid of an unwanted shortkey
« on: February 12, 2013, 07:14 PM »
Hello everybody.

I bought an old Toshiba laptop with Windows XP, with no CD/DVD or image, so I have to accept the operating system as it is, more or less, and the vendor pretends to not knowing the system, so he can't help me.

Now this system has a shortkey, which is Alt-rightarrow for context menu. Unfortunately, I need Alt-rightarrow for better things than context menu, but this shortkey overrides even native Alt-rightarrow key in my applications, so that they become unavailable, and the unwanted context menu appearing instead.

So I got rid of any service that might cause this, for example 00thotkey.exe and others, but the problem prevails, and I don't have any idea to get gid of this shortkey now.

Could anybody tell me where to search for a possible cause?

Do you know a tool that could identify such a cause, and which for example, when I press Alt-rightarrow, and the context menu appears again, would identify which process made appear the context menu there?

Otherwise, I'm quite happy with my purchase, so I absolutely need to get rid of this shortkey. When I search the web for "alt right arrow context menu", there is no information, so it seems to be a proprietary thing caused by a special tool on my system. It goes without sying, though, that there is no macro program running.

Any help would be greatly appreciated!

Pages: [1]