ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅, ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΠ΅ΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ COM-ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ 1Π‘ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ β ΠΎΡ Microsoft Office Π΄ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π° ΡΡΠΎΠΉ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠΎΠΉ? ΠΠΎΡΠ΅ΠΌΡ Π±Π΅Π· COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π·Π°Π΄Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ? Π ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ?
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² 1Π‘ Ρ Π½ΡΠ»Ρ: ΠΎΡ ΡΠ΅ΠΎΡΠΈΠΈ Π΄ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΡΡΡΠΎΠ΅Π½Ρ, Π³Π΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ ΡΠΈΠΏΠΈΡΠ½ΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ COM, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π΄ΡΡ ΠΊ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ 1Π‘, ΡΠ°ΠΊ ΠΈ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°Π½ΠΈΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½ Π² 1Π‘
COM (Component Object Model) β ΡΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΡ Microsoft, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΌΠΎΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- π ΠΠΊΡΠΏΠΎΡΡ Π΄Π°Π½Π½ΡΡ Π² Excel: Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΎΠ² Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- π§ ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· Outlook: ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π±Π΅Π· ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- π¨οΈ Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, ΡΠΊΠ°Π½Π΅ΡΠ°ΠΌΠΈ ΡΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ².
- π ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API: Π²ΡΠ·ΠΎΠ² Π²Π½Π΅ΡΠ½ΠΈΡ
Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ΅ΡΠ΅Π·
WinHttp.WinHttpRequest.5.1.
ΠΠ΅Π· COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π² 1Π‘ Π±ΡΠ»ΠΈ Π±Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΈΠ»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ Π±Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΎΠ±Ρ
ΠΎΠ΄Π½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π²Π½Π΅ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PDFCreator), ΡΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Windows-Π²Π΅ΡΡΠΈΡΡ 1Π‘. Π Linux ΠΈΠ»ΠΈ macOS Π΄Π»Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTTP-ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈΠ»ΠΈ native-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ).
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ COM-ΠΎΠ±ΡΠ΅ΠΊΡ Π² 1Π‘ β ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ.
ΠΠ°ΠΊ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡΡ Π² 1Π‘: Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² 1Π‘, ΡΠ°Π·Π±Π΅ΡΡΠΌ ΡΡ Π΅ΠΌΡ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ:
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅: COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows Ρ ΠΏΠΎΠΌΠΎΡΡΡ
regsvr32ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°. - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°: Π² ΠΊΠΎΠ΄Π΅ 1Π‘ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄
ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("ΠΠΌΡ.ΠΠ»Π°ΡΡΠ°"), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ. - ΠΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²: ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Excel.Application.Workbooks.Open()). - Π£Π½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°: ΠΏΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°ΠΊΡΡΡ, ΠΈΠ½Π°ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Excel:
Excel = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("Excel.Application");
Excel.Visible = ΠΡΡΠΈΠ½Π°; // ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΎΠΊΠ½ΠΎ Excel
ΠΠ½ΠΈΠ³Π° = Excel.Workbooks.Add();
Excel.Cells(1, 1).Value = "ΠΡΠΈΠ²Π΅Ρ ΠΈΠ· 1Π‘!";
Excel.Quit(); // ΠΠ°ΠΊΡΡΡΡ Excel
ΠΠ°ΠΆΠ½ΠΎ: Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠ·Π²Π°ΡΡ Quit(), ΠΏΡΠΎΡΠ΅ΡΡ Excel ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π²ΠΈΡΠ΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ COM.
ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² 1Π‘: ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ 1Π‘-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ:
| COM-ΠΎΠ±ΡΠ΅ΠΊΡ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ |
|---|---|---|
Excel.Application |
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Microsoft Excel | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΎΠ² Ρ Π³ΡΠ°ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ |
Word.Application |
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Microsoft Word | ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ², Π°ΠΊΡΠΎΠ², ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌ |
Outlook.Application |
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠΉ ΠΈ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡΠΌ | ΠΠ°ΡΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΡΠ»ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ Ρ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ· 1Π‘ |
WinHttp.WinHttpRequest.5.1 |
HTTP-Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ | ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ API Π±Π°Π½ΠΊΠΎΠ², ΠΊΡΡΡΠ΅ΡΡΠΊΠΈΡ ΡΠ»ΡΠΆΠ±, CRM |
Scripting.FileSystemObject |
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ | Π Π΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·, ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ², ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² |
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π΄Π²Π° ΡΠ°ΠΌΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡ:
1. ΠΠΊΡΠΏΠΎΡΡ Π΄Π°Π½Π½ΡΡ Π² Excel
ΠΠ°Π΄Π°ΡΠ°: ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΡΡ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ Π·Π° ΠΌΠ΅ΡΡΡ Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ ΠΏΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XLSX.
Excel = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("Excel.Application");
ΠΠ½ΠΈΠ³Π° = Excel.Workbooks.Add();
ΠΠΈΡΡ = ΠΠ½ΠΈΠ³Π°.Worksheets(1);
// ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
ΠΠΈΡΡ.Cells(1, 1).Value = "ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ";
ΠΠΈΡΡ.Cells(1, 2).Value = "Π‘ΡΠΌΠΌΠ° ΠΏΡΠΎΠ΄Π°ΠΆ";
// ΠΠ°Π½Π½ΡΠ΅ ΠΈΠ· 1Π‘
ΠΠ°ΠΏΡΠΎΡ = ΠΠΎΠ²ΡΠΉ ΠΠ°ΠΏΡΠΎΡ;
ΠΠ°ΠΏΡΠΎΡ.Π’Π΅ΠΊΡΡ = "ΠΠ«ΠΠ ΠΠ’Π¬ ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ.ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, Π‘Π£ΠΠΠ(ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.Π‘ΡΠΌΠΌΠ°)
|ΠΠ ΠΠΎΠΊΡΠΌΠ΅Π½Ρ.ΠΡΠΎΠ΄Π°ΠΆΠΈ ΠΠΠ ΠΠΎΠΊΡΠΌΠ΅Π½Ρ
|Π‘ΠΠ Π£ΠΠΠΠ ΠΠΠΠ’Π¬ ΠΠ ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ.ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅";
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ = ΠΠ°ΠΏΡΠΎΡ.ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ();
ΠΡΠ±ΠΎΡΠΊΠ° = Π Π΅Π·ΡΠ»ΡΡΠ°Ρ.ΠΡΠ±ΡΠ°ΡΡ();
Π‘ΡΡΠΎΠΊΠ° = 2;
ΠΠΎΠΊΠ° ΠΡΠ±ΠΎΡΠΊΠ°.Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ() Π¦ΠΈΠΊΠ»
ΠΠΈΡΡ.Cells(Π‘ΡΡΠΎΠΊΠ°, 1).Value = ΠΡΠ±ΠΎΡΠΊΠ°.ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅;
ΠΠΈΡΡ.Cells(Π‘ΡΡΠΎΠΊΠ°, 2).Value = ΠΡΠ±ΠΎΡΠΊΠ°.Π‘ΡΠΌΠΌΠ°;
Π‘ΡΡΠΎΠΊΠ° = Π‘ΡΡΠΎΠΊΠ° + 1;
ΠΠΎΠ½Π΅ΡΠ¦ΠΈΠΊΠ»Π°;
// Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅
ΠΠ½ΠΈΠ³Π°.SaveAs("C:\ΠΡΡΠ΅ΡΡ\ΠΡΠΎΠ΄Π°ΠΆΠΈ_ΠΏΠΎ_ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ.xlsx");
Excel.Quit();
2. ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· Outlook
ΠΠ°Π΄Π°ΡΠ°: ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°Ρ Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ½Π½ΡΠΌΠΈ Π°ΠΊΡΠ°ΠΌΠΈ.
Outlook = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("Outlook.Application");
ΠΠΈΡΡΠΌΠΎ = Outlook.CreateItem(0); // 0 - ΡΠΈΠΏ "MailItem"
// ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΈΡΡΠΌΠ°
ΠΠΈΡΡΠΌΠΎ.To = "client@example.com";
ΠΠΈΡΡΠΌΠΎ.Subject = "Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅";
ΠΠΈΡΡΠΌΠΎ.Body = "Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ! ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠΏΠ»Π°ΡΡ ΡΡΠ΅ΡΠ° β123.";
ΠΠΈΡΡΠΌΠΎ.Attachments.Add("C:\ΠΠΊΡΡ\ΠΠΊΡ_123.pdf");
// ΠΡΠΏΡΠ°Π²ΠΊΠ°
ΠΠΈΡΡΠΌΠΎ.Send(); // ΠΠ»ΠΈ .Display() Π΄Π»Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ
Outlook.Quit();
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Outlook ΡΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄.Send()ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΈΡΡΠΌΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π±Π΅Π· ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅.Display(), ΡΡΠΎΠ±Ρ ΠΏΠΈΡΡΠΌΠΎ ΠΎΡΠΊΡΡΠ»ΠΎΡΡ Π² ΠΎΠΊΠ½Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ
ΠΠ°ΠΆΠ΅ ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ 1Π‘ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ COM. ΠΠΎΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- π΄ "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡ": ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅:
- ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
"Excel.Application", Π° Π½Π΅"Excel"). - ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΠ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Microsoft Office Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ 1Π‘).
- ΠΡΠ°Π²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΡΠ°Π²Π° Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π΅ΡΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²).
- ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
- π΄ Π£ΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ: Π΅ΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ
Excel.Quit()), ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ Π²ΠΈΡΠ΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΠΎΠΏΡΡΠΊΠ°...ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠΎΠΏΡΡΠΊΠ°
Excel = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("Excel.Application");
// ... ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ Ρ Excel ...
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΎΠΎΠ±ΡΠΈΡΡ("ΠΡΠΈΠ±ΠΊΠ°: " + ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΡΠΈΠ±ΠΊΠΈ());
ΠΠΎΠ½Π΅ΡΠΠΎΠΏΡΡΠΊΠΈ;
ΠΡΠ»ΠΈ Excel <> ΠΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π’ΠΎΠ³Π΄Π°
Excel.Quit();
ΠΠΎΠ½Π΅ΡΠΡΠ»ΠΈ;
WScript.Shell.Π£Π±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΠ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ (Excel, Word ΠΈ Ρ.Π΄.)|ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ°Π²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²|ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° (Ρ ΡΠΎΡΠΊΠΎΠΉ!)|ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ|ΠΠ°ΠΊΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ-->
ΠΡΡ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° 1Π‘ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² 32-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° Office ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ), COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Office ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° 1Π‘.
- ΠΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
DCOMΠ΄Π»Ρ ΠΊΡΠΎΡΡ-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅).
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²Π½Π΅ΡΠ½ΡΡ COM-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊ 1Π‘
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Excel, Word), Π² 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠΎΡΠΎΠ½ΠΈΠ΅ COM-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ:
- π PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ: PDFCreator, iTextSharp.
- π¦ ΠΡΡ ΠΈΠ²Π°ΠΌΠΈ: 7-Zip, WinRAR.
- π₯οΈ ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π²Π΅ΡΠΎΠ², ΡΠΊΠ°Π½Π΅ΡΠΎΠ², ΠΠΠ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
- Π‘ΠΊΠ°ΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ: ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ
.dllΠΈΠ»ΠΈ.exeΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. - ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅:
- ΠΠ»Ρ
.dll: Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:regsvr32 C:\ΠΡΡΡ\Π\ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅.dll - ΠΠ»Ρ
.exe: Π·Π°ΠΏΡΡΡΠΈΡΡ Ρ ΠΊΠ»ΡΡΠΎΠΌ/regserver.
- ΠΠ»Ρ
- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ: Π² ΡΠ΅Π΅ΡΡΡΠ΅ Windows ΠΏΠΎ ΠΏΡΡΠΈ
HKEY_CLASSES_ROOTΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠ°Π·Π΄Π΅Π» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ°. - ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π² 1Π‘:
ΠΠ½Π΅ΡΠ½ΡΡΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("ΠΠΌΡ.ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ.ΠΠ»Π°ΡΡΠ°"); - β ΠΠ»ΠΎΡ
ΠΎ:
ΠΠ»Ρ ΠΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘ΡΡΠΎΠΊΠ° ΠΠ· Π’Π°Π±Π»ΠΈΡΠ° Π¦ΠΈΠΊΠ»Excel = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("Excel.Application"); // Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΠΈΠΊΠ»Π΅!
// ... ΡΠ°Π±ΠΎΡΠ° Ρ Excel ...
Excel.Quit();
ΠΠΎΠ½Π΅ΡΠ¦ΠΈΠΊΠ»Π°;
- β
Π₯ΠΎΡΠΎΡΠΎ:
Excel = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("Excel.Application");ΠΠ»Ρ ΠΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘ΡΡΠΎΠΊΠ° ΠΠ· Π’Π°Π±Π»ΠΈΡΠ° Π¦ΠΈΠΊΠ»
// ... ΡΠ°Π±ΠΎΡΠ° Ρ Excel ...
ΠΠΎΠ½Π΅ΡΠ¦ΠΈΠΊΠ»Π°;
Excel.Quit();
- ΠΠ°ΠΏΡΡΠΊ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°.
- ΠΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅
DCOM-ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π·dcomcnfg. - π« ΠΡΠ»ΠΈ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ 1Π‘ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ).
- π« ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ (COM ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Windows).
- π« ΠΡΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π° ΠΈΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- HTTP-ΡΠ΅ΡΠ²ΠΈΡΡ;
- REST API;
- Native-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ).
ΠΡΠΈΠΌΠ΅Ρ: ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PDFCreator Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ PDF:
PDF = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("PDFCreator.clsPDFCreator");
PDF.cOption("UseAutosave") = 1;
PDF.cOption("AutosaveDirectory") = "C:\PDF\";
PDF.cOption("AutosaveFilename") = "ΠΠΎΠ³ΠΎΠ²ΠΎΡ_123";
PDF.cOption("AutosaveFormat") = "PDF";
PDF.cClearCache();
PDF.cPrintFile("C:\ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ\ΠΠΎΠ³ΠΎΠ²ΠΎΡ.docx");
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ΅ Π²ΡΠ΅ COM-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ 1Π‘. ΠΠ΅ΡΠ΅Π΄ ΠΏΠΎΠΊΡΠΏΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ΡΠ΅Π· IDispatch (ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ 1Π‘ Ρ COM).
ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° IDispatch?
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅Π΅ΡΡΡ Windows ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π» HKEY_CLASSES_ROOT\ΠΠΌΡ.ΠΠ»Π°ΡΡΠ°.
ΠΡΠ»ΠΈ Π² Π½ΡΠΌ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π» "TypeLib" ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ "IDispatch" ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ "1", Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ 1Π‘.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ COM
COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ 1Π‘, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ . Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
1. ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ() β ΡΡΠΎ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅ 1000 ΡΡΡΠΎΠΊ Π² Excel:
2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π»Ρ Π΄ΠΎΠ»Π³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
ΠΡΠ»ΠΈ COM-ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΎΠ»Π³ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΡΡΡΡΠ°), Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 1Π‘. Π Π΅ΡΠ΅Π½ΠΈΠ΅ β Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ΅Π· WScript.Shell:
WshShell = ΠΠΎΠ²ΡΠΉ COMΠΠ±ΡΠ΅ΠΊΡ("WScript.Shell");
WshShell.Run("""C:\Π‘ΠΊΡΠΈΠΏΡΡ\ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡΠΡΡΠ΅ΡΠ°.vbs"" ""ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ""", 0, ΠΡΡΠΈΠ½Π°);
3. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°
COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΠΏΡΠ°Π²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π° 1Π‘. ΠΡΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠ°Π² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ), Π½Π°ΡΡΡΠΎΠΉΡΠ΅:
ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ COM-ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Process Monitor ΠΎΡ Microsoft. ΠΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅Π΅ΡΡΡΠΎΠ²ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡ 1Π‘ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π² 1Π‘
Π₯ΠΎΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΄ΠΎΠ±Π½Ρ, ΠΎΠ½ΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΡΡΡΡ Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ:
| ΠΠ°Π΄Π°ΡΠ° | COM-ΠΎΠ±ΡΠ΅ΠΊΡ | ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° | ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ |
|---|---|---|---|
| Π Π°Π±ΠΎΡΠ° Ρ Excel | Excel.Application |
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° OneScript.Xlsx ΠΈΠ»ΠΈ EPPlus (ΡΠ΅ΡΠ΅Π· .NET) | ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΡ Office |
| HTTP-Π·Π°ΠΏΡΠΎΡΡ | WinHttp.WinHttpRequest.5.1 |
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ HTTPΠ‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ HTTPΠΠ°ΠΏΡΠΎΡ |
ΠΠ»Ρ ΠΏΡΠΎΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π±Π΅Π· Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ |
| Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ | Scripting.FileSystemObject |
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π€Π°ΠΉΠ», ΠΠ°ΡΠ°Π»ΠΎΠ³ |
ΠΡΠ»ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΎΠ±Ρ ΠΎΠ΄) |
| ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ API | MSXML2.XMLHTTP |
HTTPΠ‘Π΅ΡΠ²ΠΈΡ ΠΈΠ»ΠΈ REST-ΡΠ΅ΡΠ²ΠΈΡΡ |
ΠΠ»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ JSON |
ΠΡΠΈΠΌΠ΅Ρ: ΠΎΡΠΏΡΠ°Π²ΠΊΠ° HTTP-Π·Π°ΠΏΡΠΎΡΠ° Π±Π΅Π· COM:
HTTP = ΠΠΎΠ²ΡΠΉ HTTPΠ‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅("api.example.com", 443, "", "", ΠΡΡΠΈΠ½Π°);
ΠΠ°ΠΏΡΠΎΡ = ΠΠΎΠ²ΡΠΉ HTTPΠΠ°ΠΏΡΠΎΡ("/data");
ΠΡΠ²Π΅Ρ = HTTP.ΠΠΎΡΠ»Π°ΡΡΠΠ»ΡΠΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ(ΠΠ°ΠΏΡΠΎΡ);
Π‘ΠΎΠΎΠ±ΡΠΈΡΡ(ΠΡΠ²Π΅Ρ.ΠΠΎΠ»ΡΡΠΈΡΡΠ’Π΅ΠΊΡΡ());
ΠΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ COM:
COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ (REST, JSON) Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ HTTP-ΡΠ΅ΡΠ²ΠΈΡΡ 1Π‘.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΎ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Π² 1Π‘
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1Π‘?
ΠΠ΅Ρ. COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠ»ΡΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ ΠΏΠΎΠ΄ Windows. Π Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Linux Π΄Π»Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅?
Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ:
- Π§Π΅ΡΠ΅Π· ΡΠ΅Π΅ΡΡΡ Windows:
HKEY_CLASSES_ROOTβ ΠΈΡΠΊΠ°ΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌCLSID. - Π§Π΅ΡΠ΅Π· PowerShell:
Get-ChildItem 'HKLM:\Software\Classes' -Recurse -ErrorAction SilentlyContinue |Where-Object { $_.GetValue("CLSID") } | Select-Object -ExpandProperty Name
- Π§Π΅ΡΠ΅Π· ΡΡΠΈΠ»ΠΈΡΡ OLEView (Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Windows SDK).
ΠΠΎΡΠ΅ΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Excel ΠΈΠ· 1Π‘ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° "RPC-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½"?
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
- DCOM Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²
dcomcnfg(ΠΏΡΡΠΊ βdcomcnfgβΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ DCOM). - ΠΠ½ΡΠΈΠ²ΠΈΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ: Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ 1Π‘ ΠΈ Excel.
- Π Π°Π·ΡΡΠ΄Π½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ: Π΅ΡΠ»ΠΈ 1Π‘ 32-Π±ΠΈΡΠ½Π°Ρ, Π° Office 64-Π±ΠΈΡΠ½ΡΠΉ (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ).
- ΠΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½ ΡΠ΅Π΅ΡΡΡ: ΠΏΠ΅ΡΠ΅ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ Excel ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
excel.exe /regserver
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ 1Π‘ ΠΈ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ?
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΡΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±Π»ΠΈΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
- ΠΠ°ΡΡΠΈΠ²Ρ: COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Excel.Range.Value = ΠΠ°ΡΡΠΈΠ²ΠΠ°Π½Π½ΡΡ). - ΠΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ: Π΄Π»Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΡΠΏΠΎΡΡ 100 000 ΡΡΡΠΎΠΊ) ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π²
CSV, Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π² Excel. - ΠΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ: Π΅ΡΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΠΈΡΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠ° Π² Excel:
// Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² Π΄Π°Π½Π½ΡΡ
Π·Π°ΡΠ°Π½Π΅Π΅
ΠΠ°ΡΡΠΈΠ²ΠΠ°Π½Π½ΡΡ
= ΠΠΎΠ²ΡΠΉ ΠΠ°ΡΡΠΈΠ²;
ΠΠ»Ρ ΠΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘ΡΡΠΎΠΊΠ° ΠΠ· Π’Π°Π±Π»ΠΈΡΠ° Π¦ΠΈΠΊΠ»
ΠΠ°ΡΡΠΈΠ²ΠΠ°Π½Π½ΡΡ
.ΠΠΎΠ±Π°Π²ΠΈΡΡ(Π‘ΡΡΠΎΠΊΠ°.ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅);
ΠΠΎΠ½Π΅ΡΠ¦ΠΈΠΊΠ»Π°;
// ΠΠ΅ΡΠ΅Π΄Π°ΡΠΌ ΠΌΠ°ΡΡΠΈΠ² Π² Excel Π·Π° ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ²
Excel.Range("A1:A" + ΠΠ°ΡΡΠΈΠ²ΠΠ°Π½Π½ΡΡ
.ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ()).Value = ΠΠ°ΡΡΠΈΠ²ΠΠ°Π½Π½ΡΡ
;
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ 1Π‘?
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΡΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ:
- π΄ ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ°.
- π΄ Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ: ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΡΠΈΡΡ ΡΠ΅Π°Π½Ρ 1Π‘.
- π΄ ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: ΡΠΈΡΠΊ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ:
- ΠΡΠ½ΠΎΡΠΈΡΠ΅ COM-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ Π½Π° .NET, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π΅ΡΡΡ Ρ 1Π‘ ΠΏΠΎ HTTP).