Ein altes Thema dass ich ausgrabe, aber dennoch brauche ich mal einen Tipp zu den Wrappern.
Ich benutze z.B. SetShowToolbar als Befehl an das ontrol, aber wenn ich es aufrufe, habe ich trpotzdem die Steuerungsleiste da von wo aus der benutzer kopien speichern und drucken kann.
Wie kann ich das ausblenden / abschalten?
Gleiches gilt für das Kontextmenü. Das sollte auch zu verhindern seinooder der inhalt anzupassen.
Danke ihr zwei, ich schaus mir mal an 🙂
NACHTRAG:
Danke Dr4g0n, das isses 🙂
Hallo community,
ich bin auf der suche nach der möglichkeit farben auf dem bildschirm zu erkennen, nur habe ich keinen ahnhaltspunkt wie ich das bewerkstelligen könnte.
Also was ich im einzelnen möchte ist eine Koordinate angeben (z.B. x= 500 ; y=300) und dann herausbekommen welche farbe sich an dieser stelle des monitors befindet. dabei soll es egal sein ob nur der desktop oder ein programm an dieser stelle zu sehen ist.
Habe ich an dieser stelle z.B. ein Worddokument offen wo sich an genau dieser stelle ein roter buchstabe befindet sollte es "255,0,0" oder "ff0000" ausgeben.
Ich hoffe ich habe verständlich gemacht was ich möchte und hoffe auf ideen wie man diese sache angehen kann.
wenn ich es zu nem string mache ist es allerdings leer. Das was mich wundert ist ja das es anfangs ging, dann habe ich das auslesen erweitert und es ging nicht mehr. selbst nachdem ich es neu gemacht habe wie es vorher war. (Tabelle und spaltenname sind korrekt)
anfangs ging es ohne das umwandeln in einen string... 🙁
verwendetes Datenbanksystem: OleDB
Ich bin ganz am anfang eine datenbank auszulesen. leider scheitere ich dort schon. das auslesen funktionierte anfangs und nun aufeinmal nicht mehr beim eintragen des Objektes in einen string, wegen;
Der Typ "object" kann nicht implizit in "string" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;" + "data source = Datenbank_20.mdb";
connection.Open();
string strSqlCmd = "SELECT * FROM Betreute";
OleDbCommand command = new OleDbCommand(strSqlCmd, connection);
OleDbDataReader reader = command.ExecuteReader();
string inhalt = reader["Name"];
Wahrscheinlich ein ganzeifacher fehler (wenn man es weiß) aber ich verzweifle langsam dran.
Weiß jemand rat?
Super Danke.
hier die komplett Lösung für alle die es brauchen
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetWindowRect(IntPtr hWnd, out RECT rect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int X;
public int Y;
public int Width;
public int Height;
}
private void button1_Click(object sender, EventArgs e)
{
Process[] myProcesses;
myProcesses = Process.GetProcessesByName("ProzessXY");
RECT rect = new RECT();
if (GetWindowRect(myProcesses[0].MainWindowHandle, out rect))
{
MessageBox.Show(string.Format("x={0}, y={1}, width={2}, height={3}", rect.X, rect.Y, rect.Width, rect.Height));
}
}
Hallo,
kann mir jemand sagen wie man an die Fensterauflösung anderer prozesse kommt?
an den namen der fenster kommt man ja wie folgt
Process[] myProcesses;
myProcesses = Process.GetProcessesByName("prozessXY");
myProcesses[count].MainWindowTitle;
ich weiß nicht ob der ansatz korrekt ist, aber so komme ich ja an den namen des hauptfensters, nun brauche ich nur noch einen weg wie ich dessen auflösung/größe (width & height) herausfinden kann.
Danke für die hilfe.
ich hänge immernoch an dem problem. habe schon mehrere andere ansetze fürs tasten klicken und mausklicken im netz gefunden, allerdings haben die alle dasselbe problem sobald man sie kombiniert.
hat denn niemand eine lösung wie man das funktionierend hinbekommt? büdde 🙂
Hie rmal ein ganz verienfachter weg (der halt auch den fehler produziert die STRG taste nicht mehr zu lösen)
//Import mouse_event
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
//Import keybd_eventl
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void keybd_event(byte bVk, byte bScan, long dwFlags, long dwExtraInfo);
//Konstanten
public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;
public const int MOUSEEVENTF_RIGHTDOWN = 0x08;
public const int MOUSEEVENTF_RIGHTUP = 0x10;
//Codes
public const byte VK_CONTROL = 0x11;
public const int KEYEVENTF_EXTENDEDKEY = 0x01;
public const int KEYEVENTF_KEYUP = 0x02;
private void btn_start_Click(object sender, EventArgs e)
{
keybd_event(VK_CONTROL, 0x45, KEYEVENTF_EXTENDEDKEY, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
keybd_event(VK_CONTROL, 0x45, KEYEVENTF_KEYUP, 0);
}
Auch mit den mauspositionen geht das klicken nicht. wobei ich
MousePosition.X
MousePosition.Y
benutzt habe. ist irgendwie kürzer als deins (und deine curser funktion machte fehler)^^
Original von Borg
Mit den Compilermeldungen nicht klar zu kommen ist leicht wenn man den code größtenteils nicht versteht ^^
Da ist doch kaum Code. Ein paar Structs, ein paar Konstruktoren und Erzeugung und Füllen eines Arrays. Wenn du das nicht verstehst, solltest du eventuell noch mal an den Grundlagen feilen.
genau der teil ist nicht da sproblem, auch wenn ich weiß das ein auto aus blech, reifen und nem motor besteht kann ich ncoh lange keins bauen
Original von Borg
das tasten drücken greift garnicht
Möglicherweise muss man beim Mausklicken auch noch die aktuellen Koordinaten in dx und dy mitliefern. Um diese zu erhalten, kannst du GetCursorPos benutzen.
Ich versteh nicht wie mauskoordinaten das drücken von tastaturtasten beeinflussen soll?
Ich hab die methode so zusammen gesetzt das es nur tasten drückt. aber es kommt nirgendwo was an
Original von Borg
beim ausführen werden die maustasten lahm gelegt
Das bedeutet was?
Beim ersten test ließen sich die maustasten nicht mehr drücken, egal wo ich hinklickte, die maus reagierte nicht mehr. allerdings wechselt es seine funktionen jedesmal beim starten. einmal hat es eben kontextmenus geöffnet, also rechtsklick betätigt obwohl linksklick angegeben war, noch einen versuch später passierte wieder garnichts.