1
私の目標は、Webブラウザーコントロールからクッキーを取得することです。F#/ C#でWebブラウザーからクッキーを取得する
let getCookie(url:string) =
let form = new Form(Text="Internet Navigator")
form.AutoScaleDimensions <- new System.Drawing.SizeF(6.0F, 13.0F)
form.AutoScaleMode <- System.Windows.Forms.AutoScaleMode.Font
form.ClientSize <- new System.Drawing.Size(849, 593)
form.ResumeLayout(false)
form.PerformLayout()
let wb = new WebBrowser()
wb.Visible<-true
wb.AutoSize<-true
wb.Size <- new System.Drawing.Size(804, 800)
form.Controls.Add(wb)
form.Show()
let cookie = ref ""
wb.Navigate(url)
wb.DocumentCompleted
|> Event.map(fun _ -> cookie:= wb.Document.Cookie)
!cookie
は理想的Event.map
内からクッキーの値を返す方法がある(またはそのような何か):私は参照してこれを実行しようとしましたが、Event.mapは私が値を返すことはできません。 ?
おかげで、印刷は完璧に動作しますが、それは値を取得しようとしているの問題を解決しません。私の例ではlet temp = ref ""と同じですが、fres = temp:= resとすると、コードは本当に速く実行され、refは常に ""、おそらくちょっと後のtemp正しいクッキー値になります – jlezard
関数からクッキー値を返すように答えを更新しました – Ankur