السلام عليكم
كيف لي أن أفعل مثل هذا الموضوع في سي شارب
http://www.arabteam2...howtopic=248026
ولكن بدلاً من نص النافذة أريد مسارها
أو أريد الحصول على مسار النافذة عند فتها
وشكراً
السلام عليكم
كيف لي أن أفعل مثل هذا الموضوع في سي شارب
http://www.arabteam2...howtopic=248026
ولكن بدلاً من نص النافذة أريد مسارها
أو أريد الحصول على مسار النافذة عند فتها
وشكراً
Be the change you want to see in the world
لم افهم السؤال جيداً ،،
كيف ان تعرف مسار الشاشة؟!
يمكن انك تقصد مسار البرنامج
Application.StartupPath
هل هذا ما تريده؟
السلام عليكم
أي شاشة تقصد عليها أخي
أنا أريد معرفة مسارات النوافذ النشطة في ويندوز
مثلاً أنا قمت بفتح مجلد الويندوز في قرص السي ومجلد قرص D
أريد الحصول على أنهما مفتوحان عن طريق برنامجي
أرجو أن أكون قد أوضحت الفكرة
Be the change you want to see in the world
هذا أول إجابة لي بعد عودتي يعني بعدني (طازه) يعني بدكم تتحملوا أخطائي وجهلي بستخدام خيارات المنتدى الجديد.
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 EnumWindowsExplorerOpenWindows
{
public partial class Form1 : Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.ListBox listBox1;
private System.ComponentModel.IContainer components = null;
private delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
[DllImport("user32", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int GetWindowText(IntPtr hWnd, [Out, MarshalAs(UnmanagedType.LPTStr)]StringBuilder lpString, int nMaxCount);
[DllImport("user32", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int GetClassName(IntPtr hWnd, [Out, MarshalAs(UnmanagedType.LPTStr)]StringBuilder lpClassName, int nMaxCount);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool EnumWindows(EnumWindowsProc callback, IntPtr extraData);
const string WINDOWS_EXPLORER_CLASS_NAME = "CabinetWClass";
public Form1()
{
InitializeComponent();
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(454, 430);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(13, 13);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(543, 329);
this.listBox1.TabIndex = 1;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(568, 479);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process[] Processes = System.Diagnostics.Process.GetProcessesByName("explorer");
foreach (System.Diagnostics.Process Process in Processes)
{
StringBuilder lpString = new StringBuilder(1024);
int CharactersLength = GetWindowText(Process.MainWindowHandle, lpString, 1024);
EnumWindows(EnumWindowsProc_CallBack, IntPtr.Zero);
listBox1.Items.Add(lpString.ToString());
}
}
private bool EnumWindowsProc_CallBack(IntPtr hWnd, IntPtr lParam)
{
StringBuilder lpClassName = new StringBuilder(1024);
int CharactersLength = GetClassName(hWnd, lpClassName, 1024);
if (CharactersLength > 0 && WINDOWS_EXPLORER_CLASS_NAME.Equals(lpClassName.ToString(), StringComparison.OrdinalIgnoreCase))
{
StringBuilder lpString = new StringBuilder(1024);
CharactersLength = GetWindowText(hWnd, lpString, 1024);
listBox1.Items.Add(lpString.ToString());
}
return true;
}
}
}إذا لم تستطيع أن تدرك ما بداخل الكود فسألني لعل الخطأ في ما كتبت أنا..
أتمنى من الله أن تكون هذه غايتك وإجابتك
تم تعديل هذه المشاركة بواسطة TarekNajem04 في 10 أكتوبر 2011 في 00:45
لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله
اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا
كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي
أخوكم في الله أبو المجد
هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)
التوقيت في دمشق:
<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">
السلام عليكم
شكراً لك أخي
بكفي إنك جاوبت وبس
جاري التجربة
بارك الله فيك
Be the change you want to see in the world
ولا يهمك أخي بإذن الله شغلتك بسيطة
خطوة واحد: Add reference
قم بإضافة مرجع لهذه المكتبة (C:\Windows\System32\shdocvw.dll)
ثم أضف كماند آخر إلى النافذة وأكتب هذا الكود في حدث الكليك:
SHDocVw.ShellWindows ShellWindows = new SHDocVw.ShellWindows();
foreach (SHDocVw.InternetExplorer IE in ShellWindows)
{
if (Path.GetFileNameWithoutExtension(IE.FullName).Equals("explorer", StringComparison.OrdinalIgnoreCase))
{
if (!String.IsNullOrWhiteSpace(IE.LocationURL))
{
Uri URL = new Uri(IE.LocationURL);
listBox1.Items.Add(URL.AbsolutePath);
}
}
}لتتعرف على جميع الخصائص لهذه المكتبة:MSDN Browser Extensions
تم تعديل هذه المشاركة بواسطة TarekNajem04 في 9 أكتوبر 2011 في 18:18
لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله
اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا
كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي
أخوكم في الله أبو المجد
هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)
التوقيت في دمشق:
<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">
السلام عليكم
أخي أولا شكراً لك
ثانياً لم تنجح إضافة الملف
C:\Windows\System32\shdocvw.dll
وماذا تقصد بـ
اقتباسثم أضف كماند آخر إلى النافذة وأكتب هذا الكود في حدث الكليك:
Be the change you want to see in the world
لإضافة الملف تكون على النحو التالي:
من القائمة project أضغط على الامر Add Reference وعند ظهور النافذة إذهب إلى الخيار (Browse) وفي خانة النص (File Name) قم بلصق مسار الملف ومن ثم إضغط على الأمر (الكماند الذي لم تعرفه) OK في هذه الحالة نكون قد أضفنا مرجع لهذه المكتبة لنستطيع أن نستخدم ما تحتويه من كود مكتوب مسبقاً.
إنتقل إلى تصميم النافذة وقم بإضافة كنترول جديد من النوع (Button) وبعد عملية أضافة الكنترول إضغط بزر الفأرة نقرتين لتفتح لك نافذة البرمجة الخاصة بالحدث كليك وهنا إلصق الكود المكتوب في الرد السابق
لا تتردد في السؤال إذا لم يكن هو الجواب المناسب
لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله
اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا
كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي
أخوكم في الله أبو المجد
هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)
التوقيت في دمشق:
<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">
السلام عليكم
أخي لقد قمت بهذه الخطوات
ولكن هناك مشكلة عند إظافة الملف
Be the change you want to see in the world
ياريت تكتب نوع الخطأ الذي يظهر عندك لمعرفة المشكلة.
في البداية تأكد من وجود الملف في المسار المحدد لديك وإن لم تجده قم بالبحث عنه.
أقرأ هذه المقالة عسى تفيدك في حل مشكلة الملف إذا كان معطوب.
لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله
اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا
كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي
أخوكم في الله أبو المجد
هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)
التوقيت في دمشق:
<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">
Be the change you want to see in the world
أخي الكريم المشكلة ليست في الطريقة لأنني قمت بتجربته على أنظمة ويندوز المتاحة لدي مثل XP SP2-3 و win7x23 و win7x64
لديك خطأ في نظام التشغيل إم أن تقوم بإعادة تنزيل (تسطيب) الإنترنت إكسبلورر أو الطامة الكبرى إعادة إصلاح نظام التشغيل.
ونأسف لعدم رايتك نتيجة ما تصنع في الوقت الحالي.
نلتقي بعد صيانة النظام لديكم
سأقوم بوضع بعض الروابط عسى تفيدك في إصلاح المسكلة في النظام
http://h10025.www1.hp.com/ewfrf/wc/document?lc=en&cc=us&dlc=en&product=435775&docname=c00229756
http://www.iefaq.info/index.php?action=artikel&cat=24&id=31&artlang=en
http://social.msdn.microsoft.com/Forums/en-CA/winformsdesigner/thread/5f14d33c-fc55-415e-816e-666e89b68a92الداعي لك بالتوفيق
أبو المجد
لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله
اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا
كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي
أخوكم في الله أبو المجد
هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)
التوقيت في دمشق:
<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">
السلام عليكم
شكراً لك أخي وبارك الله فيك
لقد حللت المشكلة قبل ردك الجميل هذا
وهذا المشروع للإفادة
وألف شكر لك
Be the change you want to see in the world
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…