Re: Get version of native Windows 32 executable
On 1 March 2011 17:28, Ian Thomas wrote: > (prev reply went to DC alone) > > Odd, as David suggested, redirecting stderr gets what I want whereas > synchronous stdout redirection collects zilch. I can live with a useable > result, but I don’t understand the behaviour. > Errors are supposed to go to stderr and normal output to stdout. As with anything FOSS - there is no standard (lots of opinions though!) -- *David Connors* | da...@codify.com | www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: https://www.codify.com/cards/davidconnors Address Info: https://www.codify.com/contact
RE: Get version of native Windows 32 executable
Ok, thanks Sam - makes some sense. Ian Thomas Victoria Park, Western Australia -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Sam Lai Sent: Tuesday, March 01, 2011 5:59 PM To: ozDotNet Subject: Re: Get version of native Windows 32 executable On 1 March 2011 18:28, Ian Thomas wrote: > (prev reply went to DC alone) > > Odd, as David suggested, redirecting stderr gets what I want whereas > synchronous stdout redirection collects zilch. I can live with a useable > result, but I dont understand the behaviour. > Unix command line apps often print to stderr instead of stdout so the app's stdout can be piped along to the next piece of the puzzle. The smarter apps can detect if stdout has been redirected or not and print to stdout instead if it hasn't (using the isatty function in C). > > > > Ian Thomas > Victoria Park, Western Australia > > > > From: David Connors [mailto:da...@codify.com] > Sent: Tuesday, March 01, 2011 1:39 PM > To: ozDotNet > Cc: Ian Thomas > > Subject: Re: Get version of native Windows 32 executable > > > > On 1 March 2011 15:30, Ian Thomas wrote: > > With this particular MinGW application, there is a commandline argument to > redirect stdoutput using > doesnt work. And I have found that I have to > open a cmd box (in code) to get the h (help) to work! > > So, my work-around had been (and still is, since I cant get anything from > Process.StartInfo.RedirectStandardOutput) to create a text output file and > read it. > > The output might be going out stderr. Try redirecting that instead. > > Unfortunately, I cant recompile the C source code for the FOSS utility > since it uses variable-length arrays. > > Send me the source in a zip as I have the entire G++/MinGW/Qt infrastructure > on my laptop at the moment. I'll see if it builds and if so we can discuss > how much beer you're going to send me to embed a version resource for you. > > > > That said, can't you just open the exe in a resource editor and type one > in? > > > > David. > > > > -- > David Connors | da...@codify.com | www.codify.com > Software Engineer > Codify Pty Ltd > Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 > 189 363 > V-Card: https://www.codify.com/cards/davidconnors > Address Info: https://www.codify.com/contact
Re: Get version of native Windows 32 executable
On 1 March 2011 18:28, Ian Thomas wrote: > (prev reply went to DC alone) > > Odd, as David suggested, redirecting stderr gets what I want whereas > synchronous stdout redirection collects zilch. I can live with a useable > result, but I don’t understand the behaviour. > Unix command line apps often print to stderr instead of stdout so the app's stdout can be piped along to the next piece of the puzzle. The smarter apps can detect if stdout has been redirected or not and print to stdout instead if it hasn't (using the isatty function in C). > > > > Ian Thomas > Victoria Park, Western Australia > > > > From: David Connors [mailto:da...@codify.com] > Sent: Tuesday, March 01, 2011 1:39 PM > To: ozDotNet > Cc: Ian Thomas > > Subject: Re: Get version of native Windows 32 executable > > > > On 1 March 2011 15:30, Ian Thomas wrote: > > With this particular MinGW application, there is a commandline argument to > redirect stdoutput – using > doesn’t work. And I have found that I have to > open a cmd box (in code) to get the –h (help) to work! > > So, my work-around had been (and still is, since I can’t get anything from > Process.StartInfo.RedirectStandardOutput) to create a text output file and > read it. > > The output might be going out stderr. Try redirecting that instead. > > Unfortunately, I can’t recompile the C source code for the FOSS utility > since it uses variable-length arrays. > > Send me the source in a zip as I have the entire G++/MinGW/Qt infrastructure > on my laptop at the moment. I'll see if it builds and if so we can discuss > how much beer you're going to send me to embed a version resource for you. > > > > That said, can't you just open the exe in a resource editor and type one > in? > > > > David. > > > > -- > David Connors | da...@codify.com | www.codify.com > Software Engineer > Codify Pty Ltd > Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 > 189 363 > V-Card: https://www.codify.com/cards/davidconnors > Address Info: https://www.codify.com/contact
RE: Get version of native Windows 32 executable
(prev reply went to DC alone) Odd, as David suggested, redirecting stderr gets what I want whereas synchronous stdout redirection collects zilch. I can live with a useable result, but I don't understand the behaviour. _ Ian Thomas Victoria Park, Western Australia _ From: David Connors [mailto:da...@codify.com] Sent: Tuesday, March 01, 2011 1:39 PM To: ozDotNet Cc: Ian Thomas Subject: Re: Get version of native Windows 32 executable On 1 March 2011 15:30, Ian Thomas wrote: With this particular MinGW application, there is a commandline argument to redirect stdoutput - using > doesn't work. And I have found that I have to open a cmd box (in code) to get the -h (help) to work! So, my work-around had been (and still is, since I can't get anything from Process.StartInfo.RedirectStandardOutput) to create a text output file and read it. The output might be going out stderr. Try redirecting that instead. Unfortunately, I can't recompile the C source code for the FOSS utility since it uses variable-length arrays. Send me the source in a zip as I have the entire G++/MinGW/Qt infrastructure on my laptop at the moment. I'll see if it builds and if so we can discuss how much beer you're going to send me to embed a version resource for you. That said, can't you just open the exe in a resource editor and type one in? David. -- David Connors | <mailto:da...@codify.com> da...@codify.com | <http://www.codify.com> www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: <https://www.codify.com/cards/davidconnors> https://www.codify.com/cards/davidconnors Address Info: <https://www.codify.com/contact> https://www.codify.com/contact
Re: Get version of native Windows 32 executable
Really? I found the framework classes to be pretty well thought out and some of the stuff like their webkit wrapper to be remarkably powerful. Usually for something from the FOSS community installation was easy and polished. Nokia could have made an awesome mobile OS out of it if they could ever make a decision on symbian v qt v meego v whatever else. -- David Connors Software Engineer Codify Pty Ltd - www.codify.com Phone: +61 (7) 32106269 | Facsimilie: +61 (7) 32106269 Mobile: +61 417189363 Address Info: http://www.codify.com/AboutUs/ContactDetails This message was sent from my phone. Please excuse the brevity. On 01/03/2011, at 4:20 PM, Ian Thomas wrote: Qt gave me a headache. -- Ian Thomas Victoria Park, Western Australia -- *From:* ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Joseph Cooney *Sent:* Tuesday, March 01, 2011 1:37 PM *To:* ozDotNet *Subject:* Re: Get version of native Windows 32 executable Qt looks pretty nice. It's a shame it's future is now under a cloud re: Nokia. Joseph On Tue, Mar 1, 2011 at 2:31 PM, David Connors wrote: On 1 March 2011 14:18, Ian Thomas wrote: David #2 Yes, I did that after seeing the response from my test code. The MinGW/GCC-compiled executable doesn't respond to FileVersionInfo.GetVersionInfo - an empty string is returned. All the property details except size, type, date modified are blank. Yeah typical effort from the FOSS movement. I really don't understand the whole MinGW effort and all this nonsense with getting crap like Apache and so on going on Windows. Most of the resulting software is terrible to use. That said I did have cause to build a QT based app a couple of weeks ago and it* wasn't terrible.* The steps to get any sort of resource embedded in a PE format executable when using GCC/MinGW etc. would be beyond painful. Maybe if you're concerned about your app being incompatible with future versions of the MinGW app you could just hash the executable file as a way of detecting a change? -- *David Connors* | da...@codify.com | www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: https://www.codify.com/cards/davidconnors Address Info: https://www.codify.com/contact -- w: http://jcooney.net t: @josephcooney
RE: Get version of native Windows 32 executable
Qt gave me a headache. _ Ian Thomas Victoria Park, Western Australia _ From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Joseph Cooney Sent: Tuesday, March 01, 2011 1:37 PM To: ozDotNet Subject: Re: Get version of native Windows 32 executable Qt looks pretty nice. It's a shame it's future is now under a cloud re: Nokia. Joseph On Tue, Mar 1, 2011 at 2:31 PM, David Connors wrote: On 1 March 2011 14:18, Ian Thomas wrote: David #2 Yes, I did that after seeing the response from my test code. The MinGW/GCC-compiled executable doesn't respond to FileVersionInfo.GetVersionInfo - an empty string is returned. All the property details except size, type, date modified are blank. Yeah typical effort from the FOSS movement. I really don't understand the whole MinGW effort and all this nonsense with getting crap like Apache and so on going on Windows. Most of the resulting software is terrible to use. That said I did have cause to build a QT based app a couple of weeks ago and it wasn't terrible. The steps to get any sort of resource embedded in a PE format executable when using GCC/MinGW etc. would be beyond painful. Maybe if you're concerned about your app being incompatible with future versions of the MinGW app you could just hash the executable file as a way of detecting a change? -- David Connors | <mailto:da...@codify.com> da...@codify.com | <http://www.codify.com> www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: <https://www.codify.com/cards/davidconnors> https://www.codify.com/cards/davidconnors Address Info: <https://www.codify.com/contact> https://www.codify.com/contact -- w: http://jcooney.net t: @josephcooney
Re: Get version of native Windows 32 executable
On 1 March 2011 15:30, Ian Thomas wrote: > With this particular MinGW application, there is a commandline argument > to redirect stdoutput – using > doesn’t work. And I have found that I have > to open a cmd box (in code) to get the –h (help) to work! > > So, my work-around had been (and still is, since I can’t get anything from > Process.StartInfo.RedirectStandardOutput) to create a text output file and > read it. > The output might be going out stderr. Try redirecting that instead. > Unfortunately, I can’t recompile the C source code for the FOSS utility > since it uses variable-length arrays. > Send me the source in a zip as I have the entire G++/MinGW/Qt infrastructure on my laptop at the moment. I'll see if it builds and if so we can discuss how much beer you're going to send me to embed a version resource for you. That said, can't you just open the exe in a resource editor and type one in? David. -- *David Connors* | da...@codify.com | www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: https://www.codify.com/cards/davidconnors Address Info: https://www.codify.com/contact
Re: Get version of native Windows 32 executable
Qt looks pretty nice. It's a shame it's future is now under a cloud re: Nokia. Joseph On Tue, Mar 1, 2011 at 2:31 PM, David Connors wrote: > On 1 March 2011 14:18, Ian Thomas wrote: > >> David #2 >> Yes, I did that after seeing the response from my test code. The >> MinGW/GCC-compiled executable doesn't respond to >> FileVersionInfo.GetVersionInfo - an empty string is returned. All the >> property details except size, type, date modified are blank. >> > > Yeah typical effort from the FOSS movement. I really don't understand the > whole MinGW effort and all this nonsense with getting crap like Apache and > so on going on Windows. Most of the resulting software is terrible to > use. That said I did have cause to build a QT based app a couple of weeks > ago and it* wasn't terrible.* > > The steps to get any sort of resource embedded in a PE format executable > when using GCC/MinGW etc. would be beyond painful. > > Maybe if you're concerned about your app being incompatible with future > versions of the MinGW app you could just hash the executable file as a way > of detecting a change? > > -- > *David Connors* | da...@codify.com | www.codify.com > Software Engineer > Codify Pty Ltd > Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 > 189 363 > V-Card: https://www.codify.com/cards/davidconnors > Address Info: https://www.codify.com/contact > > -- w: http://jcooney.net t: @josephcooney
RE: Get version of native Windows 32 executable
David #2 With this particular MinGW application, there is a commandline argument to redirect stdoutput - using > doesn't work. And I have found that I have to open a cmd box (in code) to get the -h (help) to work! So, my work-around had been (and still is, since I can't get anything from Process.StartInfo.RedirectStandardOutput) to create a text output file and read it. Unfortunately, I can't recompile the C source code for the FOSS utility since it uses variable-length arrays. _ Ian Thomas Victoria Park, Western Australia _ From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of David Connors Sent: Tuesday, March 01, 2011 12:31 PM To: ozDotNet Subject: Re: Get version of native Windows 32 executable On 1 March 2011 14:18, Ian Thomas wrote: David #2 Yes, I did that after seeing the response from my test code. The MinGW/GCC-compiled executable doesn't respond to FileVersionInfo.GetVersionInfo - an empty string is returned. All the property details except size, type, date modified are blank. Yeah typical effort from the FOSS movement. I really don't understand the whole MinGW effort and all this nonsense with getting crap like Apache and so on going on Windows. Most of the resulting software is terrible to use. That said I did have cause to build a QT based app a couple of weeks ago and it wasn't terrible. The steps to get any sort of resource embedded in a PE format executable when using GCC/MinGW etc. would be beyond painful. Maybe if you're concerned about your app being incompatible with future versions of the MinGW app you could just hash the executable file as a way of detecting a change? -- David Connors | <mailto:da...@codify.com> da...@codify.com | <http://www.codify.com> www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: <https://www.codify.com/cards/davidconnors> https://www.codify.com/cards/davidconnors Address Info: <https://www.codify.com/contact> https://www.codify.com/contact
Re: Get version of native Windows 32 executable
On 1 March 2011 14:18, Ian Thomas wrote: > David #2 > Yes, I did that after seeing the response from my test code. The > MinGW/GCC-compiled executable doesn't respond to > FileVersionInfo.GetVersionInfo - an empty string is returned. All the > property details except size, type, date modified are blank. > Yeah typical effort from the FOSS movement. I really don't understand the whole MinGW effort and all this nonsense with getting crap like Apache and so on going on Windows. Most of the resulting software is terrible to use. That said I did have cause to build a QT based app a couple of weeks ago and it* wasn't terrible.* The steps to get any sort of resource embedded in a PE format executable when using GCC/MinGW etc. would be beyond painful. Maybe if you're concerned about your app being incompatible with future versions of the MinGW app you could just hash the executable file as a way of detecting a change? -- *David Connors* | da...@codify.com | www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: https://www.codify.com/cards/davidconnors Address Info: https://www.codify.com/contact
RE: Get version of native Windows 32 executable
David #2 Yes, I did that after seeing the response from my test code. The MinGW/GCC-compiled executable doesn't respond to FileVersionInfo.GetVersionInfo - an empty string is returned. All the property details except size, type, date modified are blank. Ian Thomas Victoria Park, Western Australia
RE: Get version of native Windows 32 executable
Aha - that's excellent, David - less clunky than my method (and I have learnt something useful for later use, as well). Ian Thomas Victoria Park, Western Australia -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of David Kean Sent: Tuesday, March 01, 2011 11:23 AM To: ozDotNet Subject: RE: Get version of native Windows 32 executable Ah, so you are actually asking how do I get the version information that it outputs to the console screen. It depends, if it includes a native version resource, FileVersionInfo will provide what you need. Otherwise, you can have .NET capture the output for you by following instructions in the remarks section on the following page: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.beginoutp utreadline.aspx -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Ian Thomas Sent: Monday, February 28, 2011 7:15 PM To: 'ozDotNet' Subject: RE: Get version of native Windows 32 executable The executable was compiled (by others) with GCC / MinGW - I should have been clearer (ie, not really a Win32 native app is it?) I will have to do some searching, I think. My crude approach has been to redirect its I/O to a file and parse it for the version info (it is a command line app). Ian Thomas Victoria Park, Western Australia -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of David Kean Sent: Tuesday, March 01, 2011 9:57 AM To: ozDotNet Subject: RE: Get version of native Windows 32 executable FileVersionInfo -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Ian Thomas Sent: Monday, February 28, 2011 5:47 PM To: 'ozDotNet' Subject: Get version of native Windows 32 executable I need to get the version info from an EXE that is run as a process from my .NET WinForms application, and put it into a log file. (Over time, the version of the native application changes). Do I need to use a Win32 API call for this? Ian Thomas Victoria Park, Western Australia
Re: Get version of native Windows 32 executable
On 1 March 2011 13:14, Ian Thomas wrote: > The executable was compiled (by others) with GCC / MinGW - I should have > been clearer (ie, not really a Win32 native app is it?) > Yes and no. It will be a native Win32 app that links in a whole bunch of quasi-POSIX libraries. I would bet dollars to doughnuts that the version/author/company/etc resources are all blank/non-existent. I will have to do some searching, I think. > My crude approach has been to redirect its I/O to a file and parse it for > the version info (it is a command line app). > Bring up the properties for the file in explorer. The Details tab will list whatever resources Explorer cares about that are also embedded in the exe. One of those is the file version resource. -- *David Connors* | da...@codify.com | www.codify.com Software Engineer Codify Pty Ltd Phone: +61 (7) 3210 6268 | Facsimile: +61 (7) 3210 6269 | Mobile: +61 417 189 363 V-Card: https://www.codify.com/cards/davidconnors Address Info: https://www.codify.com/contact
RE: Get version of native Windows 32 executable
Ah, so you are actually asking how do I get the version information that it outputs to the console screen. It depends, if it includes a native version resource, FileVersionInfo will provide what you need. Otherwise, you can have .NET capture the output for you by following instructions in the remarks section on the following page: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.beginoutputreadline.aspx -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Ian Thomas Sent: Monday, February 28, 2011 7:15 PM To: 'ozDotNet' Subject: RE: Get version of native Windows 32 executable The executable was compiled (by others) with GCC / MinGW - I should have been clearer (ie, not really a Win32 native app is it?) I will have to do some searching, I think. My crude approach has been to redirect its I/O to a file and parse it for the version info (it is a command line app). Ian Thomas Victoria Park, Western Australia -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of David Kean Sent: Tuesday, March 01, 2011 9:57 AM To: ozDotNet Subject: RE: Get version of native Windows 32 executable FileVersionInfo -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Ian Thomas Sent: Monday, February 28, 2011 5:47 PM To: 'ozDotNet' Subject: Get version of native Windows 32 executable I need to get the version info from an EXE that is run as a process from my .NET WinForms application, and put it into a log file. (Over time, the version of the native application changes). Do I need to use a Win32 API call for this? Ian Thomas Victoria Park, Western Australia
RE: Get version of native Windows 32 executable
The executable was compiled (by others) with GCC / MinGW - I should have been clearer (ie, not really a Win32 native app is it?) I will have to do some searching, I think. My crude approach has been to redirect its I/O to a file and parse it for the version info (it is a command line app). Ian Thomas Victoria Park, Western Australia -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of David Kean Sent: Tuesday, March 01, 2011 9:57 AM To: ozDotNet Subject: RE: Get version of native Windows 32 executable FileVersionInfo -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Ian Thomas Sent: Monday, February 28, 2011 5:47 PM To: 'ozDotNet' Subject: Get version of native Windows 32 executable I need to get the version info from an EXE that is run as a process from my .NET WinForms application, and put it into a log file. (Over time, the version of the native application changes). Do I need to use a Win32 API call for this? Ian Thomas Victoria Park, Western Australia
RE: Get version of native Windows 32 executable
FileVersionInfo -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Ian Thomas Sent: Monday, February 28, 2011 5:47 PM To: 'ozDotNet' Subject: Get version of native Windows 32 executable I need to get the version info from an EXE that is run as a process from my .NET WinForms application, and put it into a log file. (Over time, the version of the native application changes). Do I need to use a Win32 API call for this? Ian Thomas Victoria Park, Western Australia
Get version of native Windows 32 executable
I need to get the version info from an EXE that is run as a process from my .NET WinForms application, and put it into a log file. (Over time, the version of the native application changes). Do I need to use a Win32 API call for this? Ian Thomas Victoria Park, Western Australia