PDA

View Full Version : مبتدی: آیا برنامه Notepad روی تمام پنجره ها است؟



daniyaltjm
دوشنبه 01 اردیبهشت 1393, 18:16 عصر
سلام , کد برنامه ای رو میوام که با استفاده از توابع API و یک تایمر چک کنه که در این لحظه آیا برنامه Notepad روی تمام پنجره ها است اگر بود در یک لیبل بنویسد هست و اگه نبود بنویسد نیست؟

رامین مرادی
دوشنبه 01 اردیبهشت 1393, 20:03 عصر
منظورتون چیه دقیقا . ؟؟؟؟:متفکر:
یعنی الان پنجره اکتیو نوت پد هست یا نه؟؟؟؟:متفکر:

daniyaltjm
دوشنبه 01 اردیبهشت 1393, 22:28 عصر
منظورتون چیه دقیقا . ؟؟؟؟:متفکر:
یعنی الان پنجره اکتیو نوت پد هست یا نه؟؟؟؟:متفکر:

بله دقیقا یعنی با تایمر هر 100 میلی ثانیه چک کنه که اگه پنجره فعال بود توی لیبل فرممون بنویسه فعاله و اگه نبود بنویسه فعال نیست , فکر کنم باید هندل پنجره رو بگیریم و با پنجره فعال چک کنیم اگه راهنمایی کنید ممنون میشم.

daniyaltjm
سه شنبه 02 اردیبهشت 1393, 13:08 عصر
کسی نیست کمک کنه؟!

daniyaltjm
سه شنبه 02 اردیبهشت 1393, 14:14 عصر
دوستان خودم برنامو نوشتم فقط نمیدونم چرا با تابع GetForegroundWindow جواب میده ولی با تابع GetActiveWindow جواب نمیده !!! کسی نمیدونه چرا؟


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;


namespace WindowsFormsApplication1
{
public partial class FormMain : Form
{
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string LpClassName, string LpWindowName);
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();

public FormMain()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
IntPtr find = FindWindow("Notepad", null);
IntPtr act = GetForegroundWindow();

if(find == act )
{
label1.Text = "نوت پد روی تمام پنجره ها است";
}
else
{
label1.Text ="نوت پد روی تمام پنجره ها نیست";

}
}
}
}