我有一个程序
在cmd窗口中可以实现
thread.exe > 1.txt但是我在vb中shell (thread.exe > 1.txt)
的时候 ,却无法生成1.txt文件

解决方案 »

  1.   

    别用Shell,用OpenProcess,注意设置继承
    这样就可以 重定向 标准输入输出对象 了
    MSDN:SetStdHandle
    The SetStdHandle function is used to set the handle for the standard input, standard output, or standard error device. The specified handle can be used by subsequent calls to the GetStdHandle function to refer to the input, output, or error device. BOOL SetStdHandle(
      DWORD nStdHandle,  // input, output, or error device
      HANDLE hHandle     // handle to be a standard handle
    );
     
    Parameters
    nStdHandle 
    Specifies the handle to be set. This parameter can have one of the following values: Value Meaning 
    STD_INPUT_HANDLE Standard input handle 
    STD_OUTPUT_HANDLE Standard output handle 
    STD_ERROR_HANDLE Standard error handle 
    hHandle 
    Supplies the handle to store as standard input, standard output, or standard error. 
    Return Values
    If the function succeeds, the return value is nonzero.If the function fails, the return value is zero. To get extended error information, call GetLastError. Res
    The standard handles of a process may have been redirected by a call to SetStdHandle, in which case GetStdHandle will return the redirected handle. If the standard handles have been redirected, you can specify the CONIN$ value in a call to the CreateFile function to get a handle to a console's input buffer. Similarly, you can specify the CONOUT$ value to get a handle to the console's active screen buffer. QuickInfo
      Windows NT: Requires version 3.1 or later.
      Windows: Requires Windows 95 or later.
      Windows CE: Unsupported.
      Header: Declared in winbase.h.
      Import Library: Use kernel32.lib.
      

  2.   

    shell "cmd /c thread.exe > 1.txt"