Page 1 of 1

Can I programatically detect if running on ReactOS?

Posted: Tue Jan 16, 2018 6:25 am
by Konata
To quell the concerns of the developers, I am not looking to do this to write a "ReactOS-specific" version of my software, it's purely for survey/logging reasons. I'm doing the same for WINE.

Is there a reliable way to actually detect if my software is running on ReactOS? I tried searching for it, I vaguely recall this being a discussion in the past, but I can't remember anything about it.

Re: Can I programatically detect if running on ReactOS?

Posted: Tue Jan 16, 2018 9:44 am
by EmuandCo
Maybe check the file properties of a system file for ReactOS could be an idea.

Re: Can I programatically detect if running on ReactOS?

Posted: Tue Jan 16, 2018 10:33 am
by Konata
EmuandCo wrote:Maybe check the file properties of a system file for ReactOS could be an idea.
Do you have a specific file/property in mind I could check? I'd really be interested in a reliable method that would be promised by the developers to always be in the OS.
I'm assuming that doesn't yet exist. Would the team be interested in adding that? I imagine it wouldn't be much more than just adding a value like "is_reactos" to ntdll.dll or something, kind of like WINE.

Re: Can I programatically detect if running on ReactOS?

Posted: Tue Jan 16, 2018 12:12 pm
by hbelusca
You can also check this registry value:
https://git.reactos.org/?p=reactos.git; ... 73f3a#l369

Code: Select all

HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName",2,"ReactOS"

Re: Can I programatically detect if running on ReactOS?

Posted: Tue Jan 16, 2018 11:49 pm
by Konata
hbelusca wrote:You can also check this registry value:
https://git.reactos.org/?p=reactos.git; ... 73f3a#l369

Code: Select all

HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName",2,"ReactOS"
Thank you! That sounds very promising.

Re: Can I programatically detect if running on ReactOS?

Posted: Wed Jan 17, 2018 9:22 pm
by learn_more
Konata wrote:
EmuandCo wrote:Maybe check the file properties of a system file for ReactOS could be an idea.
Do you have a specific file/property in mind I could check? I'd really be interested in a reliable method that would be promised by the developers to always be in the OS.
I'm assuming that doesn't yet exist. Would the team be interested in adding that? I imagine it wouldn't be much more than just adding a value like "is_reactos" to ntdll.dll or something, kind of like WINE.
for obvious reasons we are not going to promise this.

Re: Can I programatically detect if running on ReactOS?

Posted: Fri Feb 02, 2018 9:23 am
by PurpleGurl
Yes, you can check system files properties or certain registry keys. I did similar testing in a DOS utility I was writing. I'd check the kernel files for copyright strings to get the version, and which company that made it, as there were two official DOS producers. The knock-offs came later. So you can do the same with ROS, such as look in the properties and/or parse code for strings.

However, it would not exactly be a good thing to make it easy to test. Consider this. Let's say that a certain software giant (I won't name them in this context since they automatically scour the web with bots) refuses to certify an application as fully compatible with their app or sign their drivers unless they check for Wine and ROS and refuse to run. I hope I gave them no ideas in stating this. We don't need to leave ourselves open that way.

Posted: Fri Feb 02, 2018 1:21 pm
by erkinalp

Re: Can I programatically detect if running on ReactOS?

Posted: Sat Feb 03, 2018 2:01 am
by middings
PurpleGurl wrote:Let's say that a certain software giant... (checks) for Wine and ROS and refuse to run.
A certain software giant has been burned before for trying to defeat MS-DOS rival DR-DOS with similar trickery.

I believe that ReactOS is so far from releasing a minimum viable product that there is no reason to worry about the certain software giant now or for some time to come.