Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Пауза (doevents, sleep) Добавлено: 24.10.10 12:23  

Автор вопроса:  Spiritsun
Проблемка есть, прошу помощи, делаю прогу для автоматических скриншотов с игр, пытаюсь реализовать её через програмное нажатие на кл PrtScr и вот после нажатия мне нужна пауза, такая чтобы дать ОС успеть записать данные с экрана в буфер обмена перед тем как я буду ими пользоваться, притом игра не должна виснуть. Просто doevents() не помогает, а использование sleep() в любом случае блокирует игру. Как быть? Вот кусок кода:
Clipboard.Clear()
keybd_event(&H2C, &H45S, KEYEVENTF_EXTENDEDKEY Or 0, 0)
keybd_event(&H2C, &H45S, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
{ПАУЗА}
tstclp = My.Computer.Clipboard.ContainsImage
                If tstclp Then
                    sc = My.Computer.Clipboard.GetImage
                    sw = sc.Size.Width
                    sh = sc.Size.Height
                    Dim scrpic3 As New Bitmap(sc, New Size(Fix(scl * sw / 100), Fix(scl * sh / 100))) ' объект Bitmap для размещения скриншота
                    Dim gscrpic3 As Graphics = Graphics.FromImage(scrpic3) ' управление Bitmap
                    gscrpic3.DrawString("ID Match: " & id & vbCrLf & "Nick: " & nick & vbCrLf & "Time: " & tekH & vbCrLf & "Date: " & tekD, New Font("Arial", 14, FontStyle.Bold, GraphicsUnit.Pixel), New SolidBrush(Color.Red), New Point(10, 10))
                    scrpic3.Save(FileNameDate, ImageFormat.Jpeg) ' запись в файл
                    gscrpic3.Dispose()
                    scrpic3.Dispose()
                End If

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 24.10.10 12:32
запускать процедуру в отдельном треде

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 25.10.10 10:22
лучше реализуй ее через Graphics.CopyFromScreen

Ответить

Номер ответа: 3
Автор ответа:
 Spiritsun



Вопросов: 15
Ответов: 44
 Профиль | | #3 Добавлено: 28.10.10 19:42
У меня 2 метода, вот 2-ой написал через Graphics.CopyFromScreen, работает такой метод только в том случае, если в игре нет сглаживания (анти-алиазинга) и в ярлыке отключена композиция рабочего стола (win7, vista). Так вот, скриншот бывает обрабатывается в момент не полной обрисовки экрана (напр., когда не нанесены еще текстуры). Как это исправить?

Ответить

Номер ответа: 4
Автор ответа:
 Spiritsun



Вопросов: 15
Ответов: 44
 Профиль | | #4 Добавлено: 28.10.10 19:42
У меня 2 метода, вот 2-ой написал через Graphics.CopyFromScreen, работает такой метод только в том случае, если в игре нет сглаживания (анти-алиазинга) и в ярлыке отключена композиция рабочего стола (win7, vista). Так вот, скриншот бывает обрабатывается в момент не полной обрисовки экрана (напр., когда не нанесены еще текстуры). Как это исправить

Ответить

Номер ответа: 5
Автор ответа:
 Spiritsun



Вопросов: 15
Ответов: 44
 Профиль | | #5 Добавлено: 28.10.10 19:42
У меня 2 метода, вот 2-ой написал через Graphics.CopyFromScreen, работает такой метод только в том случае, если в игре нет сглаживания (анти-алиазинга) и в ярлыке отключена композиция рабочего стола (win7, vista). Так вот, скриншот бывает обрабатывается в момент не полной обрисовки экрана (напр., когда не нанесены еще текстуры). Как это исправить?

Ответить

Номер ответа: 6
Автор ответа:
 Spiritsun



Вопросов: 15
Ответов: 44
 Профиль | | #6 Добавлено: 28.10.10 19:47
Application.DoEvents() не помогает

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 28.10.10 20:25
использовать пряморукую игру( могу объяснить в каких местах она кривая), либо в ней установить не fullscreen mode и, желательно, иметь включенную VSync.

Ответить

Номер ответа: 8
Автор ответа:
 Spiritsun



Вопросов: 15
Ответов: 44
 Профиль | | #8 Добавлено: 29.10.10 19:59
игра CoD6, VSync вкл

Ответить

Номер ответа: 9
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #9 Добавлено: 30.10.10 11:00
установи не fullscreen (не windowed, хотя можно и его)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам