AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi mausklicks vollkommen ignorieren ??
Thema durchsuchen
Ansicht
Themen-Optionen

mausklicks vollkommen ignorieren ??

Offene Frage von "telekommander"
Ein Thema von telekommander · begonnen am 9. Jul 2004 · letzter Beitrag vom 11. Jul 2004
Antwort Antwort
telekommander

Registriert seit: 8. Jul 2004
2 Beiträge
 
#1

mausklicks vollkommen ignorieren ??

  Alt 9. Jul 2004, 03:23
hallo erstmal ! bin neu hier, hab auch schon ueberall gesucht, google, delphiforum, etc. ,etc. und hab nichts gefunden
ich will naemlich ein programm schreiben das absolut garnicht auf einen mausklick reagiert.
mit form1.enabled:=false; gehts nicht, auch nicht in der create prozedur oder sonst wo, denn windows greift trozdem noch immer auf das fenster zu, zwar nicht richtig aber immerhin so das er aus meinem spiel rausgeht, die aufloesung wieder aendert um mir denn zu zeigen - beep - programm nicht erreichbar/aktiv. gibt es nicht irgendwie ne moeglichkeit etwas auf dne bildschirm zu bringen (in diesem fall bei einem computer spiel) welches man anklicken kann ohne das es reagiert, also absolut garnicht ? wär echt super wenn ihr da weiter wissen würdet. ansonsten hoff ich das ich eure regeln nicht gleich beim ersten post verletzt hab, hab echt alles schon durchsucht und nichts gefunden, aber vielleicht sitzt hier ja die loesung rum

mfgreetz
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: mausklicks vollkommen ignorieren ??

  Alt 9. Jul 2004, 07:29
ein Lokaler Hook wäre eine Möglichkeit:
Delphi-Quellcode:
  TForm1 = class(TForm)
  public
    HookID: Cardinal;
  [...]

function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
begin
  case nCode < 0 of
  True:
    Result := CallNextHookEx(Form1.HookID, nCode, wParam, lParam)
  else
    case wParam of
      WM_RBUTTONDOWN,
      WM_LBUTTONDOWN,
      WM_LBUTTONUP,
      WM_RBUTTONUP:
        Result := HC_SKIP;
    else
      Result := CallNextHookEx(Form1.HookID, nCode, wParam, lParam);
    end;
  end;
end;
[...]
procedure TForm1.FormCreate(Sender: TObject);
begin
  HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
end;
[...]
procedure TForm1.FormDestroy(Sender: TObject);
begin
  if HookID <> 0 then
     UnHookWindowsHookEx(HookID);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: mausklicks vollkommen ignorieren ??

  Alt 9. Jul 2004, 08:54
Zitat von telekommander:
ich will naemlich ein programm schreiben das absolut garnicht auf einen mausklick reagiert.
Setze BorderStyle auf bsNone und das Formular hat keinen Rahmen mehr.
Also kann man nicht Schliesen, Verschieben, Mini- oder Maximieren.
Zitat von telekommander:
ansonsten hoff ich das ich eure regeln nicht gleich beim ersten post verletzt hab, hab echt alles schon durchsucht und nichts gefunden, aber vielleicht sitzt hier ja die loesung rum
Texte ohne GROSS/klein-Schreibung sind sehr unleserlich!!
Du darfst deine Fragen mit Fett, Kursiv oder Unterstreichungen formatieren.
Andreas
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: mausklicks vollkommen ignorieren ??

  Alt 9. Jul 2004, 13:01
Hallo telekommander, wenn du in SirThornberry's Code auch noch zusätzlich einige NonClient-Messages abfängst, wie z.B. vielleicht:

Code:
...
    case wParam of
      ...
      WM_NCRButtonDown,
      WM_NCLButtonDown,
      WM_NCLButtonUp,
      WM_NCRButtonUp,
      WM_NCMouseMove:
        Result := HC_SKIP;
    else
      ...
...
..dann dürfte das wohl insgesamt beim gesuchten Effekt herauskommen - vorausgesetzt natürlich, ich habe dich richtig verstanden.

Allerdings wäre dein Prog1 danach aber auch derart abgeschottet, dass du es dann nur noch mehr über den TaskManager schließen könntest ...oder mittels eines anderen Progs2 per: PostMessage(Prog1_Handle,WM_Close,0,0);
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
telekommander

Registriert seit: 8. Jul 2004
2 Beiträge
 
#5

Re: mausklicks vollkommen ignorieren ??

  Alt 11. Jul 2004, 00:31
danke das mit windows style csNone hat damit ncihts zutun, das ist ja sowieso, aber danke funktioniert prima
Schuldigung, achja, ich schreib jetzt auch mal lieber Groß und klein

machts gut !
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:33 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