<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://k-mug.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Microsoft Technologies</title><link>http://k-mug.org/forums/4.aspx</link><description>Microsoft technologies (eg:- .NET, C#, VB.NET, ASP.NET, Silverlight, WPF, WCF etc)</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>Re: CreateProcess</title><link>http://k-mug.org/forums/thread/1247.aspx</link><pubDate>Tue, 17 Mar 2009 20:01:01 GMT</pubDate><guid isPermaLink="false">b993d619-df1b-42d3-a9eb-65f239516689:1247</guid><dc:creator>Shajan</dc:creator><slash:comments>0</slash:comments><comments>http://k-mug.org/forums/thread/1247.aspx</comments><wfw:commentRss>http://k-mug.org/forums/commentrss.aspx?SectionID=4&amp;PostID=1247</wfw:commentRss><description>&lt;p&gt;//&amp;nbsp;Do paste&amp;nbsp;your code if you don&amp;#39;t mind sharing it... The part where the process is launched, and the part where you verify the working directory in the child process.&lt;/p&gt;
&lt;p&gt;// I tried it out, the API does work as described.. compile and run the code below, producing test.exe, then run it.. It launches another instance of test.exe using createprocess..&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;#define MODULE &amp;quot;Test.exe&amp;quot;&lt;br /&gt;void PrintErrorMsg(const char* strFunction, long err);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;int main(int argc, char* argv[])&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char folder[MAX_PATH];&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Note argv[0] is always the current command line&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (argc == 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Usage : &amp;quot; MODULE &amp;quot; path\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Example\n\t&amp;quot; MODULE &amp;quot; c:\\windows\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Single argument implies child process, launch child process&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (argc == 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Launch the child process&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (GetCurrentDirectoryA(MAX_PATH, folder))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Parent process current dir : %s\n&amp;quot;, folder);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintErrorMsg(&amp;quot;GetCurrentDirectory&amp;quot;, GetLastError());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Creating child process with current dir : %s\n&amp;quot;, argv[1]);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STARTUPINFOA si = {0};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCESS_INFORMATION pi = {0};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(&amp;amp;si, sizeof(STARTUPINFO), 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(&amp;amp;pi, sizeof(pi), 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; si.cb = sizeof(STARTUPINFO);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Now create Process, add 2 dummy arguments&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!CreateProcessA(NULL, MODULE &amp;quot; 1 2&amp;quot;, NULL, NULL, FALSE, 0, NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; argv[1], &amp;amp;si, &amp;amp;pi))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintErrorMsg(&amp;quot;CreateProcess&amp;quot;, GetLastError());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Two arguments implies child process&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (argc == 3) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Child process, print current directory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (GetCurrentDirectoryA(MAX_PATH, folder))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Child process current dir : %s\n&amp;quot;, folder);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintErrorMsg(&amp;quot;GetCurrentDirectory&amp;quot;, GetLastError());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;void PrintErrorMsg(const char* strFunction, long err)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char errStr[MAX_PATH];&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, 0,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errStr, MAX_PATH, NULL);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:#000000;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-family:Tahoma;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;Error %s %d : %s\n&amp;quot;, strFunction, err, errStr);&lt;br style="mso-special-character:line-break;" /&gt;}&lt;br style="mso-special-character:line-break;" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;-Shajan&lt;/p&gt;
&lt;p&gt;This posting is provided &amp;ldquo;AS IS&amp;rdquo; with no warranties and confers no rights.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: CreateProcess</title><link>http://k-mug.org/forums/thread/1243.aspx</link><pubDate>Tue, 17 Mar 2009 15:34:34 GMT</pubDate><guid isPermaLink="false">b993d619-df1b-42d3-a9eb-65f239516689:1243</guid><dc:creator>premith</dc:creator><slash:comments>0</slash:comments><comments>http://k-mug.org/forums/thread/1243.aspx</comments><wfw:commentRss>http://k-mug.org/forums/commentrss.aspx?SectionID=4&amp;PostID=1243</wfw:commentRss><description>&lt;p&gt;i dint get any errors as such&lt;/p&gt;
&lt;p&gt;the program launched succesfuly but the working directory part was not correct&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;btw guys i must say this is a active group&lt;/p&gt;
&lt;p&gt;cheers&lt;/p&gt;
&lt;p&gt;keep up the good work :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: CreateProcess</title><link>http://k-mug.org/forums/thread/1239.aspx</link><pubDate>Tue, 17 Mar 2009 15:25:10 GMT</pubDate><guid isPermaLink="false">b993d619-df1b-42d3-a9eb-65f239516689:1239</guid><dc:creator>NinethSense</dc:creator><slash:comments>0</slash:comments><comments>http://k-mug.org/forums/thread/1239.aspx</comments><wfw:commentRss>http://k-mug.org/forums/commentrss.aspx?SectionID=4&amp;PostID=1239</wfw:commentRss><description>&lt;p&gt;Do you get any error?&lt;/p&gt;
&lt;p&gt;LPTSTR szCmdline = _tcsdup(TEXT(&amp;quot;C:\\Program Files\\MyApp -L -S&amp;quot;));&lt;br /&gt;&lt;strong&gt;	CreateProcess&lt;/strong&gt;(NULL, szCmdline, /* ... */);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: CreateProcess</title><link>http://k-mug.org/forums/thread/1238.aspx</link><pubDate>Tue, 17 Mar 2009 15:18:29 GMT</pubDate><guid isPermaLink="false">b993d619-df1b-42d3-a9eb-65f239516689:1238</guid><dc:creator>Anuraj</dc:creator><slash:comments>0</slash:comments><comments>http://k-mug.org/forums/thread/1238.aspx</comments><wfw:commentRss>http://k-mug.org/forums/commentrss.aspx?SectionID=4&amp;PostID=1238</wfw:commentRss><description>&lt;p&gt;Did you gone through this link?&lt;/p&gt;
&lt;p&gt;http://www.goffconcepts.com/techarticles/development/cpp/createprocess.html&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>CreateProcess</title><link>http://k-mug.org/forums/thread/1236.aspx</link><pubDate>Tue, 17 Mar 2009 14:55:48 GMT</pubDate><guid isPermaLink="false">b993d619-df1b-42d3-a9eb-65f239516689:1236</guid><dc:creator>premith</dc:creator><slash:comments>0</slash:comments><comments>http://k-mug.org/forums/thread/1236.aspx</comments><wfw:commentRss>http://k-mug.org/forums/commentrss.aspx?SectionID=4&amp;PostID=1236</wfw:commentRss><description>&lt;p&gt;how do we use Createprocess API to spawn a process with the working directory set as the one we need.&lt;/p&gt;
&lt;p&gt;I tried with the lpCurrentDirectory parameter in the CreateProcess.&lt;/p&gt;
&lt;p&gt;Ne help would be appreciated.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>