Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Screencontrol

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 06.11.2011, 05:13    Titel: Screencontrol Antworten mit Zitat

Ich schon wieder happy
Nachdem Threading ect alles klappt wollte ich meinem fenster noch ein paar nette eigenschaften WinAPI like mitgeben, nachdem ich mein splashscreen jetzt auch zusätzlich minimieren kann... tolle sache

Leider hab ich nun ein problem mit screencontrol innerhalb meiner mausabfrage...

sowohl mein programm, als auch dieser kleine test, hängt sich auf wenn ich das fenster minimiere....

Also nachdem ich mein fenster minimiert habe kann ich es nicht mehr herstellen, es hängt sich durch screencontrol auf

Code:
#include once "windows.bi"


screenres 400,400,32
Dim FensterHandle as any ptr
FensterHandle = GetForegroundWindow()


Dim F as Integer
F=FreeFile

Open CONS for output as #F

    Dim as Integer WinX, WinY
   
   
do   
    Screencontrol &h00, WinX, WinY
    Print #F, str(WinX)+", "+str(WinY)
   
    sleep 10
loop until multikey(&h01)

close #F


Gibts eine funktionierende alternative (Winapi?) Screencontrol oder lässt sich der fehler 'beheben' ?


Edit:
Macht genau das selbe, ohne hängen zu bleiben...
Code:
Sub WindowPosition(ByVal handle as any ptr, byref X as Integer, byref Y as Integer)
    Dim WindowRECT As RECT
   
    GetWindowRect(handle, @WindowRECT)

    X = WindowRECT.Left
    Y = WindowRECT.Top
End Sub

_________________


Zuletzt bearbeitet von Eternal_pain am 06.11.2011, 11:57, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 06.11.2011, 11:18    Titel: Antworten mit Zitat

Bei mir unter Linux funktioniert es ohne Probleme, natürlich ohne die "windows.bi". Scheint ein Fehler mit Windows zu sein, oder einer der Bibliotheken. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 06.11.2011, 11:50    Titel: Antworten mit Zitat

Hi Eternal_pain,
hast recht. Da ist in ScreenControl der Wurm drin.
Ich hatte den Sleepwert auf 100ms gesetzt da lief es ein paar mal gut, doch dann trat der Fehler wieder auf.
Code:
#Include Once "windows.bi"

ScreenRes 400,400,32
Dim As HANDLE FensterHandle
ScreenControl 2, Cast(Integer,FensterHandle)
Dim As Integer F = FreeFile

Open Cons For Output As #F
'Dim As Integer WinX, WinY
Dim WindowRECT As RECT
Do
  'ScreenControl 0, WinX, WinY
  'Print #F, Str(WinX)+", "+Str(WinY)
  GetWindowRect(FensterHandle, @WindowRECT)
  Print #F, WindowRECT.Left;", ";WindowRECT.Top
  'Sleep 100
Loop Until MultiKey(&h01)
Close #F

(Vertausch mal .Top und .Left) happy
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 06.11.2011, 11:58    Titel: Antworten mit Zitat

Also langs ausnahmsweise doch mal nicht an mir zwinkern

das mit dem X und Y hab ich nach halbstündiger fehlersuche auch gemerkt grinsen (habs oben mal geändert)
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 06.11.2011, 16:22    Titel: Antworten mit Zitat

EDIT: IIm fb treiber müsste man zwischen 755 und 756 foglendes einfügen:

Code:
if ((x != 0x80000000) && (y != 0x80000000))

dann sollte es funzen.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 07.11.2011, 11:53, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 07.11.2011, 10:55    Titel: Antworten mit Zitat

Hi TPM,
Link oder Zeilennummern passen nicht so recht zusammen?
Zeile 756/57 ist eine Anweisung, schau noch mal danach.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 07.11.2011, 11:53    Titel: Antworten mit Zitat

ups THX ... eine zeile zuvor. habs im letzten post geändert.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz