user-0 提问: 如何设定控制台程序显示的位置？

回复:
user: user-1
content: 你不知道任何手动操作都可程序实现吗？！

user: user-2
content: 引用 1 楼 zhao4zhong1 的回复:开始、运行、打开： cmd /k "title xyz" 确定 弹出一个标题为xyz的控制台窗口。 在该窗口左上角图标上点鼠标右键、属性、布局、窗口位置、由系统定位窗口前面的勾去掉，左：0，上：0，确定。 弹出“应用属性”窗口，选“保存属性，供以后具有相同标题的窗口使用”，确定。  以后只要创建标题是xyz的控制台窗口，都会显示在桌面的左上角。 上CSDN好多年了，讲真，从来没看到你的答案是对的，只要看到你的头像，我就知道，你的答案又再鬼扯了，这次实在忍不住了，楼主问的是程序再屏幕的中间显示，你却说什么开始运行输入命令，也真是驴头不对马嘴了

user: user-3
content: ...

user: user-1
content: GetConsoleWindow Function  Retrieves the window handle used by the console associated with the calling process.   HWND WINAPI GetConsoleWindow(void);  Parameters This function has no parameters.  Return Value The return value is a handle to the window used by the console associated with the calling process or NULL if there is no such associated console.  Remarks To compile an application that uses this function, define _WIN32_WINNT as 0x0500 or later. For more information, see Using the Windows Headers.  Requirements Client  Requires Windows Vista, Windows XP, or Windows 2000 Professional.   Server  Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server.   Header  Declared in Wincon.h; include Windows.h.   Library  Use Kernel32.lib.   DLL  Requires Kernel32.dll.    See Also Console Functions    Send comments about this topic to Microsoft   Build date: 8/15/2007

user: user-0
content: 引用 3 楼 zhao4zhong1 的回复:使用APIMonitor或Process Monitor 监视1楼操作是Explorer.exe都调用过哪些API，写过哪些注册表。 谢谢 最后再问下 获得当前窗口的句柄的函数是什么？

user: user-1
content: 用GetConsoleWindow获取窗口句柄，然后MoveWindow MoveWindow The MoveWindow function changes the position and dimensions of the specified window. For a top-level window, the position and dimensions are relative to the upper-left corner of the screen. For a child window, they are relative to the upper-left corner of the parent window's client area.   BOOL MoveWindow(   HWND hWnd,      // handle to window   int X,          // horizontal position   int Y,          // vertical position   int nWidth,     // width   int nHeight,    // height   BOOL bRepaint   // repaint flag );   Parameters hWnd  Handle to the window.  X  Specifies the new position of the left side of the window.  Y  Specifies the new position of the top of the window.  nWidth  Specifies the new width of the window.  nHeight  Specifies the new height of the window.  bRepaint  Specifies whether the window is to be repainted. If this parameter is TRUE, the window receives aWM_PAINT message. If the parameter is FALSE, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of moving a child window. If this parameter is FALSE, the application must explicitly invalidate or redraw any parts of the window and parent window that need redrawing.  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, callGetLastError.  Remarks If the bRepaint parameter is TRUE, the system sends the WM_PAINT message to the window procedure immediately after moving the window (that is, the MoveWindow function calls the UpdateWindow function). If bRepaint is FALSE, the system places the WM_PAINT message in the message queue associated with the window. The message loop dispatches the WM_PAINT message only after dispatching all other messages in the queue.   MoveWindow sends WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED, WM_MOVE, WM_SIZE, and WM_NCCALCSIZE messages to the window.   Windows CE: The bRepaint parameter is ignored and is assumed to be FALSE.   QuickInfo   Windows NT: Requires version 3.1 or later.   Windows: Requires Windows 95 or later.   Windows CE: Requires version 1.0 or later.   Header: Declared in winuser.h.   Import Library: Use user32.lib.  See Also Windows Overview, Window Functions, SetWindowPos,UpdateWindow, WM_GETMINMAXINFO,WM_PAINT

user: user-1
content: 使用APIMonitor或Process Monitor 监视1楼操作是Explorer.exe都调用过哪些API，写过哪些注册表。

user: user-0
content: 我说的是程序  #include <stdio.h> #include <windows.h> int main() { 	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); 	CONSOLE_SCREEN_BUFFER_INFO info; 	GetConsoleScreenBufferInfo(hOut, &info); 	info.srWindow.Left=0; 	info.srWindow.Top=0; 	SetConsoleWindowInfo(hOut, 1, &info.srWindow); 	return 0; }   我取消了由系统定位窗口 可还是不管用？？？

user: user-1
content: 开始、运行、打开： cmd /k "title xyz" 确定 弹出一个标题为xyz的控制台窗口。 在该窗口左上角图标上点鼠标右键、属性、布局、窗口位置、由系统定位窗口前面的勾去掉，左：0，上：0，确定。 弹出“应用属性”窗口，选“保存属性，供以后具有相同标题的窗口使用”，确定。  以后只要创建标题是xyz的控制台窗口，都会显示在桌面的左上角。