AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

anderes Programm beenden

Ein Thema von Gambit · begonnen am 9. Feb 2005 · letzter Beitrag vom 22. Feb 2019
Antwort Antwort
Seite 3 von 4     123 4   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#21

Re: anderes Programm beenden

  Alt 12. Feb 2005, 16:02
Ist bei mir nicht drinne: Delphi 6 Personal.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#22

Re: anderes Programm beenden

  Alt 12. Feb 2005, 16:08
Bei mir schon, ist aber glaube ich auch nicht wirklich ne API Funktion...wirst wohl recht haben...
eine Frage noch Luckie, wenn ich durch Klicken auf ein inaktives Fenster dem Fenster den Focus gebe, wird dann auch ne Windows Botschaft gesendet bzw. welche?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#23

Re: anderes Programm beenden

  Alt 12. Feb 2005, 16:11
an das Fenster: WM_ACTIVATE und wohl noch WM_PAINT und WM_NCPAINT, Das dürften die wichtigsten sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#24

Re: anderes Programm beenden

  Alt 12. Feb 2005, 16:24
Zitat von Gambit:
wenn ich durch Klicken auf ein inaktives Fenster dem Fenster den Focus gebe, wird dann auch ne Windows Botschaft gesendet bzw. welche?
Um ein Fenster in den Vordergrund zu holen, bietet Windows dir API Funktionen an. Also nicht mit SendMessage versuchen.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#25

Re: anderes Programm beenden

  Alt 12. Feb 2005, 16:41
Zitat von Sprint:
[...bietet Windows dir API Funktionen an. Also nicht mit SendMessage versuchen.
Jau, habe ich auch gerade erfahren müssen...magst du mir die API-Funktion sagen?

So würde es gehen...zumindest versuchsweise...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  AppHWnd: HWND;
begin

  AppHWnd := FindWindow(nil, 'Unbenannt - Editor');
  if IsWindow(AppHWnd) then
    BringWindowToTop(AppHWnd)else ShowMessage('Pech gehabt')
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#26

Re: anderes Programm beenden

  Alt 12. Feb 2005, 16:58
Irgendwann mal war es BringWindowToTop. Dann SetForegroundWindow. Mit der Einführung von IE4, ging es nur noch, wenn du du dich in den Thread eingehackt hast. Kann das Verhalten von den Microsoft Entwicklern irgendwie nicht nachvollziehen. Aber die werden sich bestimmt etwas dabei gedacht haben.

Delphi-Quellcode:
procedure TTaskMgrForm.ForceSetForegroundWindow(AHandle: HWND);
var
  AppHWnd: HWND;
  AppThreadId: DWORD;
  ThisThreadId: DWORD;
  TimeOut: DWORD;
begin

  if GetForegroundWindow <> AHandle then
  begin
    BringWindowToTop(AHandle);
    SetForegroundWindow(AHandle);
    AppHWnd := GetForegroundWindow;
    if AppHWnd <> AHandle then
    begin
      AppThreadId := GetWindowThreadProcessId(AppHWnd, nil);
      ThisThreadId := GetCurrentThreadId;
      if (AppThreadId <> 0) and (ThisThreadId <> 0) then
      begin
        if AttachThreadInput(ThisThreadId, AppThreadId, True) then
        begin
          BringWindowToTop(AHandle);
          SetForegroundWindow(AHandle);
          AttachThreadInput(ThisThreadId, AppThreadId, False);
        end;
        if GetForegroundWindow <> AHandle then
        begin
          SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @TimeOut, 0);
          SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0), SPIF_SENDCHANGE);
          BringWindowToTop(AHandle);
          SetForegroundWindow(AHandle);
          SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(TimeOut), SPIF_SENDCHANGE);
        end;
      end;
    end;
  end;

end;
Hab ich jetzt so aus einem alten Projekt kopiert. Sollte aber immer noch funktionieren.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#27

Re: anderes Programm beenden

  Alt 12. Feb 2005, 17:02
Super, Danke!!

Und schönes Wochenende noch...

Gambit
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#28

Re: anderes Programm beenden

  Alt 12. Feb 2005, 18:51
Shit, geht doch nicht, weil Premiere je nach Projekt seinen Fenstertitel ändert...

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#29

Re: anderes Programm beenden

  Alt 12. Feb 2005, 22:30
Zitat von Gambit:
Shit, geht doch nicht, weil Premiere je nach Projekt seinen Fenstertitel ändert...
Aber du kannst immer noch per Klassenname suchen.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#30

Re: anderes Programm beenden

  Alt 12. Feb 2005, 23:55
Tja, da bin ich wieder dumm...bei STunnel hast du ja für den Klassennamen das Gleiche verwendet wie für den Fenstertitel. Bei Notepad beispielsweise klappt es, wenn ich als Klassenname nur 'notepad' eingebe.
Wie bekomme ich denn den Klassennamen heraus?

Gruß

Gambit
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:01 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