zeroblue2005
Goto Top

Minimierte Access Anwendung mit Batch in den Vordergrund holen

Hallo Zusammen,

wie der Titel schon sagt, möchte mit einem Skript, dass wiederum Bestandteil eines Main-Script ist, eine minimierte Access-Anwendung (Fenstertitel) einfach nur von der Taskleiste maximiert wiederherstellen, starten bzw. in den Fokus holen.

Hat jemand eine Idee?

Content-Key: 611865

Url: https://administrator.de/contentid/611865

Printed on: April 26, 2024 at 05:04 o'clock

Member: rubberman
Solution rubberman Oct 10, 2020, updated at Oct 11, 2020 at 10:54:34 (UTC)
Goto Top
Mit Batch pur nicht. PowerShell schon eher. Kannst maximal beides miteinander verwursten.
@echo off &setlocal

call :init_window_to_foreground

%window_to_foreground% 3 "dein Fenstertitel hier"  
echo %errorlevel%

pause
exit /b


:init_window_to_foreground
setlocal DisableDelayedExpansion
set window_to_foreground=for %%i in (1 2) do if %%i==2 (^
%=% for /f "tokens=1*" %%j in ("^^!arg^^!") do powershell.exe  -nop -ep Bypass -c ^"try{$c=Add-Type -Name pInv -PassThru -MemberDefinition '^  
%=====% [DllImport(\"user32.dll\")] public static extern IntPtr FindWindow(IntPtr lpClassName, string lpWindowName);^  
%=====% [DllImport(\"user32.dll\")] public static extern int ShowWindow(IntPtr hWnd, int nCmdShow);^  
%=====% [DllImport(\"user32.dll\")] public static extern int SetForegroundWindow(IntPtr hwnd);';^  
%=====% $hwnd = $c::FindWindow([IntPtr]::Zero,\"%%~k\");^  
%=====% $null = $c::ShowWindow($hwnd,%%~j);^
%=====% exit [int]($c::SetForegroundWindow($hwnd) -eq 0);}catch{exit 1;}^"^&endlocal^  
%=% ) else setlocal EnableDelayedExpansion^&set arg=

endlocal&set "window_to_foreground=%window_to_foreground%"  
if !!# neq # set "window_to_foreground=%window_to_foreground:^^=%" 
exit /b
Für das 1. Argument siehe nCmdShow hier: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sh ...

Steffen
Member: em-pie
em-pie Oct 11, 2020 at 07:01:29 (UTC)
Goto Top
Moin,

Ein kleines AutoIT-Script wäre auch denkbar. Wobei man hier evtl. vorhandene AV-Software im Auge behalten muss.

Gruß
em-pie
Member: zeroblue2005
zeroblue2005 Oct 11, 2020 at 07:39:36 (UTC)
Goto Top
Hallo Rubberman,

genau so brauche ich das. Vielen Dank dafür. Gibt es auch einen Schalter für geöffnet in Max. Fenster und alte Position wieder herstellen?
Mitglied: 146189
Solution 146189 Oct 11, 2020 updated at 08:43:22 (UTC)
Goto Top
Zweiter Parameter von ShowWindow ist dein Freund

Eine 3 wenn es maximiert werden soll, eine 9 wenn es in Originalposition wiederhergestellt werden soll
$c::ShowWindow($hwnd,3);
bzw.
$c::ShowWindow($hwnd,9);

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sh ...
Member: zeroblue2005
zeroblue2005 Oct 11, 2020 at 09:16:34 (UTC)
Goto Top
Herzlichen Dank, läuft.
Member: rubberman
rubberman Oct 11, 2020 at 10:44:36 (UTC)
Goto Top
Hab das Script oben angepasst, sodass du auch das über ein Argument spezifizieren kannst.

Steffen