![]() |
ShellExecute() - bei Rückkehr zum Ur-Fensterist die Reihenfolge in TaskBar verschoben
Liste der Anhänge anzeigen (Anzahl: 1)
[ Delphi 5, Win 7 ]
Hi, ist für mich leider nicht so ganz einfach zu beschreiben, aber ich versuche es mal. Ich schreibe gerade ein älteres Programm von mir nochmal vollkommen neu (from Scratch 8) und den ShellExecuteBefehl verwende ich wie immer.
Delphi-Quellcode:
Doch in meiner neuen Version wird notepad zwar auch korrekt aufgerufen und angezeigt, allerdings , wenn ich npp (oder andere so aufgerufene Programme) wieder schließe, zeigt sich plötzlich nicht mehr MEIN PROGRAMM, sondern es sind 5 weitere Programme in der TaskSwitch nach oben und links gerutscht, sodaß ich erst 5x ALT + TAB drücken muß, um wieder zu meinem Programm zu kommen.
ProgPFAD := 'D:\npp\notepad++.exe';
Pfadname := 'E:\hello.cpp'; ShellExecute(0, 'open', pchar(ProgPFAD), PChar(AnsiQuotedStr(Pfadname, '"')), PChar(ExtractFileDir(Application.Exename)), SW_SHOW); // 29.01.2008 - 11.18-49 Das war früher nicht so. Da hatte ich einfach das "executete" Programm wieder geschlossen, und sofort hatte mein Programm wieder den Focus. Hat jemand eine Idee, warum das sein kann? Ich verwende immer noch Delphi5 und Windows 7. OK, klar MS-Updates sind eingespielt worden. auf dem Screenshot, zeigt sich nach Execute normal mein Programm an Platz (2), auf (1) ist das ausgeführte Programm in der TaskSwitch. doch wie oben angesprochen befindet sich mein Programm jetzt OFT weiter hinten in der Reihenfolge auf (3) Nicht immer, aber unregelmäßig manchmal. Nur Warum? Ich hoffe, ich konnte das einigermaßen verständlich beschreiben und jemand hat eine Idee, warum das so ist.. wäre wirklich hilfreich - wegen der Ergonomie im Programmablauf. Danke schon mal |
AW: ShellExecute() - bei Rückkehr zum Ur-Fensterist die Reihenfolge in TaskBar versch
Falls das Problem noch besteht (zumindest tut es das noch laut deiner Signatur):
Du könntest im Code auf das Beenden von Notepad warten und danach dein eigenes Programm selbst in den Vordergrund setzen. |
AW: ShellExecute() - bei Rückkehr zum Ur-Fensterist die Reihenfolge in TaskBar versch
Hiermit könnte es funktionieren:
Delphi-Quellcode:
und so Aufrufen
procedure RunAndWait(const Executable, Parameter: string);
var tmpStartupInfo: TStartupInfo; tmpProcessInformation: TProcessInformation; tmpProcHandle: Cardinal; begin FillChar(tmpStartupInfo, SizeOf(tmpStartupInfo), 0); with tmpStartupInfo do begin cb := SizeOf(TStartupInfo); wShowWindow := SW_SHOW; end; Application.Minimize; CreateProcess(PChar(Executable),PChar(Parameter),Nil,Nil,False,CREATE_NO_WINDOW, nil,nil,tmpStartupInfo,tmpProcessInformation); tmpProcHandle:= tmpProcessInformation.hProcess; WaitForSingleObject(tmpProcHandle, INFINITE); Application.Restore; end;
Delphi-Quellcode:
@Admins, das Problem bestand immer noch (wegen 2015)
RunAndWait('D:\npp\notepad++.exe','E:\hello.cpp');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz