View Full Version : سوال: چگونه بفهمیم چه برنامه ای را کاربر اجرا می کند ؟
aradrobo
پنج شنبه 25 آبان 1391, 20:06 عصر
می خواهم برنامه ای بسازم ، که اگر کاربر برنامه ای را باز کرد ، در یک فایل txt نمایش دهد که به عنوان مثال برنامه یاهو مسنجر در ساعت 7:30 ب ظ در تاریخ 25/8/91 باز شد .
این اطلاعات زمانی درج می شود که کاربر در همان زمان این برنامه را باز کرد .
یعنی هر برنامه ای که اجرا شد ، نام برنامه به همراه زمان اجرایش نمایش داده شود .
ممنونم . لطفاً کمکم کنید
zarifcomputer
پنج شنبه 25 آبان 1391, 20:57 عصر
می خواهم برنامه ای بسازم ، که اگر کاربر برنامه ای را باز کرد ، در یک فایل txt نمایش دهد که به عنوان مثال برنامه یاهو مسنجر در ساعت 7:30 ب ظ در تاریخ 25/8/91 باز شد .
این اطلاعات زمانی درج می شود که کاربر در همان زمان این برنامه را باز کرد .
یعنی هر برنامه ای که اجرا شد ، نام برنامه به همراه زمان اجرایش نمایش داده شود .
ممنونم . لطفاً کمکم کنید
سلام
شما یا باید یک سرویس بنویسید که با بالا آمدن ویندوز اجرا شود و یا یک برنامه بنویسید و آن را در Startup ویندوز قرار بدید
هر نرم افزار که در ویندوز اجرا میشود یک هندل دارد . در برنامه ای که مینویسید توسط همین هندل میتوانید به اطلاعات دیگر این نرم افزار دسترسی پیدا کنید . در اینترنت جستجو کنید که چگونه هندل برنامه های اجرا شده را بدست بیاورید . بقیه اش هم که کاری نداره
samadblaj
پنج شنبه 25 آبان 1391, 21:26 عصر
استفاده از prosses روش مناسبی هست.
aradrobo
شنبه 27 آبان 1391, 15:29 عصر
استفاده از prosses روش مناسبی هست.
خوب یک نمونه بنویسید تا بدونم چگونه انجام می شود ؟
aradrobo
پنج شنبه 09 آذر 1391, 14:55 عصر
یعنی واقعاً کسی نمی داند ؟ لطفاً اگر چیزی در این زمینه می دانید راهنمایی فرمایید.
aradrobo
چهارشنبه 13 دی 1391, 16:53 عصر
کسی اطلاعاتی ندارد ؟
مهرداد صفا
چهارشنبه 13 دی 1391, 20:36 عصر
با سلام
ابتدا id همه process های موجود را گرفته در آرایه ای نگهدارید.
درون یکtimer همه process ها را چک کنید و هر process که id آنن درون آرایه نبود، را به عنوان process هایی که جدیدا شروع به کار کردن انتخاب کنید.
در انتها آرایه را مجددا آپدیت کنید:
//in the name of god
//صل الله علی محمد و آله
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.Diagnostics;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int[] IDS = (from Process process in Process.GetProcesses() select process.Id ).ToArray();
public Form1()
{
InitializeComponent();
timer1.Interval = 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
var NewProcesses=from Process process in Process.GetProcesses() where !(IDS.Contains(process.Id)) select process;
foreach (Process process in NewProcesses)
{
textBox1.Text += string.Format("New process started:\n name={0} main window title={1} at:{2}"
, process.ProcessName, process.MainWindowTitle, DateTime.Now.ToString("s"));
}
IDS = (from process in Process.GetProcesses() select process.Id).ToArray();
}
}
}
بدیهیست که مطالب فوق صرفا جهت آموزش بوده و امیدوارم که درست استفاده شوند.
aradrobo
چهارشنبه 13 دی 1391, 22:24 عصر
خیلی ممنون دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.