PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konsolen Position ?



MsGarry's Mod
12.02.2014, 16:28
Hallo Leute ich habe eine frage, wo bekomme ich die Position der Konsole raus in C#?

Danke :D

monky2k6
12.02.2014, 17:08
Ähm... was?
Also du meinst die Konsolenanwendung aka cmd.exe?

Ich weiß zwar nicht wozu du das brauchst, aber erst einmal musst du ja das vorhandene CMD-Fenster finden (sofern eines existiert):
http://blog.bigbasti.com/c-alle-sichtbaren-prozesse-fenster-auflisten/
http://pinvoke.net/default.aspx/user32/FindWindow.html

Danach kannst du dann versuchen das Rectangle des Processes / des WinForm zu bekommen und dann hast du auch eigentlich schon den absoluten Punkt in Pixeln wo die linke obere Ecke des Fensters sitzt.

----

Editör!
So, hab mich mal gerade rangesetzt, mit folgendem Code bekommst du die Position des CMD-Fensters heraus:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace Find_CMD
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}

[DllImport("user32.dll")]
public static extern bool GetWindowRect(IntPtr hwnd, ref RECT rectangle);

private void button_FindCMD_Click(object sender, EventArgs e)
{
var cmd = Process.GetProcessesByName("cmd").First();
if (cmd != null)
{
var cmdRectangle = new RECT();
if (GetWindowRect(cmd.MainWindowHandle, ref cmdRectangle))
{
textBox_X.Text = cmdRectangle.Left.ToString();
textBox_Y.Text = cmdRectangle.Top.ToString();
}
}
}

public struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}
}
}


http://pictures.monky-town.de/FindCMDPosition.png

MsGarry's Mod
12.02.2014, 17:48
ohh sorry ich meine die Console von meiner Consolen Anwendung, :D aber danke für Info.

monky2k6
12.02.2014, 17:59
Dann sollte der selbe Code eigentlich auch funktionieren. Wenn du eine Konsolenanwendung startest wird das auch in einer Instanz von CMD ausgeführt. Er findet sich dann selber und gibt den eigenen WindowHandle um dann die Position zu bekommen.

MsGarry's Mod
12.02.2014, 20:38
ok danke ,ich Probierers aus :D