10/06/25 00:47:40 mSLJKvLX
PowerShell ISE さん
さすがだ
251:名無し~3.EXE
10/06/25 20:43:54 0/U66yua
URLリンク(journal.mycom.co.jp)
-join と -ReadCount はもっと評価されるべき
type address.txt -r 5 | % { $_ -join "," }
252:名無し~3.EXE
10/06/27 09:09:08 JCAKYY/N
Get-Location と
[System.IO.Directory]::GetCurrentDirectory() は、
値違うんですね。
と言うか、PowerShellで Set-Location しても、
System.IO.Directory で管理しているカレントディレクトリは変更しない、
と言うべきかな。
IO.StreamWriter 調べていて気がついた、です。
253:名無し~3.EXE
10/06/27 12:48:20 K3nSxfR1
>>252
リネームするために FileInfo#MoveTo 使ったら痛い目にあったことあり
254:名無し~3.EXE
10/06/29 22:56:22 dyF8Lcp7
VistaのWindows UpdateにPowershell 2.0が来てる
255:名無し~3.EXE
10/07/06 00:31:42 kPA7wvIt
暇なんで、作ってみますた
[void][Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
[void][Reflection.Assembly]::LoadWithPartialName("System.Runtime.InteropServices")
function New-PType() {
$assembly_name = New-Object Reflection.AssemblyName 'PInvokeAssembly'
$dd_assembly = [AppDomain]::CurrentDomain.DefineDynamicAssembly($assembly_name, 'Run')
$dd_module = $dd_assembly.DefineDynamicModule('PInvokeModule')
return $dd_module.DefineType('PInvokeType', "Public,BeforeFieldInit")
}
function New-PMethod([string]$dllName, [Type]$returnType, [string]$methodName, [Type[]]$parameterTypes){
$ptype = New-PType
$d_method = $ptype.DefineMethod($methodName, 'Public,HideBySig,Static,PinvokeImpl', $returnType, $parameterTypes)
$constructor = [Runtime.InteropServices.DllImportAttribute].GetConstructor([string])
$attrbute = New-Object Reflection.Emit.CustomAttributeBuilder $constructor, $dllName
$d_method.SetCustomAttribute($attrbute)
$type = $ptype.CreateType()
$type = Add-Member -InputObject $type -MemberType NoteProperty -Name MethodName -Value $methodname -passthru
$invoke = {return $this.InvokeMember($this.MethodName, 'Public,Static,InvokeMethod', $null, $null, $args[0])}
Add-Member -InputObject $type -MemberType ScriptMethod -Name Invoke -Value $invoke
return $type
}
$ptc = @'
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int x;
public int y;
}
'@
256:名無し~3.EXE
10/07/06 00:32:35 kPA7wvIt
続き
Add-Type -TypeDefinition $ptc
$WindowFromPoint = New-PMethod "user32.dll" ([Int32]) "WindowFromPoint" @([POINT])
$PostMessage = New-PMethod "user32.dll" ([Int32]) "PostMessage" @([Int32],[Int32],[Int32],[Int32])
$GetAncestor = New-PMethod "user32.dll" ([Int32]) "GetAncestor" @([Int32],[Int32])
$pt = New-Object POINT; $ptb = New-Object POINT
while($true){
$pt.x= [System.Windows.Forms.Cursor]::Position.x
$pt.y= [System.Windows.Forms.Cursor]::Position.y
start-sleep -m 50
if(($pt.x -ne $ptb.x) -or ($pt.y -ne $ptb.y )){
$ptb.x=$pt.x; $ptb.y=$pt.y
$hwd = $WindowFromPoint.Invoke([POINT]$ptb)
$ohwd = $GetAncestor.Invoke(@([int32]$hwd ,[int32]3))
$t = Get-Process | ? { $_.MainWindowHandle -eq $ohwd}
"x="+$ptb.x+":y="+$ptb.y+" ハンドル"+$hwd+" 親ハンドル"+$ohwd+": "+$t.MainWindowTitle
#コントロールをクリック
#$PostMessage.Invoke(@([int32]$hwd ,[int32]0x201,[int32]0,[int32]0)) | out-null
#$PostMessage.Invoke(@([int32]$hwd ,[int32]0x202,[int32]0,[int32]0)) | out-null
}
}
257:名無し~3.EXE
10/07/06 13:20:47 Z4Ex5Sa1
テキストファイルの行数は.lengthで獲得できるけど
エクセルファイルで何列目の何行まで使っているか、はどうやれば獲得できるのかな
>>239みてて思った
258:名無し~3.EXE
10/07/06 22:09:06 KuRfnHZn
[Enum]::GetValues([IO.FileAttributes]) | select {$_},{[int]$_}
は動くのに
[Enum]::GetValues([IO.FileAttributes]) | select {$_},{[int]$_} | ogv
が動かないのをなんとかしる
select の引数をまじめに書く
[Enum]::GetValues([IO.FileAttributes]) | select @{Name="Name";Expression={$_}},@{Name="Value";Expression={[int]$_}} | ogv
は面倒だからやだ
259:名無しさん@そうだ選挙に行こう
10/07/10 04:50:45 c2m5VYAj
$ie.document.parentWindow が null になるんだけどなんでだろう
260:名無しさん@そうだ選挙に行こう
10/07/11 21:36:31 8wpZODee
>>258
Select-Object -Property の引数を PropertyPath の XAML 構文としてパースした場合エラーになるって言うのは
PowerShell の構文をどうにかしない限りどうしようも無いと思うが。
今回は↓で回避できるけど、Out-GridView 呼び出しまで含めてラッパ作っちゃった方が早いんじゃね。
[Enum]::GetValues([IO.FileAttributes]) | select {$_},{,([int]$_)} | ogv
261:名無しさん@そうだ選挙に行こう
10/07/11 21:44:56 Y0LxWDlI
>>260
エラーは出ないけれども ([int]$_) の値が表示されないよ
262:名無しさん@そうだ選挙に行こう
10/07/11 21:50:25 8wpZODee
>>261
カンマを付け忘れてる
263:名無しさん@そうだ選挙に行こう
10/07/11 22:04:21 Y0LxWDlI
おお、表示できた
難易度高いわ
264:名無し~3.EXE
10/07/13 16:17:31 viaEAdkS
>難易度高いわ
難度高いわ
265:名無し~3.EXE
10/07/16 01:02:23 nQrufqp5
>>86
とりあえず、はっときます
param($q)
[object[]]$url
if($q -eq $null){$q = "米 味噌"}
$ie = new-object -com internetexplorer.application
$ie.navigate("URLリンク(google.co.jp)")
while($ie.busy){start-sleep -m 50}
while($ie.Document.readyState -ne "complete"){start-sleep -m 50}
$ied = $ie.document
@($ied.getElementsByName("q"))[0].value = $q
@($ied.getElementsByName("btnG"))[0].click()
while($ied.readyState -ne "complete"){start-sleep -m 50}
$doc = @(($ied.getElementById("res")).getElementsByTagName("OL"))[0].innerHTML
if( ($nav=$ied.getElementById("nav")) -ne $null){
$nav.getElementsByTagName("td") | % { if(($_.cellIndex -gt 1) `
-and ( $_.cellIndex -le (@($nav.getElementsByTagName("td")).length -2)) ){ $url += @($_.firstChild.href) }}
foreach($u in $url){
$ie.navigate($u)
while($ied.readyState -ne "complete"){start-sleep -m 50}
$doc = $doc + @(($ied.getElementById("res")).getElementsByTagName("OL"))[0].innerHTML
}
}
$doc = "<ol>"+$doc+"</ol>"
convertTo-Html -body $doc -Title "検索" > get2.html
$ied.write($doc)
$ie.visible = $true
266:名無し~3.EXE
10/07/16 01:05:45 nQrufqp5
100件なら 検索おぷしょんで設定した方が早いような 藁
こっちは検索数バー所運
param($q)
#qcは検索数各自書き換えてください。
$qc = 50
if($q -eq $null){$q = "米 味噌"}
$ie = new-object -com internetexplorer.application
$ie.navigate("URLリンク(google.co.jp)")
while($ie.busy){start-sleep -m 50}
while($ie.Document.readyState -ne "complete"){start-sleep -m 50}
$ied = $ie.document
@($ied.getElementsByName("q"))[0].value = $q
@($ied.getElementsByName("btnG"))[0].click()
while($ied.readyState -ne "complete"){start-sleep -m 50}
$qa = $ie.LocationURL
$doc = @(($ied.getElementById("res")).getElementsByTagName("OL"))[0].innerHTML
$iec = $ied.getElementById("nav")
$url = @($iec.getElementsByTagName("td"))[2].firstChild.href
if($qc -gt 10){
for($i=10;$i -lt $qc; $i += 10){
$ie.navigate($url.replace("start=10","start=$i"))
while($ied.readyState -ne "complete"){start-sleep -m 50}
$doc = $doc + @(($ied.getElementById("res")).getElementsByTagName("OL"))[0].innerHTML
}
}
$doc = "<ol>"+$doc+"</ol>"
convertTo-Html -body $doc -Title "検索" > get.html
$ied.write($doc)
$ie.visible = $true
267:名無し~3.EXE
10/07/16 01:28:45 DGgvO4Hx
タスクバーで点滅
268:名無し~3.EXE
10/07/16 19:58:08 nQrufqp5
自分で対処してください
269:名無し~3.EXE
10/07/17 02:33:51 Cx2mEIGQ
$ie.document.focus
270:名無し~3.EXE
10/07/18 16:19:47 MD6LitbG
"1" 個の引数を指定して "write" を呼び出し中に例外が発生しました: "種類が一致しません。"
271:名無し~3.EXE
10/07/18 19:22:55 1jb4hW0g
>>259
PowerShellでは、MTAで、$ie.document.parentwindowが見えない。
URLリンク(scripting.cocolog-nifty.com)
272:名無し~3.EXE
10/07/18 23:53:42 9EcxcK/O
>>271
前置きの文章の流れがつかみにくい・・・
「STAでは見えます。なので、MTAならSTAで起動し直します。」
程度に削っちゃった方が「以下のコードがそのサンプルですよ」ってことが分かりやすいんじゃないかと思う
273:名無し~3.EXE
10/07/19 02:07:11 +L9wDm12
最近日本語が不自由でプログラム言語でしかしゃべれない人が増えてるから仕方ない
274:名無し~3.EXE
10/07/20 01:21:36 Vkd1I8kA
日本語が相手にされてない
275:名無し~3.EXE
10/07/23 00:16:24 1K/4j0hr
([System.AppDomain]::CurrentDomain.GetAssemblies())[2].gettypes()|
? {($_.namespace -like "*net*") -and ($_.basetype -like "*enum*") -and ($_.IsPublic -eq $true) } |
%{@("##$_.name##")+([Enum]::GetValues((Invoke-Expression "[$_]")))} | select {$_},{,([int]$_)} | ogv
なんか、ぱわーセルのパイプは面毒せーな~
276:名無し~3.EXE
10/07/23 02:20:20 x1KXUDuh
>>275
そんな丁寧に書かんでもいい気がするが、かえって見づらくない?
[AppDomain]::CurrentDomain.GetAssemblies()[2].gettypes() |
? { $_.namespace -like "*net*" -and $_.IsEnum -and $_.IsPublic } |
% { "##$_##"; $_.GetEnumValues()} | select {$_},{,([int]$_)} | ogv
277:名無し~3.EXE
10/07/23 23:07:53 rVRWb7I9
()で括るのは、昔からの癖です