2015-10-23 64 views
0

我想使用Python 3.4在Windows 7中的第二個屏幕上繪製特定圖像。我可以用pywin32獲得句柄和屏幕尺寸:在Python中使用win32api創建新的屏幕緩衝區

import win32api 
screens = win32api.EnumDisplayMonitors() 

我得到的句柄,我的屏幕尺寸:

[(<PyHANDLE:393217>, <PyHANDLE:0>, (0, 0, 1280, 720)), 
(<PyHANDLE:7472233>, <PyHANDLE:0>, (1920, 0, 3360, 900))] 

我想用我的屏幕,文字的尺寸創建一個新的緩衝我的數據/圖像到新的緩衝區並將其設置爲活動屏幕。

我不認爲我可以用pywin32模塊做到這一點,但我通過ctypes訪問Windows API。但是我找不到像這裏描述的API函數https://msdn.microsoft.com/en-us/library/windows/desktop/ms685032(v=vs.85).aspx

我該怎麼做?謝謝!

+1

您已連接到控制檯,它適用於控制檯窗口的文本緩衝功能 - 所以沒有圖紙或圖形。通常你會畫出你創建的窗口,請澄清你想達到的目標。 –

+0

接受的答案與您的屏幕本身無關。控制檯屏幕緩衝區是控制檯窗口中用於unicode文本的輸出緩衝區,限於用於文本背景和前景的16種顏色的調色板。如果您正在尋找文本藝術,使用[ANSICON](https://github.com/adoxa/ansicon)會更簡單,它會掛鉤Windows API函數以支持ANSI轉義序列。 – eryksun

+0

我後來意識到,我對此的看法是錯誤的。我想控制整個第二個屏幕,沒有窗口或任何東西。我希望能夠在屏幕上繪製8位圖像,即我想爲屏幕上的每個像素指定8位值。 注意:我所說的屏幕是一種通過HDMI連接到電腦的儀器,實質上是第二個屏幕,用於顯示具有適當尺寸的圖像。 – kd35

回答

0

可以使用win32console模塊:

=> python 
Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar 6 2015, 12:06:10) [MSC v.1600 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import win32console 
>>> help(win32console.CreateConsoleScreenBuffer) 
Help on built-in function CreateConsoleScreenBuffer in module win32console: 

CreateConsoleScreenBuffer(...) 
    Creates a new console screen buffer 
相關問題