Π Π°Π·Π½ΠΎΠ΅

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅: Windows для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Windows для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΡƒΡΠ»Ρ‹ΡˆΠ°Π² ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°
Ρ„Ρ€Π°Π·Ρƒ «Π Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ консольная
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°?», Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΠΊΡ€Π΅ΠΆΠ΅Ρ‚Π°Ρ‚ΡŒ
Π·ΡƒΠ±Π°ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Π²Ρ‹ — Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Ρ‚ΠΎ
Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹
Π½Π΅ Π½Π°ΠΏΠΎΡ€ΠΎΡ‚ΡŒΡΡ Π½Π° этого Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ·
Π΄Π²ΡƒΡ… ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ…, Π° Ссли Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл
ΠΏΠΎΠ΄ΡΡƒΠ½ΡƒΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹
Ρ‚ΠΎΡ‚ Π½Π°ΡˆΡ‘Π» ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° свой вопрос.

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ скрываСтся Π·Π° этим
ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΌ словосочСтаниСм —
консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅,
ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, это Π² ΠΌΠΈΡ€Π΅ Windows Π½Π΅ Ρ‚ΠΎ,
Ρ‡Ρ‚ΠΎ ΠΊ Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ прикладываСтся, Π°
ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Word, Excel,
пасьянс «ΠšΠΎΡΡ‹Π½ΠΊΠ°» ΠΈ Internet Explorer —
это всё прилоТСния. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ
смыслС, Ρ‡Ρ‚ΠΎ Word отличаСтся ΠΎΡ‚
«Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚Π°», Π½ΠΎ ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ
ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ своСго
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ — это внСшний Π²ΠΈΠ΄
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Π² Windows ΠΎΠ½ Π±Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²ΡƒΡ…
Ρ‚ΠΈΠΏΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ — это графичСский,
Π²Ρ‚ΠΎΡ€ΠΎΠΉ — тСкстовый. ГрафичСский
интСрфСйс систСма подсовываСт Π²Π°ΠΌ
ΠΏΠΎΠ΄ нос Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ. ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹,
ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ красивыС Ρ€Π°Π·Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅
ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈ графичСский
интСрфСйс. Π”Π°ΠΆΠ΅ Word ΠΈ «Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚»,
Ρ…ΠΎΡ‚ΡŒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с тСкстом, Π½ΠΎ
интСрфСйс ΠΈΠΌΠ΅ΡŽΡ‚ графичСский. Π“Π΄Π΅ ΠΆΠ΅
Ρ‚ΠΎΠ³Π΄Π° Π² наши Π΄Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅
тСкстового интСрфСйса?

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкстовый
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (Π΅Π³ΠΎ
Π΅Ρ‰Ρ‘ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ интСрфСйсом ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ
строки — ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² этот Π°Π±Π·Π°Ρ† Π΄ΠΎ
ΠΊΠΎΠ½Ρ†Π°, Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ), Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ
Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ особСнно слоТных
дСйствий. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ
«ΠŸΡƒΡΠΊ», Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚
«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ», Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² строкС
появившСгося ΠΎΠΊΠ½Π° тСкст «command»
ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ».
Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄ собой ΠΎΠΊΠ½ΠΎ с сСрым
тСкстом Π½Π° Ρ‡Ρ‘Ρ€Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅ — ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ
Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π°
ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π­Ρ‚ΠΎ —
командная строка, ΠΎΠ΄Π½Π° ΠΈΠ· самых
старых Π²Π΅Ρ‰Π΅ΠΉ Π² соврСмСнном
ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ,
ΠΎΠΊΠΎΠ»ΠΎ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΈ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, мощности
ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², стоящих Ρƒ
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄ΠΎΠΌΠ° ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π΅
Ρ…Π²Π°Ρ‚Π°Π»ΠΎ Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠΉ
нСслоТной Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠ°ΠΊ ΠΎΠΊΠ½Π° (Ρ‡Ρ‚ΠΎ ΠΈ
Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Π°Ρ…!).
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ
ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
тСкста. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΠ»
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
ΠΊΠΎΠΌΠ°Π½Π΄Π° dir Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ· систСм
производства Microsoft, DOS, позволяла
ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ Π²
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°
ver ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»Π° Π²Π΅Ρ€ΡΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ
систСмы, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π»
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
запускал ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Ρ‚ΠΎΠΆΠ΅,
СстСствСнно, Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² тСкстовом
Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Командная строка, ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅,
ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»Π°ΡΡŒ Π² Windows Π΄ΠΎ сих ΠΏΠΎΡ€.
ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠ·
Π½Π΅Ρ‘, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π² справкС
Windows. А прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅,
Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ командная строка
ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΆΠΈΡ‚ΡŒ, нСсмотря Π½Π° свой
ΠΏΠΎΡ‡Ρ‚Π΅Π½Π½Ρ‹ΠΉ возраст? Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΅ΡΡ‚ΡŒ
мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅
Π½ΡƒΠΆΠ΅Π½ графичСский интСрфСйс —
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π²Π·Π»ΠΎΠΌΡƒ
ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΏΠΎΠ΄Π±ΠΈΡ€Π°ΡŽΡ‚
ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов, ΠΏΠΎΠΊΠ° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ
Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, Π½Π΅ откроСтся.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, командная строка
ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Ρ‚Π΅ΠΌ
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΡƒΡ‡ΠΈΠ»ΠΈ
Π½Π°Π·ΡƒΠ±ΠΎΠΊ Π΅Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ быстро
Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‚ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, — для Π½ΠΈΡ… ΠΎΠ½Π°
Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ быстрый способ
Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, Ρ‡Π΅ΠΌ
графичСский интСрфСйс.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ масса, ΠΈ ΠΎΠ½ΠΈ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ часто для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹
ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ дСйствия
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ
с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. А Ρ‚Π΅, Π² свою
ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» с
Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ BAT ΠΈΠ»ΠΈ CMD (Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»
называСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ), ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ
ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС Π·Π°Π»ΠΏΠΎΠΌ ΠΊΠ°ΠΊ
ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ — достаточно Π²
«ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅» Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ
ΠΏΠΎ этому Ρ„Π°ΠΉΠ»Ρƒ ΠΌΡ‹ΡˆΡŒΡŽ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·
ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΡƒΡŽΡ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
консольной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, просто
Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π² строкС
«ΠŸΡƒΡΠΊ» -> «Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ», Π½Π΅
Π·Π°Π±Ρ‹Π², ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ
(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, c:\Downloads\Rar.exe). Если Π²Π°ΠΌ
ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ для Π½Π΅Ρ‘
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡƒΠ³Π°Ρ‚ΡŒΡΡ.
НапримСр, Ссли для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ a Π½ΡƒΠΆΠ½ΠΎ
ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ b, Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ
строкС Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ «a b», Ρ‚ΠΎ
Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π·
ΠΏΡ€ΠΎΠ±Π΅Π».

Π”ΡƒΠΌΠ°ΡŽ, для Π½Π°Ρ‡Π°Π»Π° знакомства с
ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями этой
ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Π°ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚. А
Ссли Π½Π΅Ρ‚, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎ адрСсу [email protected],
Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

Π’Π°Π΄ΠΈΠΌ Π‘Π’ΠΠΠšΠ•Π’Π˜Π§

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — это… Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

ВСкстовый интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π°Π½Π³Π». Text user interface, TUI; Ρ‚Π°ΠΊΠΆΠ΅ Character User Interface, CUI) β€” систСма срСдств взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, основанная Π½Π° использовании тСкстового (Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ) Ρ€Π΅ΠΆΠΈΠΌΠ° дисплСя ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… устройств β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, командная строка. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовый интСрфСйс, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ тСкстового интСрфСйса

На ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ для Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ стандартныС устройства Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (stdin, stdout, stderr), хотя ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, сСтСвыС соСдинСния ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‹Π΅ дСйствия, доступныС Π² Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ ΠΈΡ… срСдС. Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… символов Π² stdout ΠΈ stderr ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию этих символов Π½Π° устройствС Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС консольная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ друТСствСнный интСрфСйс, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°ΡŽΡ‰ΠΈΠΉΡΡ ΠΊ графичСскому (см.: мСню (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°)).

НСкоторыС ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ лишь для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкстового интСрфСйса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСкстовыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, особСнно Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

РСализация тСкстового интСрфСйса

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, консольная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ обязана Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ самого взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡΡΡŒ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π½Π° стандартныС устройства, использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… интСрфСйсов. БобствСнно взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ осущСствляСт опСрационная систСма ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ тСкстового интСрфСйса, восходящСй ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ XX Π²Π΅ΠΊΠ°, являСтся Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ΅ устройство Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΈΠ· ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ АЦПУ (Ρ‚Π΅Π»Π΅Ρ‚Π°ΠΉΠΏΠ°). ВпослСдствии вмСсто АЦПУ стали ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Ρ‹, снабТённыС Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ быстро ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ устройствами снабТён ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ снабТён ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ соврСмСнный ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρ‹ ΠΈΠ· ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (ΠΈΠ½ΠΎΠ³Π΄Π° с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΡ‹ΡˆΠΈ) Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ консолью ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π’ соотвСтствии с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠ΅ΠΉ использования ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ АЦПУ для Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° соотвСтствСнно взаимодСйствиС Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ свСлось ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ ΠΈΠ· stdin ΠΈ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Π½Π° stdout. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, осущСствляя взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ посрСдством ΠΈΠ½Ρ‹Ρ… устройств, Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-эмуляторов Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€ΠΈΡΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΊΠ½ΠΎ с тСкстом Π² графичСском интСрфСйсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (тСкстовоС ΠΎΠΊΠ½ΠΎ).

Π’ 1970-Ρ… Π³ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ Π΄Π°ΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовый интСрфСйс β€” тСкстовыС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄Π΅ΠΌ. Π‘ распространСниСм ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ тСкстового Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, выполняСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся консольная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ssh (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ konsole ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ тСкстовый интСрфСйс посрСдством тСкстового ΠΎΠΊΠ½Π° Π² срСдС X Window System.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Π±Ρ‹Π» использован Π² ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, Π² частности (хотя Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ), IBM PC ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ памяти, связанной со Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, приводя ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ измСнСнию Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² срСдС Microsoft Windows. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Windows ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ тСкстовых ΠΎΠΊΠΎΠ½, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΈΠΌΠ΅Π²ΡˆΡƒΡŽΡΡ Π² DOS, Π² Ρ‚ΠΎΠΌ числС ΠΈ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ собствСнно Windows.

Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ консоли).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

  • Π›ΡŽΠ±Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡƒΡ‚Ρ‘ΠΌ чтСния stdin ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡƒΡ‚Ρ‘ΠΌ записи Π² stdout, ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ являСтся консольной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Однако, Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ Π±Π΅Π·ΠΎ всякого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ обрабатывая Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ².
  • ВСкстовыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡ‚ΡŒ Microsoft Windows.
  • Unix shell, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² этой срСдС.
  • Midnight Commander (UNIX), FAR Manager (Windows).
  • pppstatus, top, htop (UNIX).

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Wikimedia Foundation.
2010.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного прилоТСния Visual Studio

Β 

Для создания Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° C++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio 2010 Express с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ обновлСния SP1.

Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ ΠΏΠΎ созданию консольного прилоТСния Π‘++

Β 
Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ консольного прилоТСния запускаСм Microsoft Visual Studio 2010 Express ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² мСню Π€Π°ΠΉΠ»->Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ->ΠŸΡ€ΠΎΠ΅ΠΊΡ‚

Π’ появившСмся ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Win32 ΠΈ Π·Π°Π΄Π°Π΅ΠΌ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ OK.

Π’ появившСмся ΠΎΠΊΠ½Π΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π”Π°Π»Π΅Π΅.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅ΠΌ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π”Π°Π»Π΅Π΅.

Π’ Π»Π΅Π²ΠΎΠΉ части появившСгося ΠΎΠΊΠ½Π° отобраТаСтся ΠžΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ°ΠΏΠΊΠ΅ Π€Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° мСню Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ->Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ элСмСнт.

Π’ появившСмся ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π€Π°ΠΉΠ» C++ (.cpp), Π·Π°Π΄Π°Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.

Π’ появившСмся ΠΎΠΊΠ½Π΅ Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «Здравствуй, ΠΌΠΈΡ€!Β» ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ΠΈ

Для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°->ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ построСния Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° отобраТаСтся ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅: ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ 1.

Для запуска прилоТСния Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°->ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния русских символов Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ консоли ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ мСню Бвойства.

Π’ появившСмся ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ€ΡƒΡΡΠΊΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ для ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы 1251, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Lucida Console.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ русский ΡˆΡ€ΠΈΡ„Ρ‚.

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΊΠ½Π° консоли.

Β 
ПолСзно Π·Π½Π°Ρ‚ΡŒ: сочСтания клавиш для быстрых дСйствий Π² Microsoft Visual Studio

Назад: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Как ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния Π½Π°Β Python

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΏΠΎ созданию ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°Β Python

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡβ€Šβ€”β€ŠΡΡ‚ΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ запускаСтС Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΈΡ… ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Или, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π΄ΡƒΠΌΠ°Π»ΠΈ ΠΎΠ± ΠΈΡ… создании.

Но созданиС консольного ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡβ€Šβ€”β€ŠΡΡ‚ΠΎ ΠΎΠ΄Π½ΠΎ, Π° публикация Π΅Π³ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PyPI)β€Šβ€”β€ŠΡΠΎΠ²ΡΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π₯отя Π½ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Π½ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π·Π°ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расскаТу, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой CLI Π½Π° Python ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² PyPI.

Начало

НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ я занялся ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ уязвимостСй open-source ΠΊΠΎΠ΄Π° ΠΈ понял, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‡Ρƒ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² арсСналС инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ уязвимости Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Уязвимости open-source ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Ρ‚Π°ΠΊΠΈΡ… сайтах, ΠΊΠ°ΠΊ CVE, NVD, WhiteSource Vuln ΠΈ Ρ‚.Π΄.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ создадим ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ скрСйпСр для поиска ΠΈ просмотра уязвимостСй с сайта CVE, ΠΎΠ±Π΅Ρ€Π½Π΅ΠΌ Π΅Π³ΠΎ Π² простоС консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Π½Π° PyPI.

Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду. Π­Ρ‚ΠΎ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Для создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ python -m venv <path/name> (для Python 3) Π»ΠΈΠ±ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ virtualenvwrapper с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip install virtualenvwrapper ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду virtualenv Ρ‡Π΅Ρ€Π΅Π· mkvirtualenv -p /path/topython <path/name>.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ срСда настроСна ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

mkvirtualenv -p /usr/bin/python cvecli-env
mkdir cvecli && cd cvecli
mkdir cver && touch setup.py && touch README.md && touch cver/__init__.py && touch .gitignore
pip install requests beautifulsoup4 lxml twine click
pip freeze > requirements.txt

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ»ΠΎΡΡŒ, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² любом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ структуру:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-скрСйпСра

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ уязвимости Π½Π° сайтС CVE, потрСбуСтся Π²Π΅Π±-скрСйпСр. Он ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± уязвимостях. ΠœΡ‹ создаСм скрСйпСр Π² Requests ΠΈ BeautifulSoup. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ наш скрСйпСр:

1. ΠΈΡΠΊΠ°Ρ‚ΡŒ уязвимости;

2. ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± уязвимости ΠΏΠΎ Π΅Π΅ названию Π½Π° CVE.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡƒ cver ΠΈ создадим Π² Π½Π΅ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ cve_scraper. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ настройки:

import requests
from bs4 from BeautifulSoup

SEARCH_URL = "https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword="

CVE_URL = "https://cve.mitre.org/cgi-bin/cvename.cgi?name="

def get_html(url):
    request = requests.get(url)
    if request.status_code == 200:
        return request.content
    else:
        raise Exception("Bad request")


def search(s):
    pass

def lookup_cve(name):
    pass

Поиск уязвимостСй

Для поиска уязвимостСй Π½Π° CVE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ URL Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅: https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=<ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅_слово>. Π’Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ позволяСт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ список уязвимостСй, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову.

НапримСр, Ρ‡Π΅Ρ€Π΅Π· URL ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх уязвимостСй, связанных с Python:

Для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Developer Console) ΠΈ исслСдуСм DOM-элСмСнт с Π½ΡƒΠΆΠ½Ρ‹ΠΌ прСдставлСниСм. Для этого ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ мСсту Π½Π° страницС ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ β€œΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт” (inspect element) Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + F12.

Если Π²Ρ‹ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ ΠΊ DOM-структурС Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ прСдставлСны Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС ΠΏΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. Π’Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ запросто ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ:

def search(s):    
    
    url = f"{SEARCH_URL}{s}"
    results=[]    
    html = get_html(url)
    soup = BeautifulSoup(html, "lxml")
    result_rows = soup.select("#TableWithRules table tr")

    for row in result_rows: 
        _row = {}    
        name = row.select_one("td a")
        description = row.select_one("td:nth-child(2)")

        if all([name, description]):

            _row["name"] = name.text
            _row["url"] = name.get("href")
            _row["description"] = description.text

            results.append(_row)
    
    return results

Π’ ΠΊΠΎΠ΄Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹:

1. отправляСм запрос Π² SEARCH_URL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Requests ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ DOM-содСрТимоС;

2. ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ DOM-содСрТимоС Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ BeautifulSoup. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ DOM-элСмСнты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS-сСлСкторов, XPATH ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²;

3. выдСляСм всС tr ΠΏΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ #TableWithRules. ВыдСляСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ столбСц строки Π² качСствС названия, Π° Π² качСствС описания Π±Π΅Ρ€Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ тСкст.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± уязвимостях

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± уязвимости, Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π΅Π΅ CVE-ID ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠΎ этому адрСсу: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-ID.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ исслСдуйтС DOM-структуру.

Вакая структура Ρ‡ΡƒΡ‚ΡŒ слоТнСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² строках Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ отсутствуСт ID ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ класса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π΅ являСтся Π»ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Если Π΄Π°, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт бСрСтся Π² качСствС содСрТимого-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ отобраТаСтся Π² th, Π° Π΅Π³ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅β€Šβ€”β€ŠΠ² td.

def lookup_cve(name):
    url = f"{CVE_URL}{name}"
    html = get_html(url)
    soup = BeautifulSoup(html, "lxml")
    result_rows = soup.select("#GeneratedTable table tr")

subtitle = ""
    description = ""

raw_results = {}

for row in result_rows:
        head = row.select_one("th")
        if head:
           subtitle = head.text
        else:
            body = row.select_one("td")
            description = body.text.strip().strip("\n")
            raw_results[subtitle.lower()] = description   
            
    return raw_results

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! ΠœΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создали Π²Π΅Π±-скрСйпСр с CVE. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (search ΠΈ lookup_sve), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ уязвимости ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· CVE-ID.

import requests
from bs4 import BeautifulSoup

SEARCH_URL = "https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword="
CVE_URL = "https://cve.mitre.org/cgi-bin/cvename.cgi?name="


def get_html(url):
    request = requests.get(url)
    if request.status_code == 200:
        return request.content
    else:
        raise Exception("Bad request")


def search(s):
    url = f"{SEARCH_URL}{s}"
    results=[]    
    html = get_html(url)
    soup = BeautifulSoup(html, "lxml")
    result_rows = soup.select("#TableWithRules table tr")


    for row in result_rows: 
        _row = {}    
        name = row.select_one("td a")
        description = row.select_one("td:nth-child(2)")
        if all([name, description]):

            _row["name"] = name.text
            _row["url"] = name.get("href")
            _row["description"] = description.text

            results.append(_row)

    return results


def lookup_cve(name):
    url = f"{CVE_URL}{name}"
    html = get_html(url)
    soup = BeautifulSoup(html, "lxml")
    result_rows = soup.select("#GeneratedTable table tr")

    subtitle = ""
    description = ""

    raw_results = {}

    for row in result_rows:
        head = row.select_one("th")
        if head:
           subtitle = head.text
        else:
            body = row.select_one("td")
            description = body.text.strip().strip("\n")
            raw_results[subtitle.lower()] = description   
            
    return raw_results

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного прилоТСния

Наш ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡˆΠ°Π³β€Šβ€”β€ŠΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ созданиС консольного прилоТСния Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Click.

Clickβ€Šβ€”β€ŠΡΡ‚ΠΎ Python-ΠΏΠ°ΠΊΠ΅Ρ‚ для создания красивых интСрфСйсов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ количСством ΠΊΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Python-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для создания CLI, ΠΈ с Π½ΠΈΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Click позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ интСрфСйсы ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки любого ΡƒΡ€ΠΎΠ²Π½Ρβ€Šβ€”β€ŠΠΎΡ‚ самых простых Π΄ΠΎ Π½Π°Π²ΠΎΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Heroku).

Π’ нашСм CLI ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

1. поиск уязвимости;

2. просмотр уязвимости.

Π’ ΠΏΠ°ΠΏΠΊΠ΅ cver создаСм Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ __main__.py ΠΈ прописываСм Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ настройки:

import sys
import click

@click.group()
@click.version_option("1.0.0")
def main():
    """A CVE Search and Lookup CLI"""
    print("Hye")
    pass

@main.command()
@click.argument('keyword', required=False)
def search(**kwargs):
    """Search through CVE Database for vulnerabilities"""
    click.echo(kwargs)
    pass

@main.command()
@click.argument('name', required=False)
def look_up(**kwargs):
    """Get vulnerability details using its CVE-ID on CVE Database"""
    click.echo(kwargs)
    pass

if __name__ == '__main__':
    args = sys.argv
    if "--help" in args or len(args) == 1:
        print("CVE")
    main()

Поиск уязвимостСй

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ поиска search ΠΈΠ· Π²Π΅Π±-скрСйпСра ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ keyword ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ уязвимости, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом:

from scraper import search as cve_search, lookup_cve

@main.command()
@click.argument('keyword', required=False)
def search(**kwargs):
    """Search through CVE Database for vulnerabilities"""
    results = cve_search(kwargs.get("keyword"))
    for res in results:
        click.echo(f'{res["name"]} - {res["url"]} \n{res["description"]}')

Для запуска этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

python cver/__main__.py search python

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ уязвимости

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΎΡ‚ ΠΆΠ΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ lookup_cve ΠΈΠ· Π²Π΅Π±-скрСйпСра ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ‚ΡƒΠ΄Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ name ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ look_up.

@main.command()
@click.argument('name', required=False)
def look_up(**kwargs):
    """Get vulnerability details using its CVE-ID on CVE Database"""
    details = lookup_cve(kwargs.get("name"))
    click.echo(f'CVE-ID \n\n{details["cve-id"]}\n')
    click.echo(f'Description \n\n{details["description"]}\n')
    click.echo(f'References \n\n{details["references"]}\n')
    click.echo(f'Assigning CNA \n\n{details["assigning cna"]}\n')
    click.echo(f'Date Entry \n\n{details["date entry created"]}')

Для запуска этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

python cver/__main__.py look-up CVE-2013–4238

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! ΠœΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создали инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠΎ поиску с CVE.

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ консольного прилоТСния Π½Π°Β PyPI

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ создали консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ Π² Π΅Π³ΠΎ работоспособности, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° PyPI Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ доступС.

PyPIβ€Šβ€”β€ŠΡΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ практичСски всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· pip. Для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° потрСбуСтся Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° PyPI. Если ΠΎΠ½ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ смСло Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ дальшС.

Настройка ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡˆΠ°Π³β€Šβ€”β€ŠΡΡ‚ΠΎ настройка Python-ΠΏΠ°ΠΊΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ setup.py. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠΏΠ°Π» Π½Π° PyPI, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ описаниСм. Π­Ρ‚Π° информация указываСтся Π² Ρ„Π°ΠΉΠ»Π΅ setup.py.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ setup.py Π² основной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ помСститС Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

from setuptools import setup, find_packages
from io import open
from os import path

import pathlib
# ДирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится этот Ρ„Π°ΠΉΠ»
HERE = pathlib.Path(__file__).parent

# ВСкст README-Ρ„Π°ΠΉΠ»Π°
README = (HERE / "README.md").read_text()

# АвтоматичСски собираСт Π² requirements.txt всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для install_requires, Π° Ρ‚Π°ΠΊΠΆΠ΅ настраиваСт ссылки Π½Π° зависимости
with open(path.join(HERE, 'requirements.txt'), encoding='utf-8') as f:
    all_reqs = f.read().split('\n')

install_requires = [x.strip() for x in all_reqs if ('git+' not in x) and (
    not x.startswith('#')) and (not x.startswith('-'))]
dependency_links = [x.strip().replace('git+', '') for x in all_reqs \
                    if 'git+' not in x]

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ содСрТимоС Ρ„Π°ΠΉΠ»Π° README.md Π² ΠΎΠ΄Π½Ρƒ строку для дальнСйшСго использования. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ пСрСчислили всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ· requirements.txt ΠΈ сгСнСрировали ссылки Π½Π° ΠΈΡ… зависимости.

Π’Π°Ρˆ Ρ„Π°ΠΉΠ» requirements.txt выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

click
requests
beautifulsoup4
lxml
twine

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настроСк:

setup (
 name = 'cver',
 description = 'A simple commandline app for searching and looking up opensource vulnerabilities',
 version = '1.0.0',
 packages = find_packages(), # list of all packages
 install_requires = install_requires,
 python_requires='>=2.7', # any python greater than 2.7
 entry_points='''
        [console_scripts]
        cver=cver.__main__:main
    ''',
 author="Oyetoke Toby",
 keyword="cve, vuln, vulnerabilities, security, nvd",
 long_description=README,
 long_description_content_type="text/markdown",
 license='MIT',
 url='https://github.com/CITGuru/cver',

 download_url='https://github.com/CITGuru/cver/archive/1.0.0.tar.gz',
  dependency_links=dependency_links,
  author_email='[emailΒ protected]',
  classifiers=[
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
    ]
)

Π’ ΠΊΠΎΠ΄Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ мноТСство строк. Но ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ обсудим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΈΠ· Π½ΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для установки.

1. nameβ€Šβ€”β€ŠΠ½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появится Π½Π° PyPI;

2. versionβ€Šβ€”β€ŠΡ‚Π΅ΠΊΡƒΡ‰Π°Ρ вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°;

3. packagesβ€Šβ€”β€ŠΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ Ρ…ΠΎΠ΄Π΅ установки ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ find_packages. Он автоматичСски Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ всС ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹;

4. install_requiresβ€Šβ€”β€ŠΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для пСрСчислСния всСх зависимостСй ΠΈΠ»ΠΈ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’ cver ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Requests, Beautifulsoup 4 ΠΈ Click. Π˜Ρ… Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² трСбования ΠΊ установкС install_requires. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° присутствуСт Π² requirements.txt;

5. entry_pointsβ€Šβ€”β€ŠΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ скрипт cver, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ main() Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° cver/__main__.py. Наш основной ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚β€Šβ€”β€ŠΡΡ‚ΠΎ __main__.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main() для запуска Click.

Π”ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° PyPI ΠΈΠ»ΠΈ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. Π’ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ докумСнтация, Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ зависит ΠΎΡ‚ самого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ простой Ρ„Π°ΠΉΠ» README.md, Ρ‚Π°ΠΊ ΠΈ Readme.rst.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ README.md:

# CVER

A simple commandline app for searching and looking up opensource vulnerabilities

# Установка

## Π§Π΅Ρ€Π΅Π· Pip

```bash
  $ pip install cver
```

## Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ

```bash
  $ git clone https://github.com/citguru/cevr
  $ cd cver
  $ python setup.py install
```
# ИспользованиС

```bash
$ cver
```

## Поиск
`search <keyword>`

```bash
$ cver search python
```
## ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€

`search <name>`

```bash
$ cver look-up CVE-2020-2121
```

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Β .gitignore:

# Байтовая компиляция / оптимизация / DLL-Ρ„Π°ΠΉΠ»Ρ‹
__pycache__/
*.py[cod]
*$py.class

# C-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ
*.so

# Π‘Π±ΠΎΡ€ΠΊΠ° дистрибутива / ΠΏΠ°ΠΊΠ΅Ρ‚Π°
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Python-скриптом ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ
# Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ PyInstaller создаст exe. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для добавлСния Π² Ρ„Π°ΠΉΠ» Π΄Π°Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.
*.manifest
*.spec

# Π›ΠΎΠ³ΠΈ установщика
pip-log.txt
pip-delete-this-directory.txt

# ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты / ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹
*.mo
*.pot

# ВсякоС Π½Π° Django:
*.log
local_settings.py
db.sqlite3

# ВсякоС Π½Π° Flask:
instance/
.webassets-cache

# ВсякоС Π½Π° Scrapy:
.scrapy

# Sphinx-докумСнтация
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# Schedule-Ρ„Π°ΠΉΠ» Celery Beat 
celerybeat-schedule

# ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ SageMath
*.sage.py

# ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Настройки Spyder Project
.spyderproject
.spyproject

# Настройки Rope Project
.ropeproject

# ДокумСнтация mkdocs
/site

# mypy
.mypy_cache/

Π’ΠΎΡ‚ ΠΈ всС.

from setuptools import setup, find_packages
from io import open
from os import path

import pathlib
# ДирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится этот Ρ„Π°ΠΉΠ»
HERE = pathlib.Path(__file__).parent

# ВСкст README-Ρ„Π°ΠΉΠ»Π°
README = (HERE / "README.md").read_text()

# АвтоматичСски собираСт Π² requirements.txt всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для install_requires
with open(path.join(HERE, 'requirements.txt'), encoding='utf-8') as f:
    all_reqs = f.read().split('\n')

install_requires = [x.strip() for x in all_reqs if ('git+' not in x) and (
    not x.startswith('#')) and (not x.startswith('-'))]
dependency_links = [x.strip().replace('git+', '') for x in all_reqs \
                    if 'git+' not in x]
setup (
 name = 'cver',
 description = 'A simple commandline app for searching and looking up opensource vulnerabilities',
 version = '1.0.0',
 packages = find_packages(), # list of all packages
 install_requires = install_requires,
 python_requires='>=2.7', # any python greater than 2.7
 entry_points='''
        [console_scripts]
        cver=cver.__main__:main
    ''',
 author="Oyetoke Toby",
 keyword="cve, vuln, vulnerabilities, security, nvd",
 long_description=README,
 long_description_content_type="text/markdown",
 license='MIT',
 url='https://github.com/CITGuru/cver',
 download_url='https://github.com/CITGuru/cver/archive/1.0.0.tar.gz',
  dependency_links=dependency_links,
  author_email='[emailΒ protected]',
  classifiers=[
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
    ]
)

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π½Π°Β PyPI

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваш ΠΏΠ°ΠΊΠ΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° PyPI. Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас ΡƒΠΆΠ΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° PyPI. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ тСстовый Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° тСстовом сСрвСрС PyPI. Π­Ρ‚ΠΎΡ‚ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½ΡƒΠΆΠ΅Π½ для тСстирования ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈΡ… Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС.

Π—Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Python-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π° PyPI ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°β€Šβ€”β€ŠTwine. По ΠΈΠ΄Π΅Π΅, Π²Ρ‹ ΡƒΠΆΠ΅ установили Π΅Π³ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… этапов. Если Π½Π΅Ρ‚, Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· pip install twine.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ локальноС тСстированиС ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° тСстовом сСрвСрС

Python-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° PyPI, Π½Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Β«Π³ΠΎΠ»ΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π°. Они ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² дистрибутивы. Π‘Π°ΠΌΡ‹ΠΌΠΈ распространСнными Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ дистрибутивов Π² Python ΡΠ²Π»ΡΡŽΡ‚ΡΡ Wheels ΠΈ Source Archives.

Wheelsβ€Šβ€”β€ŠΡΡ‚ΠΎ zip-Π°Ρ€Ρ…ΠΈΠ² с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ. Source Archives содСрТит исходный ΠΊΠΎΠ΄ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² tar-Π°Ρ€Ρ…ΠΈΠ².

Для локального тСстирования ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

python setup.py install

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ:

cver search python

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° тСстовом сСрвСрС PyPI Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сборку для локального тСстирования. ΠŸΡ€ΠΈ создании этой сборки ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ Wheels ΠΈ Source Archives.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сборки:

python setup.py sdist bdist_wheel

Код Π½ΠΈΠΆΠ΅ сгСнСрируСт Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ dist:

cvecli/
β”‚
└── dist/
    β”œβ”€β”€ cver-1.0.0-py3-none-any.whl
    └── cver-1.0.0.tar.gz

Π—Π°Ρ‚Π΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Twine. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° тСстовый сСрвСр PyPI:

twine upload β€” repository-url https://test.pypi.org/legacy/ dist/*

Π—Π°Ρ‚Π΅ΠΌ Ρƒ вас спросят Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

Если ΠΏΠ°ΠΊΠ΅Ρ‚ загруТаСтся Π½Π° тСстовый сСрвСр Π±Π΅Π· ошибок, Ρ‚ΠΎ ΠΎΠ½ Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ здСсь.

Для установки ΠΈΠ· TestPyPI Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install -i https://test.pypi.org/simple/ cver==1.0.0

Π’ тСстовой срСдС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС.

ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π² всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ локально, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС:

twine upload dist/*

Π’ процСссС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ свой Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Π’ΠΎΡ‚ ΠΈ всС!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π·:

pip install cver

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! Π’Π°Ρˆ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° PyPI. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ здСсь!

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я пошагово объяснил процСсс создания ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ консольного прилоТСния Π½Π° Python.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:


ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Oyetoke Tobi Emmanuel: How to Build And Publish Command-Line Applications With Python

Π’ΠΈΠ΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ





ΠžΡΠ½ΠΎΠ²Ρ‹ программирования

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ профСссионал ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π±Ρ‹Π» Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ. НавСрняка Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠΎ состояниС, ΠΊΠΎΠ³Π΄Π° β€œΠ½Π΅ знаСшь ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡβ€. НавСрняка Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ситуациСй, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ просто Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ.
Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ Ρ€Π°Π· Π½Π° Ρ‚Π°ΠΊΠΈΡ… людСй, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ программистом, Π½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ этот ΠΏΡƒΡ‚ΡŒ.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅…


ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹. Π’ΠΈΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ. Различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ условными, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ сути любая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° — это Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Но ΠΌΡ‹ Ρ‚Π°ΠΊ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.


ΠœΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ,
ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² Lazarus.
Но сСгодня ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с нСсколько ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния. НиТС пСрСчислСны основныС Π²ΠΈΠ΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ описаниями.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния


КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с
ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой. Π’ΠΎ Π΅ΡΡ‚ΡŒ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΊΠ½ΠΎΠΏΠΎΡ‡Π΅ΠΊ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… прСлСстСй Windows.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ консольного прилоТСния — это ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Π’ Windows 95/98/ME — это
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° command.com (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΎΠ½ Π΅ΡΡ‚ΡŒ ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях Windows). Π’ Windows 2000 ΠΈ Π²Ρ‹ΡˆΠ΅ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° cmd.exe.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ КоС Ρ‡Ρ‚ΠΎ ΠΎ Π”ΠžΠ‘.

ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ прилоТСния


ОконноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — это привычная всСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Windows. Π’ΠΎ Π΅ΡΡ‚ΡŒ это окошко с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΈ полями для Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. На сСгодняшний дСнь это, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, самый распространённый Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ИмСнно ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ прилоТСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов.

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹


Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слуТит для β€œΡΡ‚Ρ‹ΠΊΠΎΠ²ΠΊΠΈβ€ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΆΠ΅Π»Π΅Π·Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹) с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Иногда Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая β€œΡΡ‚Ρ‹ΠΊΡƒΠ΅Ρ‚β€ Π΄Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Π₯отя сСйчас Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйсами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, COM-интСрфСйс ΠΈΠ»ΠΈ DDE-интСрфСйс).


Когда я Π³ΠΎΠ²ΠΎΡ€ΡŽ β€œΡΡ‚Ρ‹ΠΊΡƒΠ΅Ρ‚β€, Ρ‚ΠΎ я имСю Π²Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ ΠΈ ОБ. Π’ΠΎ Π΅ΡΡ‚ΡŒ опСрационная систСма обращаСтся Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ ΠΆΠ΅Π»Π΅Π·Ρƒ, Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€.


Π—Π°Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊ сдСлано? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚, сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство. И всС ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΈΡ… ΠΏΠΎ своим Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ стандартам. И опСрационная систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ всё ΠΎΠ±ΠΎ всСх Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°Ρ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ общСпринятыС стандарты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. И ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ β€œΠΆΠ΅Π»Π΅Π·Π°β€ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ ΡƒΠ³ΠΎΠ΄Π½ΠΎ β€œΠΆΠ΅Π»Π΅Π·ΡΠΊΡƒβ€, Π° Π·Π°Ρ‚Π΅ΠΌ просто ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, которая соотвСтствуСт общСпринятым стандартам ΠΈ β€œΡΡ‚Ρ‹ΠΊΡƒΠ΅Ρ‚β€ эту β€œΠΆΠ΅Π»Π΅Π·ΡΠΊΡƒβ€ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой.


Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΌ ΡƒΠΌΠ°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΡΠΌΠ΅ΡˆΠ½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ β€œΠΊΡ€ΠΈΠ²ΠΎΠΉβ€ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ USB-ΠΌΡ‹ΡˆΠΊΡƒ ΠΊΠ°ΠΊ Ρ„Π»ΡΡˆΠΊΡƒ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ такая β€œΡ„Π»ΡΡˆΠΊΠ°β€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π½ΠΎ Π·Π°Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½ΠΎ)))

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹


Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слуТит для β€œΡΡ‚Ρ‹ΠΊΠΎΠ²ΠΊΠΈβ€ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ. НапримСр, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‡ΡƒΠΆΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? Если чуТая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ стандартный интСрфСйс (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, DDE), Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот интСрфСйс для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‡ΡƒΠΆΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ


Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° — это Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Пока это Π²Π°ΠΌ Π½ΠΈ ΠΎ Ρ‡Ρ‘ΠΌ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚. Но просто Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ свои ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Ρ‡ΡƒΠΆΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ — Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ свои Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты ΠΌΠΎΠ³Π»ΠΈ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….


Удобство использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ привязаны ΠΊ языку программирования. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° языкС Π‘++, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΡ‚ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π° ПаскалС.

Π Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹


РСзидСнтная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ Π²ΠΈΠ΄Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎ Π½Π΅ΠΉ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚ΡŒ). Π’ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, антивирусы (ΠΈ вирусы Ρ‚ΠΎΠΆΠ΅))).

БистСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹


Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ прилоТСниями. Бюда ΠΆΠ΅ я Π±Ρ‹ отнёс Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ совсСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Однако эта ΡΡ‚Π°Ρ‚ΡŒΡ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ° ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° Π±ΡƒΠ΄Π΅ΠΌ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΊΡƒΡ‡Π° Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы ΠΈ оборудования.


Пока Π½Π° этом всё. Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π³ΠΎ задания Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ ΠΌΠΈΡ€ программирования, ΠΈ сколько всСго Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ)))

Бвойства консольного прилоТСния





Π‘Π΅ΠΊΡ€Π΅Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π°Π΄ΡƒΠΌΠ°Π»ΠΈΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ваш Π΄Ρ€ΡƒΠ³ (ΠΌΡƒΠΆ/ΠΆΠ΅Π½Π°, Π±Ρ€Π°Ρ‚/сСстра, ΠΊΠΎΠ»Π»Π΅Π³Π° ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ ΠΊΡ‚ΠΎ Π΅Ρ‰Ρ‘) Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π° полчаса Ρ‚Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρƒ вас ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ нСсколько часов (Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ нСдСль), Ρ‚ΠΎ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ ΠΊ этому видСокурсу.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅…


КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Π΅Π· графичСского интСрфСйса (Π² ΠΏΡ€ΠΎΡΡ‚ΠΎΠ½Π°Ρ€ΠΎΠ΄ΡŒΠΈ
Π΅Ρ‘ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ β€œΠ΄ΠΎΡΠΎΠ²ΡΠΊΠ°Ρ программа”). Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ окошко для Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄.
Иногда Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ псСвдографику, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ взаимодСйствиС
с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. КоС-ΠΊΠ°ΠΊΡƒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΉΡ‚ΠΈ здСсь.


Однако эта ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях, Π° ΠΎ свойствах ΠΎΠΊΠ½Π° консольного прилоТСния Π² Windows.


Π― Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ программистов. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты свои ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния. И, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных людСй воспитаны Π½Π° Windows, Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΠΊΠΎΠΌ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΎ возмоТностях ΠΎΠΊΠ½Π° консоли, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.



Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойства ΠΎΠΊΠ½Π° консоли, Π½Π°Π΄ΠΎ Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ ΠΎΠΊΠ½Π° ΠΈ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ мСню Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π‘Π’ΠžΠ™Π‘Π’Π’Π.


ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ с нСсколькими Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ:

  • ΠžΠ±Ρ‰ΠΈΠ΅. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства консольного прилоТСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ курсора ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ отобраТСния ΠΎΠΊΠ½Π° (Π² ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Π²ΠΎ вСсь экран).
  • Π¨Ρ€ΠΈΡ„Ρ‚. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ выводится тСкст Π² ΠΎΠΊΠ½Π΅ консоли. Π­Ρ‚ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ довольно ΠΌΠ΅Π»ΠΊΠΈΠΉ, ΠΈ Ρ€Π°Π·Π³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΊΠΎΠ½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠΌ людям слоТновато.
  • РасполоТСниС. Π—Π΄Π΅ΡΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.
  • Π¦Π²Π΅Ρ‚Π°. Π’ΠΎΠΆΠ΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ полСзная Π²ΠΊΠ»Π°Π΄ΠΊΠ°. Π₯отя Ссли Π²Π°ΠΌ Π½Π΅ нравится сСрый тСкст Π½Π° Ρ‡Ρ‘Ρ€Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Но слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΈ ваши настройки ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.


Когда Π²Ρ‹ установитС всС ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ вас настройки, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ ΠΎΠΊΠ½ΠΎ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° сохранСния настроСк консоли. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  1. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойства Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π°.
  2. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свойства для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΠΎΠ½ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.


Если Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚ΠΎ настройки измСнятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса. Когда Π²Ρ‹ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡ‚ΠΎΠΌ запуститС Π΅Π³ΠΎ вновь, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ установлСны настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° Π½Π΅ ваши настройки.


Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ настройки навсСгда ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° с вашими настройками, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈ сохранСнии настроСк Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.


ΠŸΡ€Π°Π²Π΄Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов здСсь ΠΆΠ΄Ρ‘Ρ‚ ΡΡŽΡ€ΠΏΡ€ΠΈΠ· — ΠΏΡ€ΠΈ пСрСкомпиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ваши настройки всё-Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Ρ‹. Однако ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ»Π½ΠΎΠ²Π°Ρ‚ΡŒ.


Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈ наглядно я всё это ΠΏΠΎΠΊΠ°Π·Π°Π» Π² Π²ΠΈΠ΄Π΅ΠΎ (см. Π²Ρ‹ΡˆΠ΅).


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ½ΠΈΠ³Ρƒ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ°.





ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ°

Π’ основС этой ΠΊΠ½ΠΈΠ³ΠΈ Π»Π΅ΠΆΠΈΡ‚ курс Π»Π΅ΠΊΡ†ΠΈΠΉ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для обучСния Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… прСдприятий. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС эти ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π³ΠΎΠ΄ Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π·Π½Π°Π»ΠΈ элСмСнтарных Π²Π΅Ρ‰Π΅ΠΉ…
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅…

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ | Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ WinAPI

«Windows ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: основанныС Π½Π° графичСском ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉ сС (graphical user interface, GUI) ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ (console user interface, CUI) V ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅ Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° внСшний интСрфСйс чисто графичСский GUI-прилоТСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅ΡŽΡ‚ мСню, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ Π²ΠΎΠΎΠ± Ρ‰Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ всСй стандартной «Windows’oвской» Π½Π°Ρ‡ΠΈΠ½ΠΊΠΎΠΉ. ΠŸΠΎΡ‡Ρ‚ΠΈ всС стандартныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Windows β€” Notepad, Calculator, Wordpad ΠΈ Π΄Ρ€ β€” ΡΠ²Π»ΡΡŽΡ‚ΡΡ GUI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅ ниями. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ консольного Ρ‚ΠΈΠΏΠ° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅: ΠΎΠ½ΠΈ Π½Π΅ Ρ„ΠΎΡ€ΠΌΠΈ Ρ€ΡƒΡŽΡ‚ ΠΎΠΊΠ½Π°, Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ сообщСния ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ GUI. И хотя ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈ лоТСния Π½Π° экранС Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΊΠ½Π΅, Π² Π½Π΅ΠΌ содСрТится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст. Коман Π΄Π½Ρ‹Π΅ процСссоры Π²Ρ€ΠΎΠ΄Π΅ Cmd.exe (Π² Windows 2000) ΠΈΠ»ΠΈ Command.com (Π² Windows 98) β€” Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ВмСстС с Ρ‚Π΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ вСсьма условна. МоТно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, способноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ процСссорС Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π° ΡŽΡ‰Π°Ρ графичСскоС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ со списком ΠΊΠΎΠΌΠ°Π½Π΄, Π²Ρ€ΠΎΠ΄Π΅ ΠΌΠ΅Π»ΠΎΡ‡ΡŒ β€” Π° избавляСт ΠΎΡ‚ запоминания лишнСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ GUI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅ Π½ΠΈΠ΅, выводящСС тСкстовыС строки Π² консольноС ΠΎΠΊΠ½ΠΎ. Π― сам часто писал Ρ‚Π°ΠΊΠΈΠ΅ ΠΏpoΠ³Ρ€Π°ΠΌΠΌΡ‹: создав консольноС ΠΎΠΊΠ½ΠΎ, я пСрСсылал Π² Π½Π΅Π³ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, свя Π·Π°Π½Π½ΡƒΡŽ с исполняСмым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Но, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, графичСский интСрфСйс ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ старомодный тСкстовый Как ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚, прилоТСния Π½Π° основС GUI «Π΄Ρ€ΡƒΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Π΅Π΅» ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ Π±ΠΎΠ»Π΅Π΅ популярны

Когда Π’Ρ‹ создаСтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прилоТСния, Microsoft Visual C++ устанавливаСт Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² исполняСмом Ρ„Π°ΠΉΠ»Π΅ Π±Ρ‹Π» ΡƒΠΊΠ°Π·Π°Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ подсистСмы Для CUI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡ /SUBSYSTEM:CONSOLE, Π° для GUI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” /SUBSYSTEM:WINDOWS Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запускаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅ Π½ΠΈΠ΅, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы провСряСт ΠΏΠΎΠΌΠ΅Ρ€ подсистСмы, хранящийся Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΎΠ±Ρ€Π°Π·Π° исполняСмого Ρ„Π°ΠΉΠ»Π°, ΠΈ опрСдСляСт, Ρ‡Ρ‚ΠΎ это Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° β€” GUI ΠΈΠ»ΠΈ Π‘UI Если Π½ΠΎΠΌΠ΅Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ послСднСго Ρ‚ΠΈΠΏΠ°, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ автоматичСс ΠΊΠΈ создаСт тСкстовоС консольноС ΠΎΠΊΠ½ΠΎ, Π° Ссли Π½ΠΎΠΌΠ΅Ρ€ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎ Π»ΠΎΠΆΠ½ΠΎΠΌ β€” просто Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ‡ΠΈ Π½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, опСрационная систСма большС Π½Π΅ интСрСсуСтся, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΎΠ½ΠΎ относится»

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² контСкстС C # — это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π²ΠΎΠ΄ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Π² консоли ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с доступом ΠΊ Ρ‚Ρ€Π΅ΠΌ основным ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…: стандартный Π²Π²ΠΎΠ΄, стандартный Π²Ρ‹Π²ΠΎΠ΄ ΠΈ стандартная ошибка.

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись символов с консоли — ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ Ρ†Π΅Π»ΠΎΠΉ строкой. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ C #, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ вызываСтся ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows.КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сущСствуСт Π² Π²ΠΈΠ΄Π΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ исполняСмого Ρ„Π°ΠΉΠ»Π° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI) ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ.

Techopedia ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ структура консольного прилоТСния ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ для ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ экрана дисплСя, управляСтся ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ систСмными событиями, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ сСтСвыми соСдинСниями ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ простого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… минимального взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для изучСния возмоТностСй языка C # ΠΈ слуТСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.
  • АвтоматичСскоС тСстированиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ рСсурсы внСдрСния Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π½Π° C #, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° (статичСский основной ΠΌΠ΅Ρ‚ΠΎΠ΄) выполнСния, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² качСствС СдинствСнного Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° для прСдставлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

.NET Framework прСдоставляСт классы Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ отобраТСния Π²Ρ‹Π²ΠΎΠ΄Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…. System.Console (Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ класс) — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Одно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ консольного прилоТСния Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ строки, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ функциями консоли с использованиСм ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы производитСля ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ оборудования (OEM), ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ функциями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ страницу АмСриканского Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ института стандартов (ANSI). Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SetFileApisToOEM для создания строк символов OEM, Π° Π½Π΅ строк символов ANSI.

4 ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния Ρ…ΠΎΡ€ΠΎΡˆΠΈ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ стоит Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ написании консольного прилоТСния Π² 2019 Π³ΠΎΠ΄Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС говорят ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅, искусствСнном ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π΅ (ИИ) ΠΈ Π²Π΅Π±-прилоТСниях? Π― Π½Π°Π·ΠΎΠ²Ρƒ Π²Π°ΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ языки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, инструмСнты ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C #.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

(с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ) ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ синтаксичСский Π°Π½Π°Π»ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°, созданиС мСню ΠΈ Ρ‚. Π”. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с нуля. Π’ настоящСС врСмя ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния

Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ блСстящСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈΠ»ΠΈ инструмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сСйчас Π² Ρ‚Ρ€Π΅Π½Π΄Π΅.

ПослС создания консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли трСбования измСнятся ΠΈΠ»ΠΈ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Π°ΠΌ придСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ интСрфСйсу заставляСт вас ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ дальнСйшиС измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π€ΠΎΡ‚ΠΎ Панкая ΠŸΠ°Ρ‚Π΅Π»Ρ Π½Π° Unsplash

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ большС ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° функциях, прСдоставляСмых вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‡Π΅ΠΌ Π½Π° создании ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ людям Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Π­Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊΠΎ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ всСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ хотят Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² сообщСствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² популярны ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Низкая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного прилоТСния Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ дСшСвлС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ вопросов, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для прилоТСния с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом. КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ простой, Π½ΠΎ эффСктивный интСрфСйс.

ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ позволяСт ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ дСньги, ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ вашСго прилоТСния; это Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ сроки.

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π’ наш Π²Π΅ΠΊ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ развСртывания автоматизация стала ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ.Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ собствСнный ΠΊΠΎΠ΄, часто ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² вашСй любимой срСдС.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° сторонС сСрвСра ΠΈΠ»ΠΈ созданиС сцСнариСв Π½Π° основС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. МнС нравится, ΠΊΠΎΠ³Π΄Π° я ΠΌΠΎΠ³Ρƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт Π·Π° мСня ряд Π·Π°Π΄Π°Ρ‡.

Automation Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок. Π—Π°Π΄Π°Ρ‡ΠΈ, выполняСмыС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, всСгда сопряТСны с риском.Π’Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΡ‚ΠΎ ΠΈΡ… выполняСт, ΠΈ Ссли Ρƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° с этими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам. Автоматизируя Π·Π°Π΄Π°Ρ‡ΠΈ, Π²Ρ‹ ΡƒΠ±Π΅Ρ€Π΅ΠΆΠ΅Ρ‚Π΅ сСбя ΠΈ свою ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΡ‚ ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ дальшС?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ соврСмСнноС консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° C #, посмотритС ΠΌΠΎΠ΅ послСднСС бСсплатноС Π²ΠΈΠ΄Π΅ΠΎ Π½Π° YouTube, Π³Π΄Π΅ я ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Ρ‚Ρ€ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C #, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния с высококачСствСнным ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌ интСрфСйсом.

ΠšΠ»Π°ΡƒΠ΄ΠΈΠΎ БСрнаскони

Π― ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€-программист со ΡΡ‚Ρ€Π°ΡΡ‚ΡŒΡŽ ΠΊ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΡŽ.NET Π½Π° YouTube, ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎ ΠΌΠΎΠ΅ΠΌ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ Π² Π±Π»ΠΎΠ³Π΅ ΠΈ Π·Π°ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ людСй ΡƒΠ»Ρ‹Π±Π°Ρ‚ΡŒΡΡ.

Настройка консольного прилоТСния

Настройка консольного прилоТСния

Π­Ρ‚ΠΎ руководство ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с Visual Studio (VS) ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π·
созданиС классичСского Hello World
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π­Ρ‚ΠΎ руководство состоит ΠΈΠ· пяти простых шагов.

  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  2. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ исходный Ρ„Π°ΠΉΠ»
  3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄
  4. Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
  5. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ.


Π¨Π°Π³ 1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π€Π°ΠΉΠ»Β» -> Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ» -> Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β».
ΠΈΠ· мСню Visual Studio. Π£ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Win32 Project
.

Π—Π°Π΄Π°ΠΉΡ‚Π΅ мСстополоТСниС Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ имя, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС CS447 .

НаТмитС ОК.

Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки прилоТСния
Ρ‚Π°Π±.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΈ ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π²Ρ‹Π±Ρ€Π°Π½.

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π“ΠΎΡ‚ΠΎΠ²ΠΎ.

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VS 2017:

1) Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ File -> New -> Project
-> УстановлСно -> Visual C ++ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅
ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
2) Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ -> ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅
ПанСль свойств ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ
Linker -> System ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ подсистСмы Π² консоли.

Π¨Π°Π³ 2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ исходный Ρ„Π°ΠΉΠ»

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠΊΠ½ΠΎ Π² VS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.
Π’ мСню Β«Π’ΠΈΠ΄Β» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉΒ». ВсС ΠΎΠΊΠ½Π°
Π² VS08 ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ это
Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° Π² мСсто, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ доступно, Π½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ваш
Π²ΠΈΠ΄ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° исходного ΠΊΠΎΠ΄Π°.

ΠžΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚
Π²Ρ‹ Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ вашС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. РСшСния сдСланы
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, состоят ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…
Ρ„Π°ΠΉΠ»Ρ‹. Π’ настоящСС врСмя Π² нашСм Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ CS447.

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CS447 Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ-> Новый элСмСнт .

Нам Π½ΡƒΠΆΠ΅Π½ исходный Ρ„Π°ΠΉΠ» Π½Π° C ++, поэтому Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ Ρ„Π°ΠΉΠ» C ++ (.cpp) ΠΈΠ· доступных
ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя для нашСго исходного Ρ„Π°ΠΉΠ»Π°, Π² нашСм случаС main.cpp. Π’
location ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… созданного Π²Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ пустой исходный Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ main.cpp.

Π¨Π°Π³ 3: Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.Π’Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ
(ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π΅ΠΆΡŒΡ‚Π΅ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² main.cpp, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ
ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ исходного ΠΊΠΎΠ΄Π°.

# Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ

с использованиСм пространства ΠΈΠΌΠ΅Π½ std;

int main (int argc, char ** args)
{
cerr << "Hello World" << endl;
Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}

Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ этот ΠΊΠΎΠ΄, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ оТидаСтся, Ρ‡Ρ‚ΠΎ Ρƒ вас
Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ C ++ для этого (ΠΈ всСх Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ…) руководств.

Наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простой. Π£ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° функция
Π² настоящСС врСмя, поэтому Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для CS 447 ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ довольно большими ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ², Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° функция
Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚Π°ΠΊ просто. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π°
Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ VS08, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ View -> Class View, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Class View. Π­Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ
ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ
Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹, вСроятно, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… вмСстС. Π­Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚
наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°.Однако класс
Окно просмотра Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ классам ΠΈ функциям.
Ρ‡Π΅ΠΌ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ. БСйчас Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° функция main, Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ ваши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚
расти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ классы, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’
Окно Class View окаТСтся бСсцСнным ΠΏΡ€ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ.
ΠΏΠΎΠ·ΠΆΠ΅ Π² курсС.

Π¨Π°Π³ 4: Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Visual Studio
Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ этот процСсс Π·Π΄Π°Π½ΠΈΠ΅ΠΌ. ΠŸΠ΅Ρ€Π΅Π΄ сборкой нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π°ΠΌ понадобится
Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ нашСй сборки
ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ.Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ->
Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· мСню VS08. Окно Ouput ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ·
процСсс компиляции ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ это
ΠΎΠΊΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π½Π°ΠΌ понадобится нСчасто.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Build -> Build Solution.
ΠΈΠ· мСню VS08. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π²
ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°. Если Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ скопировали ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, Π²Ρ‹
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ справа. Если сборка Π½Π΅ ΡƒΠ΄Π°Π»Π°ΡΡŒ
Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкст, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ. Если ошибка
это ошибка компиляции, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ошибкС
ΠΈ исходноС ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ строку, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ
ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка.На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ нас Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ошибок, поэтому ΠΌΡ‹
ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ построили наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Π¨Π°Π³ 5: ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· срСды VS08, ΠΌΡ‹ просто Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β» -> Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈΒ».
Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это ΠΎΠΊΠ½ΠΎ консоли. ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ!
Π£ вас Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ VS.


Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для этого руководства.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ руководствам

visual c ++ — Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Windows ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ всСгда ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ консоль, Ссли ΠΎΠ½ΠΎ Π½Π΅ запускаСтся с Π½Π΅Π΅ (ΠΈΠ»ΠΈ консоль Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ подавляСтся ΠΏΡ€ΠΈ запускС). Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows Π½Π΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ консоль. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ консоли ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AllocConsole .

Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ прилоТСния Windows Π±ΠΎΠ»Π΅Π΅ подходящими для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом ΠΈΠ»ΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ для Π½ΠΈΡ… создавалось ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, СдинствСнная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ консолью ΠΈ исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ Windows — это ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ Π² PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° exe . ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ этого Π±Π°ΠΉΡ‚Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°) ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏ прилоТСния. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° VB6 (Π³Π΄Π΅ этот Ρ‚ΠΈΠΏ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ явно Π½Π΅ поддСрТивался).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ подсистСмы прилоТСния, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ части Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE.Однако адрСс Π΄Π°Π½Π½Ρ‹Ρ… подсистСмы Π½Π΅ фиксирован, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ опрСдСляСтся адрСсом, хранящимся Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° DOS (Π² элСмСнтС e_lfanew ). Π­Ρ‚ΠΎΡ‚ адрСс фактичСски ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° запись _IMAGE_NT_HEADERS , которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ структуру IMAGE_OPTIONAL_HEADER32 . Π£ этого Π΅ΡΡ‚ΡŒ int16 1) Ρ‡Π»Π΅Π½ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Subsystem . Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π»Π΅Π½Π° — 2 для прилоТСния Windows ΠΈ 3 для консольного прилоТСния.Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ подсистСмы (Π² частности, POSIX ΠΈ ядро).
Π― написал нСбольшоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ VB6 для измСнСния подсистСмы прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с ActiveVB Π² качСствС исходного ΠΊΠΎΠ΄Π°.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ PE Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, Π½ΠΎ этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ: ΠŸΠΈΡ€ΠΈΠ½Π³ Π²Π½ΡƒΡ‚Ρ€ΠΈ PE: ΠžΠ±Π·ΠΎΡ€ пСрСносимого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Win32.


1) Π­Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ ΠΌΠΎΠ΅ΠΌΡƒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ отличаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚: ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Π°ΠΉΡ‚ этого Ρ‡Π»Π΅Π½Π° всСгда Ρ€Π°Π²Π΅Π½ 0.Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младший Π±Π°ΠΉΡ‚.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного прилоТСния Π² Visual Basic 2008

Помимо ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Visual Studio 2008 для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Окно ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ являСтся ΠΎΠΊΠ½ΠΎΠΌ DOS, хотя выглядит Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ. Π­Ρ‚ΠΎ тСкстовоС ΠΎΠΊΠ½ΠΎ, ΠΈ СдинствСнный способ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ — Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ строки тСкста ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, сгСнСрированный ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отобраТаСтся Π² этом тСкстовом ΠΎΠΊΠ½Π΅, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ строкС Π·Π° Ρ€Π°Π·.Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ прилоТСния называСтся ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌ, ΠΈ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ этому Ρ‚ΠΈΠΏΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Π² руководствС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Windows.

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ConsoleApplication1, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ создадитС Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ввСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ своСго любимого языка. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС Π² Π½ΠΎΠ²ΠΎΠΉ строкС, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 1.16.

Рисунок 1.16 — КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ Π² Vb 2008, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ шаблон «КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β». Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ConsoleApplication1 Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ имя. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅ мСняйтС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прилоТСния. Π£ консольного прилоТСния Π½Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, поэтому ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, это ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ:

 

Module Module1 Sub Main () ΠšΠΎΠ½Π΅Ρ† подписки ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

Π―Π·Ρ‹ΠΊ ΠΊΠΎΠ΄Π°: VB.NET (vbnet)

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ прилоТСния Windows, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся классом, консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ являСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Main () — это имя ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая выполняСтся автоматичСски ΠΏΡ€ΠΈ запускС консольного прилоТСния. Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Sub Main () ΠΈ End Sub. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² листингС 1.3, Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ прилоТСния Main ().

Листинг 1.3: КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

 

Module Module1 Sub Main () ΠŸΡ€ΠΈΡΡ‚Π°Π²ΠΊΠ°.WriteLine (Β«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ язык») Вусклый язык ΠΊΠ°ΠΊ строка language = Console.ReadLine () language = language.ToUpper Если язык = "VISUAL BASIC" ΠΈΠ»ΠΈ language = ”VB” Или language = ”VB.NET” Π’ΠΎΠ³Π΄Π° Console.WriteLine ("Ого! Π’Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ" ΠΈ язык) Π•Ρ‰Π΅ Console.WriteLine (язык & Β«Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ язык»). ΠšΠΎΠ½Π΅Ρ†, Ссли Console.WriteLine () Console.WriteLine () ΠŸΡ€ΠΈΡΡ‚Π°Π²ΠΊΠ°.WriteLine (Β«ΠΠΠ–ΠœΠ˜Π’Π• Π’Π’ΠžΠ” Π”Π›Π― Π’Π«Π₯ΠžΠ”ΠΒ») Console.ReadLine () ΠšΠΎΠ½Π΅Ρ† подписки ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

Π―Π·Ρ‹ΠΊ ΠΊΠΎΠ΄Π°: VB.NET (vbnet)

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΊΠΎΠ΄ эквивалСнтных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Console.WriteLine для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ своСго Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΠΊΠ½ΠΎ подсказки вмСсто ΠΎΠΊΠ½Π° сообщСния.

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° события, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ интСрфСйса. Однако Π² консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС элСмСнты интСрфСйса Windows.Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Console.WriteLine Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ MsgBox (), сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠΊΠ½Π΅ сообщСния.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° создания консольного прилоТСния состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ языка Π±Π΅Π· нСобходимости создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. МногиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями; ΠΎΠ½ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π΅ΠΌΡƒΡŽ Ρ‚Π΅ΠΌΡƒ ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DateDiff (), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ввСсти строки ΠΈΠ· листинга 1.4 Π² своСй ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Main ().

Листинг 1.4: ВСстированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ DateDiff () с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ консольного прилоТСния

 

Sub Main () Console.WriteLine (DateDiff (DateInterval.Day, # 3/9/2005 #, # 5/15/2010 #)) Console.WriteLine ("ΠΠΠ–ΠœΠ˜Π’Π• Π’Π’ΠžΠ” Π”Π›Π― Π’Π«Π₯ΠžΠ”Π") Console.ReadLine () End Sub

Π―Π·Ρ‹ΠΊ ΠΊΠΎΠ΄Π°: VB.NET (vbnet)

ПослСдниС Π΄Π²Π΅ строки Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π²ΠΎ всСх ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅. Π‘Π΅Π· Π½ΠΈΡ… ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки закроСтся, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚ достигнут ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ End Sub, ΠΈ Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ возмоТности ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.ΠœΠ΅Ρ‚ΠΎΠ΄ Console.ReadLine ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Enter.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΡƒΠ΄ΠΎΠ±Π½Ρ‹ для тСстирования ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… сСгмСнтов ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows являСтся синонимом проСктирования графичСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, поэтому Π² этом руководствС Π²Ρ‹ большС Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного прилоТСния Π² Visual Studio code

Π’ этом руководствС ΠΏΠΎ C # .Net ΠΌΡ‹ обсудим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ Visual Studio . Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ C #.Net-консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм ΠΊΠΎΠ΄Π° Visual Studio ?

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ SharePoint Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Код Visual Studio

Visual Studio Code — это бСсплатный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Microsoft для Windows, Linux ΠΈ macOS. ΠœΡ‹ создаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ C # Console Π² ΠΊΠΎΠ΄Π΅ Vs с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .NET Core.

Visual Studio Code (Vs Code) ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для кроссплатформСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET Core. Visual Studio Code — это Π»Π΅Π³ΠΊΠΈΠΉ, Π½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС ΠΈ доступСн для Windows, macOS ΠΈ Linux.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Visual Studio с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ C #, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹Π΅ возмоТности рСдактирования с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ C # IntelliSense ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.

Π‘Π½Π°Ρ‡Π°Π»Π° установитС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

  1. УстановитС ΠΊΠΎΠ΄ Visual Studio.
  2. УстановитС ΠΏΠ°ΠΊΠ΅Ρ‚ SDK для .NET Core.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ консольного прилоТСния Π² Visual Studio code

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ Visual Studio. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создадим ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ «ДСмонстрационноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ консоли».NET Core.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм ΠΊΠΎΠ΄Π° Visual Studio:

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Visual Studio, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈΠ· Visual Studio Code, Π²Ρ‹Π±Ρ€Π°Π².

Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»> Новый Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π² подмСню.

Команда dotnet создаСт для вас Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° console. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -o создаСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ConsoleApplicationDemo, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ заполняСт Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.Команда cd ConsoleApllicationDemo ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ вас Π²ΠΎ вновь созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ прилоТСния.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ ConsoleApplicationdemo, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

D:> cd ConsoleApplicationdemo

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ConsoleApplication Π² VS Code

D: \ ConsoleApplicationdemo> ΠΊΠΎΠ΄.

Π—Π°Ρ‚Π΅ΠΌ снова ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π² ΠΊΠΎΠ΄Π΅ Visual Studio.

ЗапуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ dotnet restore, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ доступ ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌΡƒ.NET Core, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для сборки вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: dotnet run. ЗапуститС консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ появится экран, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ Visual Studio.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ C # с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° Visual Studio.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° консольного прилоТСния Π² Visual Studio, ΠΊΠΎΠ΄

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй VS Code являСтся отличная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ .ВстроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ VS Code ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» рСдактирования, компиляции ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ C # Π² ΠΊΠΎΠ΄Π΅ Visual Studio.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ C # Π² ΠΊΠΎΠ΄Π΅ Visual Studio .

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° C # Program.cs Π² Visual Studio Code появляСтся Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅. Код Visual Studio Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ рСсурсы для сборки ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ прилоТСния. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Π”Π°».

ЗапуститС установку OmniSharp Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ отобраТаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС.

VS Code left Navigation — Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Debugger Icon

НайдитС Π·Π΅Π»Π΅Π½ΡƒΡŽ стрСлку Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΏΠ°Π½Π΅Π»ΠΈ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС рядом с Π½ΠΈΠΌ Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΡƒΠ½ΠΊΡ‚ Запуск .NET Core (консоль).

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎΠ»Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F5 ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π΅Π»Π΅Π½ΡƒΡŽ стрСлку , ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Visual Studio Code

Π’ ΠΊΠΎΠ΄Π΅ Visual Studio Π΅ΡΡ‚ΡŒ большС ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков ΠΈ срСд выполнСния (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PHP, C #, Python, C ++, PowerShell ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), ΠΈΡ‰ΠΈΡ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ² Π² нашСм VS Code Marketplace ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ Π² мСню ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.

Π’Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ€ΠΎΠΊΠΈ Visual Studio:

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм ΠΊΠΎΠ΄Π° Visual Studio , Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ C # с использованиСм ΠΊΠΎΠ΄Π° Visual Studio .

Π― Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ тСхнологиями Microsoft послСдниС 6+ Π»Π΅Ρ‚. Π― ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ²Π»Π΅Ρ‡Π΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ ΠΌΠΎΠΈ основныС Π½Π°Π²Ρ‹ΠΊΠΈ — это SharePoint, ASP.NET ΠΈ C #, JQuery, Javascript, REST. Π― Π²Π΅Π΄Ρƒ этот Π±Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΈ знаниями с сообщСством. Π― — MCP, MCTS .NET ΠΈ Sharepoint 2010, MCPD Sharepoint 2010 ΠΈ MCSD HTML 5, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Sharepoint 2013 Core
. Π’ настоящСС врСмя я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ Sharepoint 2010, MOSS 2007, Sharepoint 2013, Sharepoint 2013 App Dev, C #, ASP.NET ΠΈ SQL Server 2008.

AutoEntry Sync App — Консоль ΠΏΡ€ΠΎΡ‚ΠΈΠ² прилоТСния-слуТбы

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ синхронизации ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ слуТбу Windows (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Если Ρ„Π°ΠΉΠ» вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ находится Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ / Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Sage 50 ΠΈΠ»ΠΈ QuickBooks Desktop, Ρ‚ΠΎ стандартная установка, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π‘Π»ΡƒΠΆΠ±Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Если Ρ„Π°ΠΉΠ»Ρ‹ вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ хранятся Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΈΠ»ΠΈ Π² сСти, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слуТбу Π½Π° консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Sync, Ссли Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π½Π° сСтСвом дискС ΠΈΠ»ΠΈ сСрвСрС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅. ΠŸΡ€ΠΈ запускС Π² качСствС консольного прилоТСния Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ синхронизации ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ счСта ΠΈΠ· AutoEntry Π² Sage / Quickbooks.

Π‘Π»ΡƒΠΆΠ±Π° Windows:

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ достаточно стандартной установки слуТбы Windows. ПослС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Sync слуТба Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° вашСм ПК Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ врСмя, позволяя AutoEntry ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ вашСго счСта Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π²Π°ΡˆΠΈΡ… ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй (Sage 50 UK & I / Canada, QuickBooks Desktop) автоматичСски Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дальнСйшСго Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°. .

Богласно стандартным инструкциям ΠΏΠΎ установкС (здСсь), ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Sync Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ установлСно Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС, Π³Π΄Π΅ хранятся Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈΠ±ΠΎ Π½Π° вашСм ПК, Π»ΠΈΠ±ΠΎ Π½Π° вашСм сСрвСрС. Если слуТба Windows прилоТСния синхронизации останавливаСтся ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, просто ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ синхронизации ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу»:

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ прилоТСния синхронизации Π½Π° консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ появится ΠΎΠΊΠ½ΠΎ консоли прилоТСния синхронизации.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *