Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 04:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



ctrl+c auf curserpos geht manchmal nicht

Discussion on ctrl+c auf curserpos geht manchmal nicht within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2010
Posts: 90
Received Thanks: 17
ctrl+c auf curserpos geht manchmal nicht

Vielleicht hat einer einen Rat....

Es geht um ein Spiel das im Inventarraster (5*12) Items liegen hat.
Das Spiel selber sieht vor, das die Itemdaten mit Ctrl+C in die Zwischenablage kopierbar ist.

Nun wollte ich eine Routine haben die "mal eben" die 60 Positionen abgeht, die Daten ausliest und das Ergebnis in eine Textbox packt.

Das setzten der CursorPos geht ohne Probleme. Allerdings "verschluckt irgendwer das ganze Zwischenablage gebastelte. In der Ausgabe fehlen die Informationen von manchen Positionen. Leider immer unterschiedlich. Manchmal stimmts. Meist aber nicht. Ich habe die Vermutung das es ein timing Problem, mit dem "Cursor Positionswechsel" dann "in die Zwischenablage reinschreiben" dann "Zwischenablage in eine Variable schreiben", gibt.

Ich hab schon diverse Dinge ausprobiert, komme aber einfach nicht weiter.
Vielleicht hat irgendjemand einen Tip?
Hier mal der roh Code:



[
Code:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim ClipText As String
        Dim ClipSplit(61) As String
        SetForegroundWindow(HWND)
        Dim i As Integer = 0
        Dim k As Integer = 0
        For i = 0 To 11
            For k = 1 To 5
                ClipText = ""
                SetCursorPos(InvX + ((i + 1) * StepX) - (StepX / 2), InvY + (k * StepY) - (StepY / 2))
                SendKeys.Send("^c")
                ClipText = Clipboard.GetText()
                If ClipText <> "" Then
                    ClipSplit = Clipboard.GetText().Split(vbCrLf)
                    TextBox62.Text = TextBox62.Text & vbCrLf & (k + (i * 5)).ToString & "- " & ClipSplit(1).Replace(vbLf, "") & " - " & Trim(ClipSplit(3).Replace(vbLf, ""))
                    If Clipboard.ContainsText Then Clipboard.Clear()
                    Do While Clipboard.ContainsText
                    Loop
                End If
            Next k
        Next i
    End Sub

Vielleicht mal als Anschauungsobjekte:

Das Inventar:


und "ein" Ergebnis:


Danke schonmal ...
Ferro
FerroKarr is offline  
Old 02/17/2019, 00:35   #2
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
Ich würde vermuten, dass du einfach zu schnell bist. Dein Programm schafft die 60 Felder vermutlich locker innerhalb einer Sekunde, das Spiel aber wahrscheinlich nur ein Feld pro Frame. Ein Timing Problem in deinem Programm selbst ist eigentlich unmöglich, immerhin machst du alles nacheinander und nicht parallel.

Das Spiel wird sehr wahrscheinlich nur jeden Frame die Cursor Position und Tastatureingaben abfragen und dementsprechend auch nur jeden Frame in der Lage sein dir die richtigen Daten in die Zwischenablage zu geben. Wenn dein Programm jetzt also 2-3 Felder in der Zeit bearbeitet, in der das Spiel nur einen Frame schafft, kannst du auch nur die Daten von einem der Felder bekommen.

Also Lösung für das Problem sollte es also ausreichen, wenn du dein Programm mit Thread.Sleep(x) oder einer eleganteren Lösung so ausbremst, dass du nur noch ein Feld pro Frame triffst.
ComputerBaer is offline  
Old 02/19/2019, 13:51   #3
 
elite*gold: 0
Join Date: Apr 2010
Posts: 90
Received Thanks: 17
***... genau das war auch mein Gedanke.
Hab es nun mit zwei "delays" gelöst.
Einer nachdem der Cursor "positioniert" wurde und
einer nach CtrlC.
Ich hatte festgestellt das auch Windows da, je nach Rechnerleistung (VM), etwas Zeit braucht
Für die die es interessiert..

Schneller PC:
Delay nach Cursor -> 35 ms
Delay nach CtrlC -> 10 ms

VM 2Core/8GB:
Delay nach Cursor -> 110 ms
Delay nach CtrlC -> 80 ms

Um das ganze nun variabler zu machen kann man die Delayzeit nun über zwei "Trackbars" selber einstellen ^^.
FerroKarr is offline  
Reply


Similar Threads Similar Threads
Gk manchmal und manchmal nicht
06/12/2013 - Metin2 Private Server - 1 Replies
Hey Com, ich habe vorhin eine neue Gk Quest in meinen Server eingefügt (Invoice Serverfiles + Client), da die GK Quest nicht richtig funktioniert hat.. Dann ging sie, jetzt nachdem ich den Server neugestartet habe geht sie nicht mehr.. Hier mal meine config der Coreverteilung: HOSTNAME: channel99_core5 CHANNEL: 99 PORT: 13103 P2P_PORT: 65044
[Frage]Manchmal Sound manchmal nicht
10/05/2010 - Combat Arms - 4 Replies
Hi Leute, Letztens als ich Combat Arms gespielt hab, war ingame plötzlich der sound weg. Ich habe keine Schüsse mehr gehört oder sonst was... Als ich wieder in der Lobby war ging wieder alles wunderbar. Dann hab ich noch ein game betreten, hab start gemacht, und hörte wieder kein sound. Nachdem ich ca. 5min in dem raum gespielt habe ging der Sound? Weiß irgendwer was das ist?
XBOX 360 / Manchmal Pixelig manchmal nicht?
08/15/2010 - Technical Support - 1 Replies
Manchmal wenn ich XBOX starte und dann spiel kann man die schrift ... naja gerade noch lesen, also Pixelig. Das Spiel an sich is dann auch in schlechterer Grafik. Manchmal aber auch ist die schrift perfekt lesbar , nicht pixellig , kein bisschen unscharf , das gleiche mit Grafik im Game.. weiß einer was das is? liegts an der XBOX oder am Fernseher? edit : Hat sich gelöst ...hab auf PAL 50 ( HD-TV ging nich , brauch irgendein Kabel dazu) gestellt..und jetzt is nichts pixelig
[QUESTION]Manchmal gehts und manchmal nicht ???
12/02/2009 - Metin2 Private Server - 1 Replies
Hallo liebe com. Ich hab da ein sehr eigenartiges problem :confused: Ich starte den P server immer ganz normal (Hamachi server) Ich habe alle wichtigen Ports in Port Map offen : 13000,13002,13004,13001.13061,13099,11002,13003 Und ich kann mit Navicat und FileZilla auf meinen P Server conecten Jetzt kommt aber das komische : Ich kann mich nur ab und zu in Metin2(2007 ungepatcht) einloggen wie der titel sagt manchmal gehts manchmal nich kennt iwer diesen fehler ich wäre sehr dankbar um...



All times are GMT +1. The time now is 04:24.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.