in reply to Re^3: Question on Win32::Process
in thread Question on Win32::Process

Interesting. This is a direct quote from MSDN on-line

CREATE_NO_WINDOW 0x08000000 This flag is ignored.

I wonder which one is authoritative?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^5: Question on Win32::Process
by GrandFather (Saint) on Dec 29, 2005 at 10:15 UTC

    Indeed interesting. The version of MSDN I'm using is dated March 2005. I notice that the online version is December 2005 so I guess that is authoritive. But I can't see how they can have changed the behaviour for older versions of the OS, or even unpatched current versions. There is no indication of a change in behaviour in the documentation so unless it never worked ...


    DWIM is Perl's answer to Gödel

      Stranger and stranger. I found this on the web somewhere.

      when you try to create a console process with CreateNoWindows= true it + will work fine on windows NT/2k/xp but on windows 9x/ME the console window will pop up anyway. Quote from MSDN (Article "Process creation flags") CREATE_NO_WINDOW: The process is a console application that is run without a console win +dow. This flag is valid only when starting a console application. This flag cannot be used with MS-DOS-based applications. Windows Me/98/95: This value is not supported. I don't think this "bug" will be fixed. This flag simply isn't supported by Win95/98/Me.

      Whether they've decided to stop mentioning it in the docs, or the ability has been removed in one of the latest set of updates I don't know. Maybe they are trying to make it harder for people to create silent keyloggers and the like?


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        That is the text of the table entry in the article that I was referencing. My first thought was "oh, they've taken it out for Vista (64 bit support". But if that were the case I'd expect the NT, 2000 and XP behaviour to be documented still. If MS wanted to depricate the flag surely they would document it to that effect. Pretty sure I've used this flag with XP to suppress any UI for installer helper apps.

        There are plenty of good uses for the feature (Tk apps for a start) and there are plenty of other ways of managing a key logger so I'd be surprised if that were the reason for a change. Dropping console support entirely in the future might be a reason, but then the change would be documented.

        My best guess at this point is that it is a documentation bug in the Dec. 2005 version.


        DWIM is Perl's answer to Gödel
Re^5: Question on Win32::Process
by GrandFather (Saint) on Jan 05, 2006 at 21:53 UTC

    I emailed MS and received the following reply from Julie Solon:

    Thanks for the feedback. I went back to the developer who asked me to make this change a few months back, and he apologized for the mistake. I’ll restore the text with a slight modification:
    The process is a console application that is being run without a console window. Therefore, the console handle for the application is not set.

    This flag is ignored if the application is not a console application, or if it is used with either CREATE_NEW_CONSOLE or DETACHED_PROCESS.

    DWIM is Perl's answer to Gödel