Evgenios1 Δημοσ. 11 Φεβρουαρίου 2010 Δημοσ. 11 Φεβρουαρίου 2010 Πως θα παρω το περιεχομενο ενος EditBox απο ενα αλλο προγραμμα? Μεχρι τωρα δοκιμασα με FindWindow(EX/W) αλλα δεν βρισκω handle απο το editbox >[color="Silver"]using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Diagnostics;[/color] namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var proc = Process.Start("calc.exe"); richTextBox1.WriteLine("calc main handle:"+proc.Handle); var ptr = FindWindowEx(proc.Handle, IntPtr.Zero, "Edit","0."); richTextBox1.WriteLine("editbox handle:"+ ptr); //Message mesg = new Message(); //GetMessage(ref mesg, proc.Handle, 0, 0); //richTextBox1.WriteLine("Message:" + mesg); } [DllImport("user32.dll")] private static extern IntPtr FindWindowEx(IntPtr phWnd, IntPtr chWnd, string clsName, string wndTitle); [DllImport("user32.dll")] private static extern int GetMessage(ref Message m, IntPtr hWnd, uint fin, uint fix); } public static class ExRTB { public static void WriteLine(this RichTextBox rtb, object line) { rtb.Text += line.ToString() + "\n"; } } } Κανα παραδειγμα σε .net(c#) ή Win32(c++)
bxenos Δημοσ. 11 Φεβρουαρίου 2010 Δημοσ. 11 Φεβρουαρίου 2010 Σε Win SDK: EnumWindows,FindWindowsEx και Hooks. Υπάρχει και ένα προγραμματάκι με όνομα SPY που είναι στα παραδείγματα της Microsoft και δίνεται μαζί με το Dev Studio (αλλά όχι το express). Πρέπει να έχουν ακόμα το link που το κατεβάσεις στο site της microsoft.
Evgenios1 Δημοσ. 12 Φεβρουαρίου 2010 Μέλος Δημοσ. 12 Φεβρουαρίου 2010 Με ενα προγραμματακι τυπου spy++* ειδα τα cls names. Το θεμα ειναι οτι δε περνω το handle απο το control (το handle απο το app το περνω ). Τεσπα θα το googlarw ακομα παραπανω για τα FindWindowW/EX. Κατι αλλο. Μπορω να περνω τα message απο ενα προγραμμα? *Δεν θυμομουνα το ονομα του, στο vs9 δεν το εχει .
virxen75 Δημοσ. 12 Φεβρουαρίου 2010 Δημοσ. 12 Φεβρουαρίου 2010 δες και εδώ http://www.eggheadcafe.com/software/aspnet/30490840/capturing-text-in-an-edit.aspx
Steven1985 Δημοσ. 19 Φεβρουαρίου 2010 Δημοσ. 19 Φεβρουαρίου 2010 Κατι αλλο. Μπορω να περνω τα message απο ενα προγραμμα? *Δεν θυμομουνα το ονομα του, στο vs9 δεν το εχει . Δεν έχω καταλάβει πώς ακριβώς το εννοείς αυτό, αλλά κάποια στιγμή είχα υλοποιήσει αποστολή μηνυμάτων μεταξύ διαφορετικών προγραμμάτων(WindowMessaging). Αυτό μπορείς να το πετύχεις φτιάχνοντας μια κλάση WindowMessaging που κληρονωμεί από την System.Windows.Forms.NativeWindow και υλοποιεί μια συνάρτηση >public virtual void SendMessage(string str, string destinationTitle) είτε μία συνάρτηση >public virtual void SendMessage(byte[] data, string destinationTitle) . Από την άλλη μεριά υπάρχει ένας listener >MessageListener.StringReceived += new WindowMessaging.StringReceiveHandler(MessageListener_StringReceived); Αν ψάξεις λίγο στο google θα βρεις και ολοκληρωμένο παράδειγμα.
Evgenios1 Δημοσ. 19 Φεβρουαρίου 2010 Μέλος Δημοσ. 19 Φεβρουαρίου 2010 Εστω οτι εχω αυτο εδω το προγραμμα >using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace oeo { public partial class Form1 : Form { public Form1() { InitializeComponent(); var t = new Timer { Interval = 2000, Enabled = true }; var r = new Random(); t.Tick += delegate { for (int i = 0; i < r.Next(10,15); i++) { textBox1.Text += (char)r.Next((int)'a', (int)'z'); } }; } } } Θελω με ενα αλλο προγραμμα να παρακολουθω το συγκεκριμενο editbox, μεσου GetMessage(..) edit: Θα μελετησω αυτο εδω
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.