الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Notepad's Controller with C Languge

بدأه The Hidden Ghost في 11 سبتمبر 2012 · 12 رد · 1,358 مشاهدة · في مشاريع ومسابقات القسم
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

NogSa.png

بسم الله الرحمن الرحيم ،،، smile.gifsmile.gifsmile.gif

أضع بين أناملكم الأبية و بين أيديكم النقية cool.gif هذا البرنامج الذي هو بمثابة قفزة نوعية للبشرية على مر العصور ROFL.gif

والذي يعتبر هدفا ساميا تتهاتف عليه الدول و الإمبراطوريات ( الدول = المبتدئين أولهم أنا ، الإمبراطوريات = الخبراك أمثالكمhappy.gif)

أظن أنني بالغت كثيرا في وصف البرنامج . لذا فإنني سأفصح عن ماهية البرنامج الآن laugh.gif

من خلال العنوان يتضح للقارئ أن البرنامج يعمل كمتحكم في برنامج النوتباد إيديتور ، نعم يمكنك الآن أن تتحكم فيه وها هو ذا الدليل:

Notepad's Controller.C


#include "func.c"

void starting();
int KeyPressed()
{
AllocConsole();
HWND Notepad1,Notepad2;
char keypressed;
Notepad1 = FindWindow(NULL,"Sans titre - Bloc-notes");
Notepad2 = FindWindow(NULL,"Untitiled - Notepad");
while(1)
{
keypressed++;
if(GetAsyncKeyState(keypressed))
{
switch(keypressed){
case 72: // H
ShowWindow(Notepad1,SW_HIDE);
ShowWindow(Notepad2,SW_HIDE);
break;
case VK_F1: // F1
ShowWindow(Notepad1,SW_MINIMIZE);
ShowWindow(Notepad2,SW_MINIMIZE);
break;
case VK_F2: // F2
ShowWindow(Notepad1,SW_MAXIMIZE);
ShowWindow(Notepad2,SW_MAXIMIZE);
break;
case 83: // S
ShowWindow(Notepad1,SW_SHOW);
ShowWindow(Notepad2,SW_SHOW);
break;
case 65: // A
AboutMe();
starting();
break;
case 69: // E
EXIT();
break;
}
}

}
}
int main()
{
starting();
}
void starting()
{
ClearScreen();
SetTitle("Notepad's Windows Controller");
CursorPosition(28,0);
ColoringText("_________________________________________________",4);
CursorPosition(30,2);
ColoringText("Notepad's Windows Controller By Hamza Qdider",2);
CursorPosition(28,3);
ColoringText("_________________________________________________",4);
ApplicationOptions();
KeyPressed();
starting();
}

func.C


#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <stdlib.h>
void ColoringText(char text[100],int color)
{
HANDLE window;
window=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(window,color);
printf("%s",text);
}
void Pause(){system("pause");}
void CursorPosition(int x,int y)
{
HANDLE CURS;
CURS=GetStdHandle(STD_OUTPUT_HANDLE);
COORD cursor;
cursor.X=x;cursor.Y=y;SetConsoleCursorPosition(CURS,cursor);
}
void SetTitle(char title[100])
{
SetConsoleTitle(title);
}
void ApplicationOptions()
{
CursorPosition(2,6);
ColoringText("NB: Firstly, Make sure that you are executing the Notepad Editor ...",4);
CursorPosition(2,9);
ColoringText("H => Hiding Notepad's Editor Window",6);
CursorPosition(2,11);
ColoringText("F1 => Minimizing Notepad's Editor Window",6);
CursorPosition(2,13);
ColoringText("F2 => Maximizing Notepad's Editor Window",6);
CursorPosition(2,15);
ColoringText("S => Showing Notepad's Editor Window",6);
CursorPosition(2,17);
ColoringText("A => About Programmer !!!",6);
CursorPosition(2,19);
ColoringText("E => Exit",6);
CursorPosition(20,22);
ColoringText("Press A Key ... ",7);

}
void EXIT(){exit(0);}
void ClearScreen(){system("cls");}
void AboutMe()
{
ClearScreen();
CursorPosition(20,13);
ColoringText(" Notepad's Windows Controller ",1);
CursorPosition(20,14);
ColoringText(" Programmed By : ",3);
CursorPosition(40,14);
ColoringText("Hamza Qdider",9);
CursorPosition(10,19);
Pause();
}

أنتظر تعليقاتكم على الكود البدائي 036.gif بفارغ الصبر والإصرار و الترصد 049.gif

Notepad's Controller.zip

cOfHo.png

rS3eY.png
#2

نسيت الشرح هههههههههههه ،،،

السلام عليكم ورحمة الله تعالى وبركاته .

إن الحمد لله نحمده ونستعينه ونستغفره ونعوذ بالله من شرور أنفسنا ومن سيئات

أعمالنا ، من يهده الله فلا مضل له ومن يضلل فلا هادي له وأشهد أن لا

إله إلا الله وحده لا شريك له وأشهد أن محمد عبده ورسوله صلى الله عليه

وعلى آله وصحبه وسلم.

يدور دولاب الموضوع حول :

- كيفية التحكم في نافذة برنامج النوتباد (Notepad or Bloc-notes).

- التحكم في أزرار لوحة المفاتيح ...

988731387.png

إن طريقة التحكم في برنامج النوتباد طريقة سهلة وبسيطة، إذ لا تقتصر سوى

على إسم نافذة النوتباد في التاسك بار ثم البدأ في الهيمنة عليه كليا .

أما بالنسبة للبرنامج فقد قسمته إلى قسمين ، القسم الأول هو تعريف الدوال في

ملف مستقل ثم بعد ذلك استدعاء هذا الملف في البرنامج الرئيسي

بواسطة الموجه include# .

هذا من جهة ، من جهة أخرى أحببت أن أشرح مبدأ البرنامج بعجالة :

من خلال هذا التطبيق تستطيع عزيزي المستخدم التحكم في إخفاء برنامج النوتباد

عن طريق (SW_HIDE) أو إظهاره عن طريق (SW_SHOW) أو تكبير النافذة عن طريق

(SW_MAXIMIZE) أو تصغيرها عن طريق (SW_MINIMIZE).

148476974.png

452589598.png

تم تعديل هذه المشاركة بواسطة Hamza+C+ASM في 11 سبتمبر 2012 في 17:33

rS3eY.png
#3

تنظيم البرنامج رائع ... happy.gif

والتنسيق جميل ...smile.gif

والفكرة شريرة... laugh.gif

والكاتب مبدع ..wink.gif

بارك الله فيك يا حمزة ... بالتوفيق ..وإلى الأمام ..

لكن أرى أنه يجب أن يكون عنوان النافذة معروفاً للبرنامج .. كما أن الخيارات محدودة ...

ولا تنسى مثلاً أن الويندوز العربي يكتب بدون عنوان .. وليس untitled

بالتوفيق

ملاحظة بسيطة : لا يوجد كلمة انكليزية Firstly استخدم First إنها تكفي laugh.gif

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 11 سبتمبر 2012 في 17:44

#4
مصطفى 36a2 كتب:

تنظيم البرنامج رائع ... happy.gif // smile.gif

والتنسيق جميل ...smile.gif // laugh.gif

والفكرة شريرة... laugh.gif // أفكارك أكثر شرا هههههblush.gif

والكاتب مبدع ..wink.gif // لا أظن ذلك sad.gif

بارك الله فيك يا حمزة ... بالتوفيق ..وإلى الأمام .. // شكرا لك

لكن أرى أنه يجب أن يكون عنوان النافذة معروفاً للبرنامج .. كما أن الخيارات محدودة ... ننتظر المزيد . بالتوفيقlaugh.gif

نعم العنوان معروف أخي مصطفى smile.gif + هل لديك خيارات أخرى حبيبي ؟

ملاحظة بسيطة : لا يوجد كلمة انكليزية Firstly استخدم First إنها تكفي laugh.gif // wacko.gif أظن أنها موجودة و الله أعلم wacko.gif

s67QZ.png

NygQL.png

rS3eY.png
#5

استعمل اسم كلاس النافذة بدل عنوانها

FindWindow("Notepad", NULL);

اسم الكلاس لا يتغير

[سبحان الله و بحمده, سبحان الله العظيم]

#6
اقتباس
أظن أنها موجودة و الله أعلم

نعم تأكدت من ذلك الآن ...

أصلاً أنا لغتي صينية وليست إنكليزيةlaugh.giflaugh.gif ... انس الموضوع ..

خيارات إضافية ...ألا يمكن التحكم بالقوائم الداخلية للملف ؟؟مثل new,open,print وما إلى ذلك

__________________________

بالنسبة لفكرة ياسين ...

كيف سنميز بين أكثر من نافذة مفتوحة معاً في نفس الوقت ... هل ستحدث التغيرات عليها جميعا.؟

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 11 سبتمبر 2012 في 18:12

#7

أخي مصطفى أنت تعلم أن لكل نافذة مقبض Handle ، لكن المشكلة تكمن في كيفية معرفة اسم الكلاس . شخصيا لا أعرفه huh.gif

rS3eY.png
#8

بالنسبة لاسم الكلاس, انا استعملت الاداة WindowSpy لمعرفته

اكثر من نافذة مفتوحة, لا اظن ان التغييرات ستحدث فيها كلها

لان الناتج مقبض خاص بنافذة واحدة, يمكن لاخر نافذة مفتوحة لها نفس نوع الكلاس المعطاة

[سبحان الله و بحمده, سبحان الله العظيم]

#9

هذا ما قلته تماما أخي ياسين ، فلكل نافذة مقبض خاص بها smile.gif + هل يمكنك أن ترفع لنا البرنامج الذي استخدمته من فضلك ؟ laugh.gif

rS3eY.png
#10

Window Spy

أو

http://www.mediafire.com/?obdvq21hafdui62

تم تعديل هذه المشاركة بواسطة khatibe_30 في 11 سبتمبر 2012 في 19:01

[سبحان الله و بحمده, سبحان الله العظيم]

#11

شكرا على تلبية الطلب أخي ياسين smile.gif


#include <stdio.h>
void Thank_You(){
for(int i = 0; i<=123456789;i++)
printf("Thanks Yassin for accepting my request !!!");
}
int main(){
Thanks_You();
return 0;
}

rS3eY.png
#12

لمن استعصى عليه التحميل laugh.gif :

window spy.rar

rS3eY.png
#13

عفوا يا عزيزي :happy:

[سبحان الله و بحمده, سبحان الله العظيم]

مواضيع مشابهة