VB2010
Moin,
folgendes Problem. Ich nutze den Hotkey F10 um Screenshots vom aktiven Fenster (fifa14) zu machen.
Nun möchte ich aber das vorher atl+Enter bei F10 getriggert wird (FensterModus) *delay 4 sekunden* Screenshot.
Es klappt auch, doch das delay wirkt sich auch immer auf das sendkeys aus. Also ich denke es liegt daran das die eien sub die andere aufruft und diese wieder die andere:
Im letzten Codebereichbereich ist das sendkeys und der Aufruf der "CheckFocus" in der auch das delay drin ist. Ich habe erwartet, das er das sendkeys direkt macht und dann erst das checkfocus abarbeitet. Aber das sendkeys ist nun auch delayed um 4sek.
Wie könnte ich das anders lösen?
Danke
Amokossi
Moin,
folgendes Problem. Ich nutze den Hotkey F10 um Screenshots vom aktiven Fenster (fifa14) zu machen.
Nun möchte ich aber das vorher atl+Enter bei F10 getriggert wird (FensterModus) *delay 4 sekunden* Screenshot.
Es klappt auch, doch das delay wirkt sich auch immer auf das sendkeys aus. Also ich denke es liegt daran das die eien sub die andere aufruft und diese wieder die andere:
Im letzten Codebereichbereich ist das sendkeys und der Aufruf der "CheckFocus" in der auch das delay drin ist. Ich habe erwartet, das er das sendkeys direkt macht und dann erst das checkfocus abarbeitet. Aber das sendkeys ist nun auch delayed um 4sek.
Wie könnte ich das anders lösen?
Visual Basic-Quellcode
- Private Sub TakeScreen()
- My.Computer.Audio.Play(My.Resources.camera1, AudioPlayMode.Background)
- g.CopyFromScreen( _
- Screen.PrimaryScreen.Bounds.Location, _
- New Point(0, 0), Screen.PrimaryScreen.Bounds.Size)
- 'PictureBox1.Image = b
- If String.IsNullOrEmpty(My.Settings.SpeicherOrt) Then
- TB_SpeicherPfad.Text = OrtEigeneDateien
- Else
- TB_SpeicherPfad.Text = My.Settings.SpeicherOrt
- End If
- Dim screenshotName As String = "Fifa-Mods.de_Liga" & "_" & Counter & "_" & My.Settings.team_id & "_" & My.Settings.user_id & "_" & dateString
- Dim captureSavePath As String = String.Format(TB_SpeicherPfad.Text & "\" & screenshotName & ".jpg")
- Directory.CreateDirectory(Path.GetDirectoryName(captureSavePath))
- 'b.Save("c:\\MyScreenShotBMP.BMP", Imaging.ImageFormat.Bmp)
- 'b.Save("c:\\MyScreenShotJPG.jpg", Imaging.ImageFormat.Jpeg)
- Dim myEncoderParameter = New EncoderParameter(myEncoder, 100&)
- myEncoderParameters.Param(0) = myEncoderParameter
- 'b.Save("c:\TestPhotoQualityHundred.jpg", jgpEncoder, myEncoderParameters)
- b.Save(captureSavePath, jgpEncoder, myEncoderParameters)
- TextBox1.Text = Counter
- Counter = Counter + 1
- 'SendKeys.Send("%{ENTER}") 'for Ctrl-C
- 'If My.Settings.OS = "7" Or My.Settings.OS = "Vista" Then
- ' DwmEnableComposition(True)
- 'End If
- End Sub
Visual Basic-Quellcode
- Private Sub CheckFokus()
- Dim pList() As Process
- Dim processID As Int32
- Dim processName As String = Process.GetProcessById(processID).ProcessName
- GetWindowThreadProcessId(GetForegroundWindow(), processID)
- pList = Process.GetProcesses
- 'MsgBox(Process.GetProcessById(processID).ProcessName)
- 'MsgBox(Process.GetProcessById(processID).MainWindowTitle)
- For Each p As Process In pList
- If Process.GetProcessById(processID).MainWindowTitle = "FIFA 14" And Process.GetProcessById(processID).ProcessName = "fifa14" Then
- 'If Process.GetProcessById(processID).ProcessName = "firefox" Then
- System.Threading.Thread.Sleep(4000)
- TakeScreen()
- Return
- Else
- MsgBox("Screenshots sind nur InGame möglich!")
- Return
- End If
- Next
- End Sub
Danke
Amokossi