emendelson Posted January 3, 2021 Share Posted January 3, 2021 I have a script that tests the output of the windows chcp command in order to get the current code page (typically 437 or 850). I can make this work easily by redirecting chcp's output to a temporary file and then reading the file, but I can't get the output from StdoutRead. The following code works perfectly if I use the commands "ver" or "dir", but produces empty output from chcp. What am I doing wrong? #include <AutoItConstants.au3> $pid = Run(@ComSpec & " /c chcp",'',@SW_HIDE,$STDOUT_CHILD) ConsoleWrite (Return_Output($pid) & @CRLF) Func Return_Output($job) ProcessWaitClose ($job) Return StdoutRead ($job) EndFunc Thanks for any help with this slightly puzzling problem. Link to comment Share on other sites More sharing options...
Nine Posted January 3, 2021 Share Posted January 3, 2021 Replace your run statement with this one : $pid = Run(@ComSpec & " /c chcp",'',@SW_HIDE, $STDIN_CHILD+$STDERR_MERGED) emendelson 1 “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
emendelson Posted January 3, 2021 Author Share Posted January 3, 2021 Perfect! Thank you! I don't want to waste your time, but if you could explain how chcp differs from (for example) ver, I'd be grateful. Link to comment Share on other sites More sharing options...
Nine Posted January 3, 2021 Share Posted January 3, 2021 I am not exactly sure why some internal commands require to open both directions stream. If you look at @error after StdoutRead, you will notice that there is an error (EOF probably). Error handling can greatly help to find where the issue is located. But why that particular command is different from others, Just know it from experience “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
emendelson Posted January 3, 2021 Author Share Posted January 3, 2021 OK - Thank you again! Link to comment Share on other sites More sharing options...
jchd Posted January 3, 2021 Share Posted January 3, 2021 Simpler: Local $s = RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Nls\Codepage", "OEMCP") ConsoleWrite($s & @LF) This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
emendelson Posted January 3, 2021 Author Share Posted January 3, 2021 Yes - thank you! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now