zeroblue2005

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?
Share on Facebook
Share on X (Twitter)
Share on Reddit
Share on Linkedin

Content-ID: 611865

Url: https://administrator.de/forum/minimierte-access-anwendung-mit-batch-in-den-vordergrund-holen-611865.html

Printed on: June 20, 2025 at 06:06 o'clock

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
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
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?
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 ...
zeroblue2005
zeroblue2005 Oct 11, 2020 at 09:16:34 (UTC)
Goto Top
Herzlichen Dank, läuft.
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