[過去ログ] C#, C♯, C#相談室 Part95 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
772: (オッペケ Sr0b-RXZG) 2020/02/06(木)18:45 ID:ePr9F6TEr(2/6) AAS
> forでないと書けないってコードが汚いだけの場合が殆ど
そうは思わないけどw
773: (オッペケ Sr0b-RXZG) 2020/02/06(木)18:54 ID:ePr9F6TEr(3/6) AAS
>>769
これも一見もっともそうなことを書いてるけどよく見ると変だよね
forでも書いてるならベンチ取る必要ない
774: (オッペケ Sr0b-RXZG) 2020/02/06(木)18:55 ID:ePr9F6TEr(4/6) AAS
linqでしか書けない人は最下層
forでしか書けない人はそのやや上
775: (ブーイモ MMbf-gAEv) 2020/02/06(木)19:33 ID:BIpKXfQOM(2/2) AAS
forでしか書かない人は使い物にならないおじいさん
無理してでもLINQでしか書かないのはまだまだ研鑽が足りない
意識しなくても自然とLINQになってるのが達人プログラマ
776(1): (ワッチョイ d701-3aYi) 2020/02/06(木)20:55 ID:WBT6cCNm0(1) AAS
POSTとかGETのレスポンス速度って、自分の回線速度と相手側のサーバー速度依存ですか?
プログラムの処理でコンマ数秒でも早くする方法ってあったりします?
777: (オッペケ Sr0b-RXZG) 2020/02/06(木)21:12 ID:ePr9F6TEr(5/6) AAS
普通はないよ
アメリカとかにPOSTして帰って来てるんだとしたらそもそも物理的な距離も問題になる
778: (オッペケ Sr0b-RXZG) 2020/02/06(木)21:16 ID:ePr9F6TEr(6/6) AAS
どうでもいいけど回線速度と言うのも変な表現だな
帯域依存だな
最初のレスポンス自体が帰ってくる速度は同じだけど取れる帯域が広いと早くダウンロードが終わる
779: (ワッチョイ d72f-ndoi) 2020/02/06(木)22:57 ID:O+zcmlkO0(1) AAS
ダウンロードの時間じゃなくてレスポンスの話だろ
帯域よりレイテンシのほうが問題だと思うが
780: (JP 0H4f-w9wO) 2020/02/07(金)08:11 ID:EMrYQo7/H(1) AAS
相手側のサーバーまで全部依存ですよね
ちなみに、普通にwebとかで見えてるサーバーは、必ずping返してくれるの?
781: (オッペケ Sr0b-glrA) 2020/02/07(金)12:33 ID:etaMDs5Yr(1) AAS
ping返さないサーバはいくらでもある
782: (アウウィフ FF9b-VM48) 2020/02/07(金)17:30 ID:PWhN+bN7F(1) AAS
>>776
htmlに埋め込まれてるアンカーを
バックグラウンドで先読みするタイプのブラウザがあった
評判は悪いみたいだが
783: (アウアウカー Sa6b-Za6j) 2020/02/07(金)20:27 ID:q5ptBTCZa(1) AAS
フォームデータなのに?
784: (ワッチョイ 571d-uqPE) 2020/02/07(金)23:07 ID:GxNDg+Fe0(1) AAS
【与沢翼】労働収入を高くしても無駄!税金でほとんど持っていかれますよ。
金持ちになるにはたった2つしか方法がない
動画リンク[YouTube]
【与沢翼】サラリーマンとして生きるのはリスクでしかない。従業員は創業者に
利用されているだけだということに気づきなさい
動画リンク[YouTube]
【与沢翼】「世の中は罠だらけ。これに気づかない人はカモにされ続ける。」【思考の革命】
省7
785: (ワッチョイ d735-oJhu) 2020/02/08(土)18:20 ID:0YppiA+B0(1/6) AAS
OS:Rasbian Stretch
ランタイム:Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1)
ソース:画像リンク[png]:i.imgur.com
パッケージ:画像リンク[png]:i.imgur.com
エラー:Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
Windowsでは正常に動作します。
エラーの原因と解決策を教えてください。
786: (ワッチョイ d735-oJhu) 2020/02/08(土)18:23 ID:0YppiA+B0(2/6) AAS
AngleSharpを入れるとこのエラーがでます。
AngleSharpを入れるとバイナリのフォルダにSystem.***という大量のDLLができます。
787(1): (ワッチョイ d735-oJhu) 2020/02/08(土)18:24 ID:0YppiA+B0(3/6) AAS
ターゲットは.NET Framework4.6.1です
788(1): (オッペケ Sr0b-RXZG) 2020/02/08(土)19:17 ID:1TiVu9qyr(1/3) AAS
>>787
Linux用には.Net Framework 4.6.1はないんじゃない?
.net coreと.net frameworkは別物
789: (ワッチョイ d735-oJhu) 2020/02/08(土)19:25 ID:0YppiA+B0(4/6) AAS
>>788
回答ありがとうございます。
Mono4.6.2と.NET Framework4.6.1は互換性ありませんか
790: (ワッチョイ d735-oJhu) 2020/02/08(土)19:31 ID:0YppiA+B0(5/6) AAS
AngleSharpを入れるとそれを使用しなくても関係ないところでエラーが出る理由がわかりませんね
791: (オッペケ Sr0b-RXZG) 2020/02/08(土)19:41 ID:1TiVu9qyr(2/3) AAS
バージョンがあってないからだろ
初心者向けのふらっとスレに行け
まず
.Netにはいろいろ種類があると言うことをしり特性を知れ
次に.net standardが何か調べろ
そして使いたいフレームワークが.net standardで何に当たるか調べろ
次にServicePointManager クラスが自分の使いたいフレームワークで使えるかどうかMSのサイトをみて調べろ
792: (ワッチョイ d735-oJhu) 2020/02/08(土)19:54 ID:0YppiA+B0(6/6) AAS
こちらの質問は却下します
793: (オッペケ Sr0b-RXZG) 2020/02/08(土)19:59 ID:1TiVu9qyr(3/3) AAS
standardというパワー綴り
794: (ワッチョイ de89-GUQA) 2020/02/13(木)11:12 ID:cLFC91tC0(1) AAS
startupでデフォルトのDB接続先でapp.CreatePerOwinContextを登録してるのだが
途中でDB接続先を変更出来たりしないですか?
コントローラーのOnActionExecutingでfilterContext.HttpContext.GetOwinContext().Set(wkUserManager);
で変更したんだが、他画面にいくとリセットされてるというか元が変わってないというか
795: (ワッチョイ 1f24-2Bv+) 2020/02/13(木)19:44 ID:o7NRbkWy0(1) AAS
ライブラリの話が出ているので自分も質問させて頂きたいんですが、SevenZipSharp(by squid-box)使ってる方いないでしょうか?
分割されたRAR5.0を解凍する際にファイルが壊れてる的なエラーが出て解凍できないことがあるのはバグでしょうか?(純正7Zipアプリでなら正常に解凍できるため実際には壊れていない)
どうやら1GB程以上の大きい分割ファイルだとそうなることが多いようで、数百MB程度の分割ファイルなら問題なく解凍は出来ます
単体のRARであれば1GB以上の巨大圧縮も解凍できるためメモリ周りのエラーと言う事でもなさそうなのですが
796(3): (ワッチョイ 477b-yNzz) 2020/02/15(土)13:09 ID:M9LrwgB50(1/7) AAS
TabControl上の『選択されていないTabPage上の』ボタンをプログラムからクリックしたいんだが、どうすればいいのだ?
試したことは以下。
((Button^)ctrl)->PerformClick(); // ボタンが見えてないと(ボタンのあるTabPageが選択されていないと)ClickEventが発生しない(以下※1)
((Button^)ctrl)->OnClick(gcnew EventArgs()); // protected なメソッドなので呼べない
((Button^)ctrl)->Click->DynamicInvoke(gcnew array<Object^>(2){ctrl,gcnew EventArgs()}); // C3918、データメンバではないため、マルチキャストデリゲートに直接アクセス出来ない
((Button^)ctrl)->Click(ctrl, gcnew EventArgs()); // C3718, Clickにraiseメソッドがないから駄目
環境
省6
797: (ワッチョイ 477b-yNzz) 2020/02/15(土)13:10 ID:M9LrwgB50(2/7) AAS
※1
書いてあることとはこちらの状況と合致しているわけでもないが、とにかく見えてないとPerformClickは動作しない。
> TabControl.TabPages コレクションに少なくとも1つの TabPage が含まれている場合
> (Click、DoubleClick、MouseDown、MouseUp、MouseHover、MouseEnter、MouseLeave、MouseMove)、
> TabControl クラスでは、次のイベントは発生しません。 コレクションに少なくとも1つの TabPage が存在し、
> ユーザーがタブコントロールのヘッダー (TabPage 名が表示される) と対話する場合、
> TabControl は適切なイベントを発生させます。
省8
798(1): (アウアウウー Sac3-+wK4) 2020/02/15(土)14:11 ID:D6Qol+wpa(1/4) AAS
>>796
表示されているかどうかの問題ではないと思う。
TabPageのコンテナ(およびその上のコントロール)はそのページが初めて
表示されるまで「作成」(CreateControl)されない仕様だった気が。
知らんけど
799(1): (ワッチョイ 477b-yNzz) 2020/02/15(土)14:34 ID:M9LrwgB50(3/7) AAS
>>798
過去一度でも表示されたことがあるか、なら、確実に一度は表示されている。(初期画面のタブなので)
そして一応、直前に表示した状況でも試してみたが、やはりPerformClickは反応しない。
(「スクリプト実行ボタン」と「スクリプトから押したいボタン」が同一TabControlの別ページにあるので、
タブを切り替えた直後に実行ボタンを押してみたが、駄目だった)
ただしその挙動は少し覚えがあるというか、
大量にコントロールを並べていて描画がもたつく場合、タブを切り替える毎に再描画している雰囲気はあるから、
省1
800(1): (ワッチョイ d201-b83C) 2020/02/15(土)15:26 ID:cTwFsuY/0(1/2) AAS
リファレンスには書いてないっぽいけど
ControlのCanSelectがtrueじゃないとPerformClick()はイベントを発生させない
外部リンク:referencesource.microsoft.com
ボタン側を拡張したりボタンが呼び出してるメソッドを直接呼べない状況なら
素直にTabをSelectする以外にないんじゃないかな
801(1): (ワッチョイ d201-b83C) 2020/02/15(土)15:33 ID:cTwFsuY/0(2/2) AAS
InvokeOnClick()呼べる?
こっちなら何もチェックしてないっぽいけど
802: (ブーイモ MM0e-BzDP) 2020/02/15(土)15:39 ID:px7CuDIEM(1) AAS
別にボタン押すとこまで律儀に再現しなくても良いよ
イベントハンドラかその中で呼んでるサービスを直接呼び出せばいい
803(2): (アウアウウー Sac3-+wK4) 2020/02/15(土)15:48 ID:D6Qol+wpa(2/4) AAS
AA省
804: (ワッチョイ 477b-yNzz) 2020/02/15(土)15:58 ID:M9LrwgB50(4/7) AAS
>>800
おお、ありがとう。
ググりまくりはしたが、ソースコードをチェックするという発想はなかった。
> このプロパティは、System.Windows.Forms.ControlStyles の Selectable 値が trueに設定されていて、
> 別のコントロールに含まれていて、コントロール自体が表示され、
> 有効になっていて、すべての親コントロールが表示され、有効になっている場合に true を返します。
> 外部リンク[8]:docs.microsoft.com
省7
805(1): (ワッチョイ 477b-yNzz) 2020/02/15(土)16:08 ID:M9LrwgB50(5/7) AAS
>>803
ありがとう。
ただ、リフレクションは嵌る原因になるので出来る限り回避している。理由は以下。
・C#ならさておき、VC++だとググッてもヒットしない。
・ならば勿論C#を参考にするわけだが、本来同じCLRでMSILなので全く同一の筈なのだが、
何故か一部異なっていたりして、そこで嵌る。(というか嵌ったことがある)
勿論使ってはいるが。
省1
806: (アウアウエー Saaa-BzDP) 2020/02/15(土)16:16 ID:ZLgOs4gBa(1/2) AAS
バッチ処理なのになんでFormsなんだ?
807(1): (ワッチョイ 639e-oFCC) 2020/02/15(土)16:45 ID:9gQJd/YW0(1) AAS
IEコンポーネントの代替品って何? ChromiumベースEdge のものは既に用意されてるの?
808(1): (アウアウウー Sac3-+wK4) 2020/02/15(土)17:23 ID:D6Qol+wpa(3/4) AAS
AA省
809(1): (ワッチョイ 477b-yNzz) 2020/02/15(土)17:54 ID:M9LrwgB50(6/7) AAS
>>808
さすがに動的に剥がすのは色々副作用が発生しそうで怖い。
今のところ以下のコードでやっている。このままか、>>803にするかのどちらかだと思う。
if (ctrl->Parent->GetType()->Name=="TabPage") ((TabControl^)ctrl->Parent->Parent)->SelectedTab = (TabPage^)ctrl->Parent;
((Button^)ctrl)->PerformClick();
キャストが入ってうざくなっているが、要はボタンの親のタブページをその都度選択(表示)させている。
これで動いている。ただしタブが勝手に切り替わるので知らなければギョッとする。
省5
810: (ワッチョイ 9294-E40k) 2020/02/15(土)17:56 ID:KAWVCWpT0(1) AAS
ボタンのコードを呼び出すのは駄目なの?
811: (ワッチョイ 477b-yNzz) 2020/02/15(土)18:28 ID:M9LrwgB50(7/7) AAS
>>809訂正
× TabControlが入れ子になっている場合
○ TabControl内にGroupBox等があり、そこにボタンがある場合
809のコードだと直接の親しか見てないので、
TabControl内のボタンは階層的に直接TabPageに貼られている必要がある。
そうでなければ親を再帰で辿るか、リフレクションするか、だろう。
812(2): (オッペケ Src7-oFCC) 2020/02/15(土)19:38 ID:VwQX+D5fr(1) AAS
馬鹿がこんがらがってるイメージ
ボタンクリックのイベントハンドラを表示
private void button1_Click(object sender, EventArgs e)
{
//
}
始めの{と終わりの}の間をすべて選択する
省3
813(1): (ブーイモ MM0e-BzDP) 2020/02/15(土)19:45 ID:nU62WrWUM(1) AAS
>>812
だよなあ
おそらく「ボタンを押すこと」が目的化してしまってる
クライアントの要件は多分そういうことじゃない
814(1): (アウアウウー Sac3-+wK4) 2020/02/15(土)20:31 ID:D6Qol+wpa(4/4) AAS
>>812
その程度の話なら既に指摘されてるよw
イベントハンドラは動的に変更されるかもしれないし、
ラムダ式や引数で与えられるデリゲートかもしれない。
だから普通質問者さんの問題意識は理解できると思うよw
イキってる君以外の人にはw
815(2): (アウアウエー Saaa-BzDP) 2020/02/15(土)22:59 ID:ZLgOs4gBa(2/2) AAS
>>814
その動的に変わるかもしれない処理とやらを抽出するだけだろ?
Form: btnFoo.Click += this.Model.Foo;
Model: void Foo() => _foo?.Invoke(); // _fooは動的に変化するかもしれない
スクリプト(オレオレマクロの文法がわからんから例としてpowershell)
$form = $AppHost.Container.Resolve("MyForm")
$form.Model.Foo()
省3
816(3): (アウアウウー Sac3-+wK4) 2020/02/16(日)00:18 ID:s243OsDZa(1/2) AAS
なんかもうバカの壁だねw
ボタンのクリックをシミュレートしたいというのは十分理解できる話だし、
それをなるべくそのまま表現できるようなコードを書きたい、という動機も
普通に理解できる話だと思うんだけど。
>>815的な発想の問題点は、
(1) プログラマの意図と実際のコードに乖離がある
(2) だから呼び出しているメソッドが今本当にButtonのイベントハンドラに登録されているものと
省5
817: (アウアウウー Sac3-+wK4) 2020/02/16(日)00:20 ID:s243OsDZa(2/2) AAS
>>813の人も思いっきり倒錯してるねw
818: (ブーイモ MM0e-BzDP) 2020/02/16(日)00:28 ID:lYNu13iwM(1/2) AAS
>>816
それより前の問題としてプログラマの意図がまず間違ってんだよ
魚をさばくのにノコギリでやろうとしてる状態
そこを正してからじゃないと話にならない
正さずにむりやり進めようとしてるからボタンクリックエミュレートなどという頭の悪い発想に固執する
挙げ句の果に画面上で見えてないと処理が走らない(涙)なんてバカバカしい罠にどハマリしちゃってるわけだ
はっきり言ってリフレクションはハマりやすいからダメだなんて言ってる場合じゃないよ
819(2): (ブーイモ MM0e-BzDP) 2020/02/16(日)00:38 ID:lYNu13iwM(2/2) AAS
だいたいクライアントのやりたいことは自社アプケーションのオートメーションサポートだろうよ
それを素人の思いつきレベルの発想でUIのオートメーションに目的をすり替えたのが運の尽きだわな
レイヤの考え方が全くわかってないアマチュアの設計だからすんなりうまく行くはずがないんだ
見えてないと発火しないこと以外にいったいどんな罠が潜んでるかわかったもんじゃない
俺が提案した方法ならUIインフラに依存しなくなるから実行時の安定性と罠が少ないぶん高い生産性が期待できる
820(1): (ワッチョイ d201-b83C) 2020/02/16(日)01:57 ID:iNVxJNOu0(1) AAS
アセンブリが自分や所属チーム/組織のコントロール下にないんじゃないのかな
違う理由かもしれないがそれと同じような制約下での話だと思われる
821: (ワッチョイ 8361-IGGe) 2020/02/16(日)03:27 ID:QSu9wuIh0(1) AAS
>>796
>GUIの画面をバッチ処理しようとしていて
UiPathとかAutoIt使いな。
822: (ワッチョイ c602-ZgUM) 2020/02/16(日)09:58 ID:as0AlWv60(1/2) AAS
>>820
そういうときはUIAutomationかWinAppDriverを使うといいよ
どうせこのあと要求がどんどん増えてボタンクリックだけじゃ済まなくなるんでしょ
あとで苦労するハックはやめてマイクロソフトが整備してる道具を使おう
823(2): (ワッチョイ 477b-yNzz) 2020/02/16(日)11:26 ID:j/dbz9ZG0(1/8) AAS
>>819
まあその「俺のプログラムが一番だ」という姿勢は俺は嫌いではないし、
むしろプログラマは全員持つべきだとも思うけども、
動的結合の価値(意味)が分からないのなら、まずはそこを理解した方がいい。
現在、Clickイベントをエミュレーション出来ないGUIフレームワークなんて、存在してない。
リフレクションも割と一般的になりつつある。(常用するのはどうかとも思うが)
だから、使いどころはあるんだよ。
省14
824: (ワッチョイ 477b-yNzz) 2020/02/16(日)11:28 ID:j/dbz9ZG0(2/8) AAS
>>816
俺も「仕様バグ」に近いものだとは思うが、おそらくMSはそう認識してないと思う。
理由は、.NETは比較的「仕様バグ」は少ない環境であり、これは、
・MSがガッツリ保守している
・バイナリ側がランタイムのバージョンを指定出来るので、改訂しやすい
為、「仕様バグ」を後方互換性の為に残す必然性がほぼ無いからだ。
少なくともobsolete(非推奨)にすることは簡単に出来るのだが、してない。
省10
825: (ワッチョイ 1ede-sep5) 2020/02/16(日)11:51 ID:4ZDOKfwJ0(1) AAS
>>823
なにこの
メソッドにすりゃいーじゃん
以上の意味を見いだせない機能
826(1): (ブーイモ MM32-BzDP) 2020/02/16(日)12:09 ID:qmeSH89zM(1) AAS
>>823
そのリンクの先はかなりクソコードだから鵜呑みにしないほうがいいぞ
まあ2005年の錆びついたものだしもともと低スキル向けの記事だからしょうがないけど
この記事の悪しき前提はViewに処理をベタ書きしちゃってることな
本来ならViewとModelを分離してView上のメニューとボタンからModelの同じメソッドをコールするのが正しい設計な
ViewとModelを分離してModelがViewに依存しなくなればModelをUIインフラから切り離して独立させることができる
そうすればオレオレスクリプトでオートメーションをサポートするといった要求にも容易に応えることができるようになる
省1
827(2): (ワッチョイ 477b-yNzz) 2020/02/16(日)13:03 ID:j/dbz9ZG0(3/8) AAS
>>826
このページのコードと用例が糞なのは事実として、エミュレーションが適切な場合もあるってことだよ。
だから現在の全てのGUIフレームワークはエミュレーション出来るようになってるし、
リフレクションも装備しつつある。
MとVを厳密に分離してVはMのラッパ扱いに留めろ、というのは現在の思想としては正しいとして、
2005頃には今ほど言われていなかった、というより、そのころの失敗を経て現在の思想があるわけだから、
このページに対してそれを言ってもしょうがない。
省5
828: (ワッチョイ 37de-sep5) 2020/02/16(日)13:23 ID:If0Pwz/d0(1/2) AAS
>>827
ウンコをいじる正当性を探すな
829(1): (ワッチョイ 477b-yNzz) 2020/02/16(日)14:00 ID:j/dbz9ZG0(4/8) AAS
エミュレーションの有用性が分からないのは根本的に経験が足りない。
何故現在の全てのGUIフレームワークがその機能を持っているのか、その意味をよく考えた方がいい。
そしてそのレベルの奴がコードの善し悪しを議論するのは5年早い。
ただ、このレベルの初心者と話をしても意味がないから俺はやる気無い。
お前らが正しいのなら、MSは数年以内に.NETからエミュレーション機能、
つまりPerformClick/OnClick/リフレクション等を全削除することになるが、
俺はこれはあり得ないとしか思えない。
省2
830: (ワッチョイ 37de-sep5) 2020/02/16(日)14:16 ID:If0Pwz/d0(2/2) AAS
こんなクダンネーモン作ってる暇があるならメッセージボックスが後ろに回らないように修正しろ
831: (スフッ Sd32-yBe4) 2020/02/16(日)14:20 ID:WhOeRDRvd(1) AAS
>>807
nugetにあるよ。
832(2): (ブーイモ MM0e-BzDP) 2020/02/16(日)14:36 ID:t/nUwzcTM(1) AAS
>>827>>829
UI操作をエミュレートする需要があることは間違いではない
がしかしそれはUIコンポーネント実装のためだったりテストフレームワークのためだったりソースにアクセスできないGUIアプリケーションのオートメーションのためだったりであって
自社アプリにオートメーションサポートを実装するための基盤ではない
それをサポートを実現するまっとうな設計はUI層に依存しないAPIやCLIの提供であってUI操作とは全く逆の考え方だ
お前はノコギリにだって役目と需要があると言ってる
しかしノコギリは魚をさばくのには適さない
省1
833: (ワッチョイ af97-hMlH) 2020/02/16(日)15:56 ID:4YtH0n6X0(1) AAS
年末年始年始に非同期処理で騒いでた人かな
834(2): (アウアウウー Sac3-+wK4) 2020/02/16(日)18:17 ID:vSVyAtifa(1) AAS
>>832
あんたも相当しつこいねw
俺は質問者さんと別人だけど、ボタンやメニューのクリックをシミュレートしたい
場面というのは実際問題しばしば存在するよ
例えばクリックすると何か処理が走るボタンが複数あるとする。
この時、これを全部クリックしたのと同じ機能を果たすボタンが欲しい、
なんていうのは割とありがちな話。
省3
835: (ワッチョイ 1ede-sep5) 2020/02/16(日)18:27 ID:Oyf7AnZI0(1) AAS
>>834
えー、それにこれ使っちゃうのはキチガイだろ
チェック関連全部走ってから
本処理行くだろ
836(1): (ワッチョイ 477b-yNzz) 2020/02/16(日)18:32 ID:j/dbz9ZG0(5/8) AAS
>>832
「UIに依存する」のではなく、「UIの代替を提供する」のであって、
UIが変更された場合にはUIと同じく変更されるのが正しいんだよ。この点が違う。
そしてソース変更無しで自動追従させる手法がエミュレーションになる。
「UIに依存する」というのは、UIとは本来関係ない事をUIを通してやってしまっていることにより、
UIが変更された場合に動かなくなって困る(動作が変わってしまう)ことを言ってるだろ。
そうじゃない。今回はそこは動作が変わるのが正しいんだよ。
省10
837(1): (ブーイモ MM0e-BzDP) 2020/02/16(日)19:25 ID:tfQsIfqsM(1/3) AAS
>>834
どちらもボタンクリックをエミュレートする必要はない
上の例はクリックで実行される処理を順に実行するだけ
下の例はメニューとボタンから同じ処理を呼ぶだけ
838(1): (ブーイモ MM0e-BzDP) 2020/02/16(日)19:46 ID:tfQsIfqsM(2/3) AAS
>>836
つまりお前が言いたいのは
スクリプティング機能の定石に反する糞仕様こそを求めているので今回に限り馬鹿なことをするのが正しい
ということか
PowerShellは流行ってるというかWindowsのシステム管理ではほぼ必須
OSにプレインストールされてるから開発環境用意するまでもないちょっとしたツールを作るのにも便利
今まさに話してるDSLを手軽に実装するための基盤としてもしばしば使われる
省1
839: (ワッチョイ 9261-OxJ8) 2020/02/16(日)20:13 ID:lt2wlhEH0(1) AAS
>>796
おいもうそろそろこの話題締めて他所にいってくれや。
840: (ワッチョイ 167b-4wVb) 2020/02/16(日)20:16 ID:ZkXecQUS0(1) AAS
ふらっと荒らしてこっち荒らして、いつも同じメンバーだろこれ
841: (オッペケ Src7-oFCC) 2020/02/16(日)20:22 ID:+zL5Le7jr(1) AAS
もともと完全にちゃんとGUI操作したいなんて書いてないだろさ
途中から見てる人が勝手に条件を足してるだけで本来あるべき姿とかい離してる
途中で無駄にリフレクションが出てくるあたり初心者の匂いが出てる
ボタン押すにはタブを切り替えなくてはならないのに
画面が変わらないままでボタン押したいって言ってるから別にGUI操作自体を再現したいわけじゃない
842(2): (ワッチョイ 477b-yNzz) 2020/02/16(日)20:24 ID:j/dbz9ZG0(6/8) AAS
>>838
違う。定石に反しているのは君の方で、つまりはカッコイイソリューションを目指しすぎている。
馬鹿みたいなソリューションの方が、現実的に使いやすいことは多々ある。
多分、ちょっと若すぎて元気がありすぎるのだと思う。
これ自体は悪いことではなく、むしろ上達には必須の性格で、良いことだとは思うが、
世の中のアプリがどうなっているか、もう少し周りを見た方がいい。
GUIの自動化で一番簡単なソリューションは、GUIを記録してしまうことだ。…(A)
省17
843: (ワッチョイ 477b-yNzz) 2020/02/16(日)20:25 ID:j/dbz9ZG0(7/8) AAS
例えば上記アプリ(A)方式だと、ループ機能すらないのだから、
アプリ(A)だけで100個のファイルに同じ処理を適用しようとすると困る。
そこでループ機能を、とか言い出すと色々他が必要になって結局PowerShell、という思想もありだが、
そうではなく、Perl等でファイル名だけ変更するスクリプトを作り、
それでループを回して作ったドベタに展開された糞長いバッチファイルをアプリ(A)に流し込む、
というのもありなんだよ。
全ての処理を自アプリでやろうとするから無理が発生する。
省8
844(1): (ブーイモ MM0e-BzDP) 2020/02/16(日)20:55 ID:tfQsIfqsM(3/3) AAS
>>842
無知すぎて呆れる
世の中のサービスやアプリをちゃんと見てみろ
APIやCLIをサポートすることは多々あってもGUI操作をサポートしてるものなどごく少数派だ
UIとは読んで字のごとくユーザーのためのインターフェースであって自動化のためのインターフェースではない
APIとはアプリケーションプログラムのためのインターフェースであり自動化をサポートするならこちらを提供するのが当然の選択だ
APIやCLIのサポートが定石であってGUI操作は邪教徒の好む黒魔術でしかない
省2
845(1): (ワッチョイ c602-ZgUM) 2020/02/16(日)21:13 ID:as0AlWv60(2/2) AAS
>GUIの自動化で一番簡単なソリューションは、GUIを記録してしまうことだ。…(A)
>俺が昔使ったアプリだと、「ログ画面」にGUI操作と等価のコマンドが一々流れる、というのがあった。
>そして自動化したい場合は、このログ画面内の該当部分をコピペしたファイルを読ませるだけ、というものだ。
>当然、見れば分かる程度であり、例えばファイルを読み込んだらそのファイルパスがまんま表示されている。
>なら、そこを変更するだけで同じ処理を他ファイルに適用出来るよね、というわけだ。
これ、昔作ったことが有るけど、最も上手くいった方法はMVCを徹底して、Cの入り口でコマンドオブジェクトをシリアライズして記録するパターンだったな
やってみればわかると思うけど、画面コントロールの操作ログを正確に記録するのも、再生するのも、一筋縄ではいかない
846: (ワッチョイ 639e-oFCC) 2020/02/16(日)21:16 ID:yo/bSae/0(1) AAS
COMで解決された問題を20年以上経って議論してる・・・
847: (ワッチョイ 126a-OxJ8) 2020/02/16(日)21:58 ID:5ncsgUM20(1) AAS
この話題をすり替えつつ自分の正当性をゴリ押しするスタイル、最近見ましたよね
明後日くらいには全然違う話題になってるぞきっとw
848: (ワッチョイ 7317-OxJ8) 2020/02/16(日)22:11 ID:x7wMnJYb0(1) AAS
荒らしてるの毎回同じ人だよね
書き方に癖があるからすぐわかる
849(2): (アウアウウー Sac3-+wK4) 2020/02/16(日)22:21 ID:Z1hWCcVDa(1) AAS
>>837
繰り返しになるけどね、そういう「プログラマの意図と実際のコードに乖離がある」
ことをやると別の仕事が増えるでしょ。
ボタンABCDEが全部クリックされたのと確実に同じことが起るって誰が確認して保証するの?
ボタンABCDEのクリックイベントの処理を後で変更した時、またそれをやりなおすの?
その確認作業を忘れたらどうするの?
こういう後の保守のことを考えないプログラマは愚鈍で無能。
省4
850(5): (ブーイモ MM0e-BzDP) 2020/02/16(日)22:40 ID:q02FpFyRM(1) AAS
>>849
プログラマの真の意図は
ボタンを押したら複数の一連の処理をまとめて実行したい
メニューとボタンで同じ処理を実行したい
だろ
君が好きなボタンをエミュレートする方法は上記のプログラマの意図を実現する遠回りなやり方の1つだ
誰が確認するの?確認忘れたらどうすんの?なんて質問は自分は仕事でコード書いたことありませんと言っているようなものだから控えたほうがいい
省7
851: (ワッチョイ 122c-LiuO) 2020/02/16(日)22:47 ID:5EL9p8ON0(1) AAS
Seleniumデザインパターン&ベストプラクティス、2015、オライリー
この本は、Ruby, Selenium WebDriver でのテスト手法を書いた本
例えば、Ruby, Selenium WebDriverで、
Yahoo への自動ログインするスクリプトは、下を参照
【VBScript】WSHについて話し合うスレ【JScript】
2chスレ:tech
852: (ワッチョイ 630c-OxJ8) 2020/02/16(日)22:59 ID:jBsklMHb0(1) AAS
そしてさも当然ように混じり込むいつものRubyキチ
上下前次1-新書関写板覧索設栞歴
あと 150 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s