两个问题,
第一个,一个复杂的脚本如何改成一句命令发出?每句话用分号隔开还好说。像比较复杂的。如如下代码怎么改?
第二次,如下代码本意是把“未命名 - Notepad”的窗口隐藏或显示出来。存成xx.ps1脚本后,运行毫无反应是怎么回事。
$definition = @"
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public static void Show(string wClass, string wName)
{
IntPtr hwnd = FindWindow(wClass, wName);
if ((int)hwnd > 0)
ShowWindow(hwnd, 1);
}
public static void Hide(string wClass, string wName)
{
IntPtr hwnd = FindWindow(wClass, wName);
if ((int)hwnd > 0)
ShowWindow(hwnd, 0);
}
"@
add-type -MemberDefinition $definition -Namespace my -Name WinApi
[my.WinApi]::Show('Notepad', '未命名 - Notepad')
第一个,一个复杂的脚本如何改成一句命令发出?每句话用分号隔开还好说。像比较复杂的。如如下代码怎么改?
第二次,如下代码本意是把“未命名 - Notepad”的窗口隐藏或显示出来。存成xx.ps1脚本后,运行毫无反应是怎么回事。
$definition = @"
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public static void Show(string wClass, string wName)
{
IntPtr hwnd = FindWindow(wClass, wName);
if ((int)hwnd > 0)
ShowWindow(hwnd, 1);
}
public static void Hide(string wClass, string wName)
{
IntPtr hwnd = FindWindow(wClass, wName);
if ((int)hwnd > 0)
ShowWindow(hwnd, 0);
}
"@
add-type -MemberDefinition $definition -Namespace my -Name WinApi
[my.WinApi]::Show('Notepad', '未命名 - Notepad')