AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^
Thema durchsuchen
Ansicht
Themen-Optionen

was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^

Offene Frage von "hboy"
Ein Thema von hboy · begonnen am 9. Jan 2005 · letzter Beitrag vom 26. Jan 2005
Antwort Antwort
Seite 5 von 5   « Erste     345   
Assarbad
(Gast)

n/a Beiträge
 
#41

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 15. Jan 2005, 17:30
Zitat von hboy:
OK.
------------------------------------
Frage1: gibt es eine Möglichkeit Messages von fremden Threads zu holen und zu verarbeiten ?

Es schaut so aus, dass im Hauptthread ein Fenster erzeugt wird, und wenn der Hauptthread hängt, sollen die Messages an das Fenster weiterhin abgearbeitet werden.
Packe ich die Erzeugung des Fensters in einen separaten Thread, ergibt sich das Problem, dass wiederum von dem Thread mit Fenster auf globale Variablen (Input und Output) zugegriffen (AssignDev) wird, was allerdings zu Fehlern führt.

Frage2: wie löse ich das Problem wenn es keine Möglichkeit zu Frage1 gibt ?
Ein Message-Hook (Typ: WH_GETMESSAGE) könnte helfen. Dann mußt du aber manuall aus der Hookfunktion deine Fensterfunktion aufrufen. So richtig kann ich es mir nicht vorstellen, weil dies Aufgaben des Systems sind.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#42

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 15. Jan 2005, 20:32
das ist doch gequirlte sch****

Wenn der Thread hängt wird auch die HookProc nicht mehr aufgerufen... jetzt hab ich den ganzen Müll umsonst gemacht. Windows ist scheiße ! jawohl.

HauptProgramm
  while true do; // hangup
Hook:

Delphi-Quellcode:
function MainHookProc(code: Integer ; wP:LPARAM ; lP: WPARAM): LRESULT; stdcall;
var msg: ^TMsg;
var winproc: Pointer;
var uintwndproc: Cardinal;
begin
  if code <0 then
      result := windows.CallNextHookEx(0,code,wp,lp)
  else
    begin
      msg := Pointer(lP);
      if msg^.message = wm_char then windows.TerminateProcess(windows.GetCurrentProcess,0);
    end;
end;
also müsste das gute stück beenden wenn ich auch nur eine taste drück. Tuts aber nicht.
Power is nothing without TControl
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#43

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 15. Jan 2005, 22:33
Probier mal:
  while true do Sleep(0); // hangup ... dann bekommen andere Threads im gleichen Programm auch mal ne Chance was zu machen.

Wie gesagt, in einer echten Konsole wird der Konsolenteil nicht mit Fensternachrichten usw. betrieben. Das wird aktuell dein Problem sein, auch wenn du natürlich unbedingt die komplette Funktionalität nachbauen willst (warum auch immer :-\).
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#44

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 15. Jan 2005, 23:18
*anmerk*
while true do;
war nur ein Beispiel für einen Hangup. Es kann sich natürlich auch um rechenintensive und komplexe Prozeduren handeln, die z.B. bei einer Fouriertransformation einer 500MB großen Datei etwas dauern können. Nun will ich die Konsole in dem Zeitraum auch noch bewegen/minimieren/maximieren/schließen können.

Also wie ?
Es gibt probleme mit dem ConsoleIn und ConsoleOut wenn das Fenster in einem separaten Thread erzeugt wird ( und dort dann auch eine Nachrichtenschleife läuft.
Wie krieg ich das in den Griff ?
Unter Probleme verstehe ich einen gewissen "Fehler 105" der dann auftritt. Ich vermute, dass dafür ausschlaggebend ist, welcher Thread das Objekt ConsoleWin erzeugt
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#45

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 15. Jan 2005, 23:45
ich glaub so ein Thread *g* also das Thema hier sucht seinesgleichen ^^ 3 seiten und der lösung noch keinen fatz näher..

http://msdn.microsoft.com/library/de...hreadinput.asp

wasn das oO
Power is nothing without TControl
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#46

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 16. Jan 2005, 02:26
Zitat von hboy:
ich glaub so ein Thread *g* also das Thema hier sucht seinesgleichen ^^ 3 seiten und der lösung noch keinen fatz näher..
Keine Angst, ich gebe bald auf --- wer das Rad neu erfindet, muß eben mit Problemen rechnen.

Zitat von hboy:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/attachthreadinput.asp
Könnte eine Variante sein. Probier es mal. Aber rufe aus deinem Thread für die Konsole vorher mindestens eine der besagten Funktionen auf um eine Queue zu erzeugen.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#47

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 16. Jan 2005, 11:42
öh ja und die wäre ? Muss ich da nochmal ein Fenster erzeugen oder was muss ich da tun ?
Power is nothing without TControl
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#48

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 16. Jan 2005, 13:51
Zitat von hboy:
öh ja und die wäre ? Muss ich da nochmal ein Fenster erzeugen oder was muss ich da tun ?
Ich dachte du erzeugst in dem Thread schon das Konsolenfenster? Das wäre doch der entsprechende Aufruf zu einer der USER oder GDI-Funktionen.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#49

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 16. Jan 2005, 14:00
ich verfrachte das immer wieder hin und her.. hab ja geschrieben dass es, wenn ich das Fenster in nem neuen Thread erzeug, zu Fehlern bei ConsoleIn und ConsoleOut kommt.. also funzt das schon mal nicht, es sei denn ich sende Messages zwischen Threads und bastel neue in/out prozeduren
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#50

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 26. Jan 2005, 01:40
hey freaks ! hab jetzt den ganzen murks in nen extra thread gepackt ! tut fast aber schon schwer geil. nachmachen empfohlen ( damit es hier au mal zu nem Ergebnis kommt )!


gute nacht
Power is nothing without TControl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz