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

فائدة: شغل نافذة دوس من خلال فيجوال بيسك.

مغلق
بدأه Basrah في 19 أبريل 2003 · 3 رد · 631 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

هل فكرت يوماً بتشغيل نافذة MS-DOS من خلال فيجوال بيسك؟ إن كان جوابك لا فانسخ الكود التالي في فيجوال بيسك.

البرنامج المرفق يشغل نافذة دوس و يطلب منك أدخال نص ثم يخرج النص لك في نفس النافذة.

أترككم مع الشيفرة التالية التي يجب أن تضعها في المديول ولا تحتاج أن تنشئ نافذة للبرنامج :

'To use this example:

'Add a BAS Module and Remove the Form

'Put the code into the BAS Module

'Make sure the Project's Startup Object is set to 'Sub Main'

'(you can change this by going to Project->Project Properties->

'General Tab->Startup Object)

Option Explicit

Private Declare Function AllocConsole Lib "kernel32" () As Long

Private Declare Function FreeConsole Lib "kernel32" () As Long

Private Declare Function GetStdHandle Lib "kernel32" _

(ByVal nStdHandle As Long) As Long

Private Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" _

(ByVal hConsoleInput As Long, ByVal lpBuffer As String, ByVal _

nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long

Private Declare Function SetConsoleTextAttribute Lib "kernel32" _

(ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long

Private Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" _

(ByVal lpConsoleTitle As String) As Long

Private Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" _

(ByVal hConsoleOutput As Long, ByVal lpBuffer As Any, ByVal nNumberOfCharsToWrite As _

Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long

Private Const STD_INPUT_HANDLE = -10&

Private Const STD_OUTPUT_HANDLE = -11&

Private Const STD_ERROR_HANDLE = -12&

Private Const FOREGROUND_RED = &H4

Private Const FOREGROUND_GREEN = &H2

Private Const FOREGROUND_BLUE = &H1

Private Const FOREGROUND_INTENSITY = &H8

Private Const BACKGROUND_RED = &H40

Private Const BACKGROUND_GREEN = &H20

Private Const BACKGROUND_BLUE = &H10

Private Const BACKGROUND_INTENSITY = &H80

Private Const ENABLE_LINE_INPUT = &H2

Private Const ENABLE_ECHO_INPUT = &H4

Private Const ENABLE_MOUSE_INPUT = &H10

Private Const ENABLE_PROCESSED_INPUT = &H1

Private Const ENABLE_WINDOW_INPUT = &H8

Private Const ENABLE_PROCESSED_OUTPUT = &H1

Private Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2

Private hCmdIn As Long

Private hCmdOut As Long

Private hCmdError As Long

Sub Main()

Dim CmdIn As String * 256

Dim CmdOUT As String

'Open New Console Window

AllocConsole

'Set te Console Title

SetConsoleTitle "My Cmd Console"

'Get The Console Handler

hCmdIn = GetStdHandle(STD_INPUT_HANDLE)

hCmdOut = GetStdHandle(STD_OUTPUT_HANDLE)

hCmdError = GetStdHandle(STD_ERROR_HANDLE)

'Set The Console Color Attribute

SetConsoleTextAttribute hCmdOut, FOREGROUND_GREEN Or FOREGROUND_INTENSITY

CmdOUT = "Command Line OutPut" & vbCrLf

'Write The Output on CommandLine Console

WriteConsole hCmdOut, CmdOUT, Len(CmdOUT), vbNull, vbNull

CmdOUT = "Keyb Input: "

'Write The Output on CommandLine Console

WriteConsole hCmdOut, CmdOUT, Len(CmdOUT), vbNull, vbNull

'Read The Input on CommandLine Console

Call ReadConsole(hCmdIn, CmdIn, Len(CmdIn), vbNull, vbNull)

CmdOUT = "You Are Type: " & Left$(CmdIn, InStr(CmdIn, Chr$(0)) - 3) & vbCrLf

'Write The Output on CommandLine Console

WriteConsole hCmdOut, CmdOUT, Len(CmdOUT), vbNull, vbNull

'Read The Input on CommandLine Console

Call ReadConsole(hCmdIn, CmdIn, Len(CmdIn), vbNull, vbNull)

'Close Console Window

FreeConsole

End Sub

#2

تسلم أخوي على الجهود الرائعة .

أخوك : سعد (f)

#3

الف شكر أخوي .

#4

(f)

هذا الموضوع مغلق.

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