Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Problemi con l'inserimento di un processo in un form
giovedì 09 settembre 2010 - 16.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
Windows 7
|
Visual Studio 2008
stealth23
Profilo
| Newbie
1
messaggi | Data Invio:
gio 9 set 2010 - 16:47
Ciao a tutti,
ho creato un'applicazione che lancia un processo e poi, grazie ad una checBox che richiama la funzione FindWindowByCaption(), la inserisce all'interno del form.Inoltre ho anche un WebBrowser che gestisce il lato web. Il mio obiettivo è avere un'applicazione GIS lato desktop e lato web contemporaneamente. Ecco il codice:
namespace lol
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll")]
internal static extern void MoveWindow(IntPtr handle, int x, int y, int width, int height, bool redraw);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
public Process p;
public ProcessStartInfo PSI;
private void button1_Click(object sender, EventArgs e)
{
p = new Process();
PSI = new ProcessStartInfo(textBox3.Text);
p = Process.Start(PSI);
}
private void aa(object sender, EventArgs e)
{
//timer1.Start();
IntPtr a = FindWindowByCaption(IntPtr.Zero, textBox2.Text);
SetParent(a, tabPage1.Handle);
MoveWindow(a, 0, 0, 1258, 640, true);
if (a.ToInt32() != 0) timer1.Stop();
}
private void button5_Click(object sender, EventArgs e)
{
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate(textBox1.Text);
}
//private void check(object sender, FormClosingEventArgs e)
//{
//}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
timer1.Start();
}
Il codice funziona ma, durante l'esecuzione, appena spunto la checBox per inserire il processo nel form non posso più cliccare sulle funzioni del programma (il programma è QGIS)!!!se passo di sopra con il mouse le evidenzia ma non mi permette di utilizzarle. Questo accade solo con questo programma mentre qualsiasi altro processo inserito all'interno non dà alcun tipo di problema. Premetto di non essere un esperto di C#.
Grazie in anticipo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !