Is this an accurate summary of the Windows Registry?

-1

I'm reading the book "Learning Python, 5th Edition" by Mark Lutz and the author makes a comment about the Windows Registry that got me wondering.

Here is the sentence in question (from Chapter 3, Section 2):

Because newer Windows systems use the Windows Registry (a.k.a. filename associations) to find a program with which to run a file, you don’t need to name “python” or “py” on the command line explicitly to run a .py file.

I have two questions about this:

  1. Is this a complete description of the Windows Registry?

(I'm 99% certain it is not, as it wasn't the main intent of the author to describe the Windows Registry.)

  1. Is it an accurate description of the Windows Registry?

Put another way, are all Windows filename associations in fact stored in the Windows Registry, or are there multiple other places such associations may be stored?


(If it is not accurate, how should this sentence be worded to be entirely accurate, without broadening the scope beyond the author's intent?)

Wildcard

Posted 2016-09-09T00:15:28.137

Reputation: 401

1No; It is not accurate. The registry hive, contains a great deal more, then just file associations. So the "a.k.a file name associations" part of that statement is 100% incorrect. – Ramhound – 2016-09-09T00:24:34.567

Answers

1

That description is accurate, as far as it goes, but it is incomplete. File associations are stored in the registry, but the registry stores so much more.

In fact, the name "registry" comes from the Windows 3.x days, where it was used to register file associations. Later versions (95 and later) used the registry for more data, but the registry's original intent was file association registration.

Patrick Seymour

Posted 2016-09-09T00:15:28.137

Reputation: 7 662

Aha! I had no idea that was the original purpose and etymology of the registry. I wonder if the author simply meant for people to make that association. :) – Wildcard – 2016-09-09T00:54:04.830

0

Let me alter the statement:

Because newer Windows systems use settings to keep track of the file, which are settings stored in the Windows Registry (these settings are a.k.a. filename associations) to find a program with which to run a file, you don’t need to name “python” or “py” on the command line explicitly to run a .py file.

I feel like that is more precise. The Windows systems do use the Windows Registry for this purpose. (The Windows systems do also use more than just the Windows Registry. For instance, from a command prompt, run ECHO %PATHEXT%. That doesn't change the fact that the Windows Registry is part of the process that the system may use.)

The act of checking how to handle a file, based on part of its filename, is what is referred to when people use the phrase "filename associations". (Specifically, the common approach is checking the part of the filename called the "extension".)

I don't mean to dispute (or confirm) 0xDEADBEEF's answer. I feel like the "a.k.a. filename associations" felt a bit unclear or possibly not right, but the rest of the statement seems accurate. What isn't accurate is thinking that the Windows Registry is only about filename extensions. Since Windows 95, that hasn't been anywhere close to true.

TOOGAM

Posted 2016-09-09T00:15:28.137

Reputation: 12 651

0

Other answers have covered the actual purpose of the Windows Registry, as well as (very helpfully!) its etymology. I want to make an attempt at a rewording of the original sentence.

Here is the original sentence:

Because newer Windows systems use the Windows Registry (a.k.a. filename associations) to find a program with which to run a file, you don’t need to name “python” or “py” on the command line explicitly to run a .py file.

Here is what I believe is a more accurate wording of it:

Because newer Windows systems use filename extensions (registered in the Windows Registry) to find the program with which to run a file, you don’t need to name “python” or “py” on the command line explicitly to run a .py file.

Wildcard

Posted 2016-09-09T00:15:28.137

Reputation: 401