Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm "Deaktivieren" (https://www.delphipraxis.net/17115-programm-deaktivieren.html)

S2B 28. Feb 2004 14:11


Programm "Deaktivieren"
 
Hallo alle zusammen,
ich habe ein kleines Problem, aber ich bin sicher, dass ihr das mir links bewältigt:
Ich möchte das Fenster, das aktiviert war, bevor ich meine Anwendung geöffnet habe, wieder in den Vordergrund bringen. Gibt es da irgendeinen Code dafür?
Vielen Dank schon mal für die Antworten
S2B

Skiron 28. Feb 2004 14:53

Re: Programm "Deaktivieren"
 
ich bin nicht sicher, obs geht, aber versuch mal ein Alt+Tab zu simulieren
du kannst aber auch deine Eigene Anwendung einfach nur minimieren

S2B 28. Feb 2004 15:13

Re: Programm "Deaktivieren"
 
@Skiron:
Vielen Dank, dass du so schnell geantwortet hast! Irgendwie funzt das mit dem minimieren nicht ganz oder es liegt an etwas ganz anderem!? Ich hab nämlich erst vor kurzem angefangen, zu programmieren. Ich schick einfach mal den Code:

Delphi-Quellcode:
var hWnd: DWORD;

procedure TForm1.FormCreate(Sender: TObject);
begin
  application.Minimize;
  hWnd:=GetNextWindow(hWnd, GW_HWNDNEXT);
  application.Restore;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_F10
  then SendMessage(hWnd, WS_EX_TOPMOST, 0, 0);
end;
Ich hab keine Ahnung, was falsch sein könnte(bin ja auch noch nicht so erfahren :-D)!
Ich freue mich über Antworten
S2B

[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]

fkerber 28. Feb 2004 19:33

Re: Programm "Deaktivieren"
 
HI!

Was willst du denn genau erreichen?
Und was geht nicht? Gibts Fehlermeldungen?

Ciao fkerber

S2B 28. Feb 2004 19:48

Re: Programm "Deaktivieren"
 
Ich möchte eigentlich die Anwendung, die vorher im Vordergrund lag, auf den ganzen Bildschirm gleichmäßig verteilen und die anderen minimieren! Nur um das zu erreichen brauche ich die Anwendung, die vorher lief. Das Problem ist nur, dass, wenn ich F10 drücke(siehe Code), die von mir programmierte Anwendung im Vordergrund bleibt und nicht z.B. Delphi in den Vordergrund kommt! Also wähle ich das vorherige Fenster irgentwie falsch aus!
Ich hoffe, du weißt da irgentwie weiter!
S2B

fkerber 28. Feb 2004 20:04

Re: Programm "Deaktivieren"
 
Hi!

Vielleicht liegt es auch an deiner SendMessage:

Schau mal hier und versuch es mit der Funktion:

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


Ciao fkerber

Luckie 28. Feb 2004 20:06

Re: Programm "Deaktivieren"
 
WS_EX_TOPMOST ist ein erweiterter Windows-Stil. Und keine Nachricht, die man mit SenMessage an irgend was verschicken könnte.
So geht es mehr oder weniger:
Delphi-Quellcode:
procedure TForm1.WndProc(var msg: TMessage);
var
  hWnd: THandle;
begin
  inherited;
  case msg.Msg of
    WM_ACTIVATE:
    begin
      if msg.WParam = WA_ACTIVE then
      begin
        hWnd := GetWindow(Handle, GW_HWNDPREV);
        SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE);
      end;
    end;
  end;
end;
Musst du wohl noch etwas darn rumfeilen.

S2B 28. Feb 2004 20:11

Re: Programm "Deaktivieren"
 
Danke für die Antworten. Ich werden den Code probierern. Bei MSDN hab ich auch schon rungesucht aber auf diese Seite bin ich noch nicht gekommen! Nochmal vielen Dank!
Cu S2B

S2B 28. Feb 2004 20:21

Re: Programm "Deaktivieren"
 
@Luckie: Ich verstehe deinen Code irgentwie gar nicht. Wie soll ich den in meine Anwendung einbauen(ich bin noch "Delphi-Anfänger")? Könntest du versuchen, ihn "anfängergerecht" zu erklären?
Schon mal danke und cu
S2B

S2B 28. Feb 2004 20:49

Re: Programm "Deaktivieren"
 
Ich hab noch ne allgemeine Frage zu diesen Codes mit dem "_":
Was gibt es da für welche? Die, die ich verwendet hab, hab ich irgendwo im Internet zusammengesucht und ich hab ein paar von MSDN, da weiß ich aber nicht, wie man die verwenden soll. Bis jetzt hab ich nur "WM_CLOSE" hingekriegt(Ihr merkt, dass ich ein echter Anfänger auf diesem Gebiet bin. Sorry, dass ich solche Fragen stellen muss...).
Ich würde mich freuen, wenn sich einer erbarmt und die Frage beantwortet... :-D
S2B


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.
Seite 1 von 2  1 2      

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