PowerShell -Part 3

■ このスレッドは過去ログ倉庫に格納されています
2018/10/09(火) 17:46:48.32ID:G4IJkzod
前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
2018/10/09(火) 18:49:55.04ID:iKGY38Kd
2
2018/10/09(火) 18:50:04.08ID:iKGY38Kd
3
2018/10/09(火) 19:38:35.78ID:cxSCuSqU
>>1
相変わらず潔いテンプレやね
2018/10/09(火) 22:51:28.21ID:o672s7jN
全スレの>>1000って何?
恐くて実行できない
2018/10/09(火) 22:55:38.49ID:06HomXwK
>>5
それくらい読めるだろ?
2018/10/09(火) 23:04:36.73ID:VXCTyrZC
@(1..1000; "complete!") -join " "
2018/10/10(水) 00:49:14.45ID:WXc1B6yp
>>5
実行してもツラツラと数字が表示されるだけ
作った本人だがセンスの無さが絶望的だと思う
2018/10/10(水) 13:22:57.24ID:mDHS4zfs
$popuko='';do{Write-Host ($pipimi = ($pptp = 'ポ', 'プ', 'テ', 'ピピック')[(Get-Random -Maximum 4)]) -No; $popuko += $pipimi; sleep -m 10}while($popuko -notmatch "ポプテピピック");"`r`n竹書房ゥァア゛ーッ"
2018/10/10(水) 18:48:47.75ID:EqFs8WH9
全部縦書きで出したほうがらしいきもする
2018/10/10(水) 20:26:48.74ID:l/74Fmoa
本日ハマったこと
下記スクリプトがWin10上でのv2環境ではエラーになる。5.1環境ならもちろん問題なし

$URL = "適当なURL"
$Client = New-Object System.Net.WebClient
$URL.split('/')|%{$Fname=$_}
$Of = Join-Path (Split-Path $MyInvocation.MyCommand.Path) -ChildPath $Fname
$Client.DownloadFile($URL, $Of)

さんざん悩んだが旧OSの実機で検証したら問題なし
Win10のv2環境は実機と動作が違うんだね…
2018/10/10(水) 20:31:23.38ID:DTc0bT+8
WebClientってたしかブラウザ依存じゃなかったか
13デフォルトの名無しさん
垢版 |
2018/10/10(水) 20:49:55.87ID:e4JT9uU/
パワーシェルからプログラムを呼び出してsendkeyでキーを送りたいのですが
呼び出したプログラムをターゲットウィンドウ固定にできないでしょうか

たとえばnotepadを呼び出してキーを送ろうとしても別ウィンドウクリックしてしまうと別ウィンドウにキーが送られてしまいます
2018/10/10(水) 21:00:38.57ID:Vh016oEU
そもそもSendkeyでやることじゃない気がするぞ
15デフォルトの名無しさん
垢版 |
2018/10/10(水) 21:19:54.19ID:e4JT9uU/
んなこときーてねえんだが
2018/10/10(水) 21:26:48.73ID:PNSFIUfW
豹変した!
2018/10/10(水) 21:29:15.76ID:Vh016oEU
豹変してて草

Sendkeyなんていう不安定なものを使う意図が本当に分からん
2018/10/10(水) 21:33:58.33ID:KxybdFNG
RPAをPowerShellでやろうってことだろ
2018/10/10(水) 21:55:05.74ID:WXc1B6yp
add-type -AssemblyName microsoft.VisualBasic
$process = Get-Process |? {$_.MainWindowTitle -match "(探したいウィンドウタイトル)"}
[Microsoft.VisualBasic.Interaction]::AppActivate($process.ID)

とかやっとけば良くね?
PowerShell Coreじゃ動かんけどね
2018/10/10(水) 21:58:14.41ID:u0QSMs+t
RPAとか言い出すとほぼCoreで動かない物が出来上がりそう
2018/10/10(水) 21:59:28.00ID:EqFs8WH9
vista以降だとタスクバーペカるだけで最前面に来ないんよね
スクリプト手動実行なら動くんやけどさ
2018/10/10(水) 22:38:55.64ID:l/74Fmoa
Appactivateって結局そのウィンドウフォアグラウンドになるんでは?
背面のアプリに文字入力したいならいずれにせよSendkeysではムリ、
UWSCとかだとsenfstr(ID
,"文字列")とかで出来る
2018/10/10(水) 22:40:28.02ID:l/74Fmoa
Powershell用だと UI Autmation Extentionを使えば出来るのかも。試してはいないが
24デフォルトの名無しさん
垢版 |
2018/10/10(水) 22:46:11.90ID:e4JT9uU/
外部ソフトではなく、ウィンドウズ標準が良いです
なのでvbsでも良いですが
もしくはフォーカスでなくても常に最前面表示とかでもキー送れるのかな
2018/10/10(水) 23:14:15.15ID:DK5DBWJW
alt+tab
2018/10/11(木) 00:16:15.07ID:fgwsjZre
$code = @'
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
'@
Add-Type $code -Name Utils -Namespace Win32
Add-Type -AssemblyName System.Windows.Forms

if($ps = Get-Process|? {$_.MainWindowTitle -like "*メモ帳"}|Select-Object -First 1){
do{
[System.Windows.Forms.SendKeys]::SendWait("%+{TAB}")
Start-Sleep -m 100
$hwnd = [Win32.Utils]::GetForegroundWindow()
}while($hwnd -ne $ps.MainWindowHandle)
}

こんな感じ?
2018/10/11(木) 16:11:44.71ID:Jfs/paLB
Powershell使いこなすにはC#の知識にも手を出さないとダメかな
.NET使う時点でライブラリの知識いるけど

プロググラム経験無い自分には結構大変だわ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況