Sidebar |
タイトル 執筆:2024.10.10
編集:2024.10.10 Delphi12にアップグレードしたらAndroidのbuildができなくなった。 C++は13からサポート終了したそうですね。その終了理由がわけわかめですが? C++Builder: 削除された iOS と Android
RAD Studio Athens は、iOS 64 ビット プラットフォームと Android 32 ビット プラットフォームを削除しました。 そろそろ Delphi androidを Visual Studioに移植したほうがよさそうです。幸い1プロジェクトでcoplilot先生に手伝ってもらえば数日あれば移植終わりそうです。 とりあえず復旧できたの手順を書いておきます 現象 標準インストールしただけでは、不具合があり » 続きを読む カテゴリー: ぷろぐらみんぐ
2024.10.10
タイトル 執筆:2024.10.10
編集:2024.10.10 iPhoneとAndroidを同時に開発できるクロスプラットフォーム開発ツール を Copilot 先生に相談してみた。
» 続きを読む カテゴリー: ぷろぐらみんぐ
2024.10.10
タイトル
執筆:2023.08.30
編集:2023.08.30 標準ツール(インストールが必要) WinForms ReportViewer コントロール インストール方法 (1) Visual Studio Community 2022の更新をインストール (2) メニュー : 拡張機能 : 拡張機能の管理 オンライン : 検索 : Report [Microsoft] Microsoft RDLC Report Designer 2022 手順: ダウンロード : 保存 : インストール(保存したファイルを実行する) サードパーティーライブラリ PDFがいい場合はサードパーティーライブラリ
Microsoft RDLC Report Designer 2022インストール失敗 (1) Visual Studio Community 2022の更新をインストール ヘルプ : 更新プログラムの確認 先にIDEを更新しておかないとインストールに失敗することがあります。 Microsoft.RdlcDesigner.vsixを実行 Visual Studio Community 2022
失敗した場合は、内部的にインストール済みフラグがたっているので、拡張機能を開きアンインストールする。- 拡張機能の Visual Studio Community 2022 へのインストールを開始しています... - Package 'Microsoft.VisualStudio.WorkflowManagerTools.Msi,version=17.3.32708.82,chip=x64,language=ja-JP' failed to install. MSI: C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.WorkflowManagerTools.Msi,version=17.3.32708.82,chip=x64,language=ja-JP\WorkflowManagerTools_x64.msi, Properties: REBOOT=ReallySuppress ARPSYSTEMCOMPONENT=1 , Return code: 1603, Details: インストール中に致命的なエラーが発生しました。, Signature: PackageId=Microsoft.VisualStudio.WorkflowManagerTools.Msi;PackageAction=install;ReturnCode=1603 - インストール エラー : System.AggregateException: 1 つ以上のエラーが発生しました。 ---> Microsoft.VisualStudio.Setup.PackageFailureException: Package 'Microsoft.VisualStudio.WorkflowManagerTools.Msi' failed to install 原因がわからないので Visual Studio Community 2022の更新をインストール 現在のバージョン: 17.7.1 更新プログラムのバージョン: 17.7.3 再度 Microsoft.RdlcDesigner.vsixを実行 失敗 Visual Studio Community では利用できないのかもしれない。 カテゴリー: ぷろぐらみんぐ/レポート・帳票
2023.08.30
タイトル
執筆:2023.08.16
編集:2023.08.16
Windows ME,XP, VISTAなんて使わないでしょ。 古いDelphiはプロジェクトアップグレードして 古いDelphiと すっきり お別れしよう!! Delphi 無料エディション1年だからと敬遠しているあなた。 生成したexeもリポジトリにいれておけば問題なし。 新規プロジェクトは断然 Visual Studio をお勧めします!! それいけ ドット ネット » 続きを読む カテゴリー: ぷろぐらみんぐ
2023.08.15
【DIY修理】Tripmate 850 GPS ロールオーバー
執筆:2019.10.24
編集:2019.10.24 2019年4月7日に「GPS週数ロールオーバー」と呼ばれる事象が発生いたしました。 「GPS週数ロールオーバー」は一定の周期で発生する仕様上の現象です。 そして、GPSモジュールが故意に「GPS週数ロールオーバー」に対応していなかったため GPSモジュールにおいて、年月日が間違った情報を返し、正常に利用できなくなりました。 ログを見ると
GPSの日付 99年 は (19)99年を指しているのに対し、Tripmateは 2099年と解釈しているため 2099年となります。 GPSの日付は10bit情報なので、1024週分だけ日付を足してあげればいいことになります。 手順
$date = new DateTime('1999-08-22');既存のログを修正する場合は、 $GPRMCの行を修正することになります。 GPSモジュールレベルで修理する場合
1.サポートが終了しているためファームウェアレベルでのアップデートは無理でしょう。 2.GPSモジュールを交換する 交換できそうなGPSモジュールがあれば、交換します (TripmateのGPSモジュール端子を解析していないので今後に期待) 3.GPSモジュールの信号を変換する マイコン ATTINY85-20SUR、ATMEGA328P-AU あたりで、モジュールレベルの日付変換器を作れば正常な値になりそう。 フローチャート:GPSモジュール(データ)IO ⇔ マイコンIO ⇔ 本体IO マイコンの要件:1行分のデータをバッファできる。日付計算変換するだけのプログラム容量がある。IOが4つある。 (TripmateのGPSモジュール端子を解析していないので今後に期待) 収容する場所が極めて小さいため、 ATMEGA328P-AUを採用する可能性あり。 » 続きを読む カテゴリー: General
2019.10.24
mfc140u.dll が見つからなからない
執筆:2019.09.03
編集:2019.09.03 エラー コンポーネントが見つかりません
mfc140u.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。 これは、アプリケーションが使用しているマイクロソフトのダイナミックリンクライブラリという(.dll)ファイル群がインストールされていないために表示されるメッセージです。 正常に起動できるようにするには、
をインストールしてあげるだけです。簡単ですね。猫にでもできます。 必要なファイルはマイクロソフトにおいてあるのでダウンロードしてインストールしてください。 ダウンロード Visual Studio 2015、2017、および 2019 用 Microsoft Visual C++ 再頒布可能パッケージのダウンロード
32ビット64ビットのどちらかわからない場合は、32ビット(x86)のほうからインストールしてみてください メモ: Visual C++ 2015、2017、2019 は、共通パッケージです。すべて同じ再頒布可能ファイルを共有します。 mfc140u.dllより数字が小さい場合は別のパッケージなので、別途ダウンロードしてください。 簡易早見表:Microsoft Visual C++ 再頒布可能パッケージ
カテゴリー: General
2019.09.03
オープンソースになったマイクロソフトのアプリたち メモ
執筆:2019.06.09
編集:2019.06.09 Windows 電卓 公開日:2019/3/6
Announcing the Open Sourcing of Windows Calculator
https://blogs.windows.com/buildingapps/2019/03/06/announcing-the-open-sourcing-of-windows-calculator/
Visual Studio Code MSBuild Windows Terminal https://github.com/microsoft で 2500以上のリポジトリが公開されている 古代のアプリの一般公開されたソース ファイルマネージャー Microsoft DOS V1.1 and V2.0 Microsoft Word for Windows version 1.1a カテゴリー: General
2019.06.09
Delphiのプロテクションツール (メモ)
Delphiに引きこもらないで、すばらしいVisual Studioの良さを確かめてほしいです。
Visual Studio 2017,2015 Communityは、制限なしの無料ですからね。 なれた環境でチャチャチャと高速リリースするのは戦術としては有効ではありますのでDelphiの否定はしませんが 脱Object pascal言語を推奨しています。 それいけ、 Visual Studio !! Windowsストアアプリにしてしまえば、販売も期限や制限もマイクロソフトが管理してくれるので完全自動販売機化できます。 ついでにマルチデバイス対応してしまえば、iOSやAndoridからの収益も さらにさらに、国際化すれば相乗効果でもっともっと売り上げがアップするかも というとこで、デスクトップでちまちま制限をかける時代は、 パッケージ製品や特定の業務に特化したアプリ以外では終焉を迎えつつあります Windowsストアアプリは、無料版Delphiでは作れません。 (参考リンク) Delphi / C++Builder で Windows 10 ストアプリ制作
でも、VidualStudioなら完全無料でWindowsストアアプリがつくれ しかも開発環境由来のバグに見舞われることがほぼないので、開発に専念できます。 某開発ツールとは大違いです ただ問題点があって、VidualStudioだと付属ツールで逆コンパイルができてしまうので難読化処理が必要になります
難読化
amazonアプリの設定(コードの難読化) アプリ側で旧形式の制限をかけたい場合* フリーTurboPower OnGuard 使っていないのでなんともいえませんが無料だそうです * ○○××の市販ツール 10万円もするそうです。昔は3,4万円だったような気がします。 Delphi言語ユーザーが激減したこと アプリマーケットの影響で需要がめっきりなくなったこと が価格上昇に反映されていると推測されます。 はじめよう Windows ストア アプリ (メモ) カテゴリー: General
2017.03.14
Delphi 10.1 Berlin Starterは使いにくい
デバッグ時のローカル変数一覧 : なし 定義の検索: ジャンプしない リファクターがない データベース使えない ハイ!! ということで 無料の フル機能の Microsoft Visual Studio のほうが1万倍?1億倍くらい いいです。 アプリは、Dephiから無料のマイクロソフト製品へシフトしよう!! バグから解放されて生産効率 超アップ!! カテゴリー: General
2017.02.27
ストアアプリ ターゲットOS
Visual studio2015
Windowsストアは、iOSやAndroidストアに比べると市場が小さいらしい(儲からない)。 モバイルをターゲットにするなら、Xamarinで開発したほうがよさそう。 Windowsストア限定をターゲットにするなら、UWPアプリでよさそう
カテゴリー: ぷろぐらみんぐ/メモ
2016.06.13
7日間でWindows 10 アプリ開発者になる方法 https://blogs.msdn.microsoft.com/visualstudio_jpn/2015/09/08/windows-10-5/ 徹底予習! Windows 10のユニバーサルアプリ開発 http://www.atmarkit.co.jp/ait/articles/1504/28/news015.html グローバリゼーションとローカライズの推奨と非推奨 https://msdn.microsoft.com/windows/uwp/globalizing/guidelines-and-checklist-for-globalizing-your-app
2015より搭載された新機能 |
アセンブリの暗号化ソフト
編集:2016.06.12
.Net ネイティブ
2015より搭載された新機能C#.Netをネイティブ化するMS純正ツール
これによりコードの難読化と高速化が期待できる
- Microsoft .NET ネイティブに関する FAQ
https://msdn.microsoft.com/ja-jp/vstudio/dn642499.aspx - .NET ネイティブによるアプリのコンパイル
https://msdn.microsoft.com/ja-jp/library/dn584397(v=vs.110).aspx
7日間でWindows 10 アプリ開発者になる方法
https://blogs.msdn.microsoft.com/visualstudio_jpn/2015/09/08/windows-10-5/
難読化ツール
.Net ネイティブの登場により、難読化ツールは、旧技術となった。そのままでは、ソースコードを復元されてしまうため、中間コードを難読化するためのツール
検索ワード:.Net Obfuscator free
Eazfuscator.NET [ Free ]
http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx
CodeFort Professional - $199
http://codefort.org/
Babel.NET Enterprise - $249
http://www.babelfor.net/Licensing.aspx
Visual Studio Tools -- Dotfuscator Community edition
.NET アセンブリの難読化ツール
http://d.hatena.ne.jp/wwwcfe/20100513/obfuscator
調べてみました。 嘘かいているところが多く困りました。
このサンプルは、標準出力にエラーを送ります。
デバッガなどに送るには、_CrtSetReportModeを変更する必要があります。
いつでも再現できるように
コマンドも一緒に埋め込みました。
参考 MSDN
- CRT ライブラリを使用したメモリ リークの検出
https://msdn.microsoft.com/ja-jp/library/x98tx3cf.aspx - _CrtSetReportMode
https://msdn.microsoft.com/ja-jp/library/1y71x448.aspx - _CrtSetReportFile
https://msdn.microsoft.com/ja-jp/library/a68f826y.aspx
nmake -f Makefile.msc DEBUG=1
!IFDEF DEBUG
CFLAGS += /D_DEBUG /D_CRTDBG_MAPALLOC /MTd /ZI /W3
!ENDIF
以下サンプルソース
/* * testleek.c * [cmd.exe] "c:\Program Files\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" (1) リンクも一緒にする
cl.exe testleek.c /D_DEBUG /MTd /ZI -W3
testleek.exe
または (2) objだけ生成して後からリンクする
cl /c -D_DEBUG /MTd -Zi -W3 -Od testleek.c
link /debug testleek.obj testleek.exe */ # define _CRTDBG_MAP_ALLOC # include <stdlib.h> # include <crtdbg.h> int main(void){ _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE ); _CrtSetReportMode( _CRT_ERROR , _CRTDBG_MODE_FILE ); _CrtSetReportMode( _CRT_WARN , _CRTDBG_MODE_FILE ); _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT ); _CrtSetReportFile( _CRT_ERROR , _CRTDBG_FILE_STDOUT ); _CrtSetReportFile( _CRT_WARN , _CRTDBG_FILE_STDOUT ); char * p=malloc(1000); malloc(7); // _CrtDumpMemoryLeaks(); return(0); }
ソースフォルダを2つ用意してください。簡単確実な分離方法です。
パッチファイルだとバージョンを差し替えるたび不具合が出ると面倒なので
専用書き換えスクリプトで自動処理します。
.vcxprojを自動呼出しで一括置換します
変更箇所は下記にあります
今回は、ネタで終了。
サイズの問題と面倒なので、
環境変数pathに登録したマイbinフォルダにicuのdllいれておしまい。
Dephi関連の値段の推移
Dephi2 Developer | 68,000 |
Delphi 2005 Professional | 71,400 |
Delphi Xe Professional | 98,700 |
Delphi Xe7 Professional | 129,600 |
Delphi 10.1 Berlin Professional | 184,300 |
RAD Studio 2007 Professional | 120,000 |
RAD Studio XE7 Professional | 228,960 |
RAD Studio 10.1 Berlin Professional | 326,800 |
マイクロソフト
Microsoft Visual Studio Professional 2013 通常版 | 54,843 |
Microsoft Visual Studio Professional 2013 with MSDN 通常版 | 137,268 |
Visual Studio Community 2015 フルバージョン | 無料 |
用途によりますが
普通に考えて
マイクロソフトのExpress無料版 を使って
物足りなければ
Microsoft Visual Studio Professional 2013
製品版を購入したほうがよさそう。
機能制限なし、
Visual Studio Community 2015
が無料になって登場!!
Delphi のインフレはすごい。
客が離れる → 値上げ の無限ループ
もう、あれですよね。 終わった!!
» 続きを読む
春にも重大な脆弱性が発見されたばかりだ。
「OpenSSL」に新たな脆弱性が見つかり、6月5日(米国時間)に修正パッチがリリースされた。
この脆弱性はクライアント(使用者のパソコン)ではOpenSSLの全バージョンが影響を受ける。
ただより怖いものはない
2014年6月5日で修正された最新バージョンは以下の通り
OpenSSL 0.9.8 users should upgrade to 0.9.8za
OpenSSL 1.0.0 users should upgrade to 1.0.0m.
OpenSSL 1.0.1 users should upgrade to 1.0.1h.
http://www.openssl.org/
http://www.openssl.org/related/binaries.html
Visual C++ 2008 Redistributables
を不要にするには、自分で /MTで buildするしかない。
ということで 10分くらいかかりますが 自分で buildしています
アルファベットで バージョンを管理するのは
わかりにくいから
いい加減やめてほしい
» 続きを読む
編集:2011.10.17
今日は、
C#へレッツゴー
さぁ Delphiなんか捨てて みんなドットネットへ Go !!
それいけ ドットネット推進派 の 禁断のDelphiネタです。
次期Windows8 の 「Windows Developer Preview版」が無償公開 されていますが
もう みなさんは、お使いですか?
※OSのアンインストール機能がないそうなので、インス トールは気をつけてください
Visual Studio 11 Expressの同梱版もあり すごいお試し版OSです。
“Win RunTime(WinRT)”と呼ばれる新しいAPIが追加され
新しいデスクトップ“Metro”では、新しい“Metro”対応のアプリケーション(“Metro style apps”)
なんていうものが必要になるそうです。
キット古い開発環境とアプリを市場から強制排除したいのでしょうね。
もう、Visual Studio意外に開発環境の選択の余地がないって感じになってきましたね。
ということで、 ほらほら、 みんなドットネットへ Go !!
では、本題です。
TWebBrowser.HWNDへのアクセスは不正なエラーに なります。
WebBrowser1.Handleでいいようです。
構造
|
ClassName | |
親 |
- Shell Embedding | ← GetClassName(WebBrowser1.Handle) |
子 |
-- Shell DocObject View | 不明 |
孫 |
--- Internet Explorer_Server | ← 操作画面 解説URL |
iframeなどの要素があると多重構造になるようです。
※ コードを参考にする場合は、自己責任で参考にされてください。
※ 十分なテストが必要です。
※ 将来的に、仕様などの変更で利用できなくなることも考えられます。
【TWebBrowser.HWNDは、無効なプロパティ】
(MSDN 文書番号: 244310):
※要約 子WindowをたどっていくとHandleを取得することができます。
※ TWebBrowser.HWND |
Web ブラウザの Window ハンドルへのアクセスを提供します。 |
※ Delphiでは、TWebBrowser.HWNDは使えません。 | |
コード | WebBrowser1.HWND; |
実行結果 | デバッガ例外通知 プロジェクト は例外クラス EOleException (メッセージ 'エラーを特定できません')を送出しました。 |
【HTML要素からhandleを取得する方法。】
ハンドルを 直接要求する方法 |
|
// [エラー] : E2010 'System.TGUID' と 'Ole2.TGUID' には互換性がありません const // From Ole2.pas IID_IOleWindow: TGUID = ( D1:$00000114;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46)); function GetWindowHandleFromIDispatch(disp: IDispatch) : HWND; var h : hwnd; Res : HRESULT; oWin : IOleWindow; // Unit ActiveX.pas begin // example: GetWindowHandleFromIDispatch(WebBrowser1.Document) Result := 0; Res := disp.QueryInterface(IID_IOleWindow, oWin); if Succeeded(Res) then begin Res := OWin.GetWindow(h); if (SUCCEEDED(Res)) then Result := h; end; end; |
|
使 い 方 |
// Class : Internet Explorer_Server h := GetHTMLObjectWindowHandle(WebBrowser1.Document); if (h > 0) then Windows.SetFocus(h); |
(参考)正 規のhtml要素のfocusの使い方 |
|
|
// HtmlElement から直接呼び出す場合 // HtmlElement.focus(); var v : Variant; begin v_Doccument := WebBrowser1.Document; if Not VarIsClear(v_Doccument) then v_Doccument.focus(); |
|
var v_Doccument, v_elems : Variant; begin v_Doccument := WebBrowser1.Document; if VarIsClear(v_Doccument) then exit; v_elems := v_Doccument.getElementsByName('ここにhtml要素の名前'); if Not VarIsClear(v_elems) and (v_elems.length > 0) then v_elems.Item(0).focus(); |
擬似キー入力を送るコード:Function Key
var H : THandle; begin h := GetWindowHandleFromIDispatch(WebBrowser1.Document); Windows.PostMessage(H , WM_KEYDOWN, VK_F1 , 0); |
擬似キー入力を送るコード:通常文字
var H : THandle; begin h := GetWindowHandleFromIDispatch(WebBrowser1.Document); Windows.PostMessage(H , WM_CHAR, Byte('a') , 0); end; |
ALT+F4(終了)を呼びたい場合は
WM_SYSKEYDOWN を使います
Windows.PostMessage(TargetHandle , WM_SYSKEYDOWN , wParam, lParam); |
||
wParam |
lParam |
|
VK_F4 + ALT | VK_F4 |
1 shl 29 |
VK_F1
Firefox系の他のブラウザでは反応します。
テキストボックスに文字列をいれるだけなら、
普通にgetElementsByNameやgetElementByIdなどで
要素にアクセスして代入した方が安全に入力できます。
普通にテキストボックスに入力する方法
( 応用例:ログインIDなどの自動入力 )
例 v_elems.Item(0).innerText := 'abc'; |
|
.innerText | |
|
.innerHTML |
コンボボックス (selectタグのoption要素) |
e.options[e.selectedIndex].text e.options[e.selectedIndex].value |
【一番上のShell DocObject View の HWND 取得方法】
GetWindow(WebBrowser1.Handle, GW_CHILD )
※ ClassNameで、確認した方がいい 、 GW_HWNDNEXT
Navigateでフォルダを指定した場合、エクスプローラーが内蔵されるので注意。 SysListView32などが現れる。
function GetWebBrowser_Root_ShellDocObject_Handle(AWebBrowser : TWebBrowser) : hwnd; // Shell DocObject View var h : hwnd; begin h := GetWindow(AWebBrowser.Handle, GW_CHILD ); while (h > 0) do begin if (Pos('Shell DocObject View', GetClassNameText(h)) = 1) then begin Result := h; Break; end; h := GetWindow(h, GW_HWNDNEXT ); end; end; |
function GetWebBrowser_Root_IE_Server_Handle(AWebBrowser : TWebBrowser) : hwnd; // Internet Explorer_Server var h : hwnd; h_child : hwnd; begin h := GetWindow(AWebBrowser.Handle, GW_CHILD ); while (h > 0) do begin if (Pos('Shell DocObject View', GetClassNameText(h)) = 1) then begin h_child := GetWindow(h, GW_CHILD ); while (h_child > 0) do begin if (Pos('Internet Explorer_Server', GetClassNameText(h_child)) = 1) then begin Result := h_child; break; end; h_child := GetWindow(h_child, GW_HWNDNEXT ); end; if (Result > 0) then Break; end; h := GetWindow(h, GW_HWNDNEXT ); end; end; |
【場所から取得する方法】
・ ChildWindowFromPoint関数を使用します。
ついでに、それいけみんなドットネットなので
C#で、ハンドルにメッセージを送る方法は
知らないので
[System.Runtime.InteropServices.DllImport("user32.dll")]
private extern static System.Boolean PostMessage(
System.IntPtr hWnd,
System.UInt32 Msg,
System.Int32 wParam,
System.Int32 lParam);
で回避することができる。
編集:2011.10.16
Delphiで作ると実行ファイルが大きくなるし、Tabで WebBrowserコ ントロール内に移動できないので
さぁ C#だー
はっはっはっ!
って 試験動作させると
瞬時に ずっこけました。
OnNewWindowで、Dispatchが設定したかったのです。
他にもいっぱいあるのですけど
NewWindowでDelphi相当の機能が実装されていないのです。
開くURLも取得できないし、Dispatchも設定できないなんて、酷い(ひどい)話です。
.Netには、なんの嫌がらせか知りませんが、本来つけておくべきイベントがたくさんないのです。
なんでもかんでも
新しいWindowで開くで、IEに送るのでは、WebBrowserを内蔵する意味がほとんどないでしょ。
(※IEに送るとセッションCookie?が引き継がれないから問題なんです。)
ということで、
.NetのWebBrowserを拡張して本来あるべきイベントを追加して対処しました。
private void exWebBrowser1_NewWindow3( object sender, WebBrowserExtendedNewWindow3EventArgs e) { // メモ // (1)e.pDisp に設定しない。新しいIEとして開く。 // (2)e.pDisp を設定する。指定したWebBrowserで開く。 // ※同じWebBrowserでは、e.pDispは、動作しない。 // (3)同じWebBrowserで開く。キャンセルNavigateを呼ぶ。 // ※POSTなどが失われるので注意。 // MessageBox.Show((string) e.URL); // open as self WebBrowser // e.Cancel = true; exWebBrowser1.Navigate((string) e.URL); // open as new WebBrowser // e.pDisp = exWebBrowser2.ActiveXInstance; } |
|
// using System.Runtime.InteropServices; public event EventHandler<WebBrowserExtendedNewWindow3EventArgs> NewWindow3; protected void OnNewWindow3( ... 省略 ..... 省略 [ComImport, Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch), TypeLibType(TypeLibTypeFlags.FHidden)] public interface DWebBrowserEvents2 { [DispId(273)] void NewWindow3( [In, Out, MarshalAs(UnmanagedType.IDispatch)] ref object pDisp, [In, Out] ref bool cancel, [In] ref object flags, [In] ref object URLContext, [In] ref object URL); } |
|
読者に作る機会を与え、動作原理を理解させるために あえて、完全なコードは開示していません。 不足分は、参考サイトを見ながら完成させましょう。 |
参考にした フォーラム が型とか ウソ書いていたので
少し手間だったヨ。
◎よくできました
とりあえず、目的の動作をするようにしたのでので「よし」としよう。
【参考サイト】
- webBrowserで別のウインドウで開くときの開く先のURLの取得法
とその中のリンク記事
(VSUG フォーラム → .NET 開発 → Visual C# → webBrowserで別のウインドウで開くときの開く先のURLの取得法) - MSDN Library for Visual Studio 2008
・CreateSink メソッド (使用例)
・他
2006ユーザーは、年末まで。
えー、2005以下のユーザーは、値上げして切捨て。
ちょっと ひどくない!!
値段が倍近く違うよ
ということは、来年は、2006以下のユーザーは、切捨て
という図式が当てはまるのかな
値段も上がったし、ますます自分で首絞めてますね。あの会社。
使いもしないのにバージョンアップを受けるためだけに毎年買うのはタダの馬鹿。
円馬鹿だろー の呪文に染まっていませんか?
2年間つかわないのなら、3年目に新規購入した方が全体で安いだろう。
キャンペーン時に買うとしても1年使わないなら見送った方が安い。
毎年、来年は、この機能が実装される予定ですって
同じことを毎年繰り返して
うそばっかりいって、客止めしているし
10年後には、きっと自滅するかもね。
自滅しないにしても、教育・趣味の世界から忘れ去られるだろう
特別アップグレードキャンペーンじゃダメ。
旧バージョンもバージョンアップキャンペーンしてくれない限り
もうDelphiは、買いません。
Visual Studioより高い価格で買う利点はありません。
今後64bit開発が必要になったら、Visual Studio Proを購入するでしょう
Delphiに
ふみとどまっている理由は、
・実行ファイル アセンブリの暗号化ツールが高い点
・C#(.netライブラリ)は、将来見捨てられないのか?
が主な理由です
高機能なフリーの.net4 アセンブリの暗号化ツールがあれば、
まよわず、新規アプリケーションは、
Visual Studio で作成するでしょう。
wget windos版の生成 with vs2008
執筆:2008.04.16
□GNUさんから最新版をダウンロードしました。
ftp://ftp.gnu.org/pub/gnu/wget/
http://www.gnu.org/software/wget/
□opensslがない場合は、インストールします。
コンパイル済みのものが便利です。
http://www.openssl.org/related/binaries.html
□VS2008がない場合は、無料版でいいのでC++をインストールします。
Visual Studio 2008 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/
準備ができたので始めます。
今回は、最新版はwget-1.11でしたのでそれを解凍しました
【初回または、OpenSSLのバージョンが変わった際に実施】
詳しくは、wget-x.xx\windows\READMEを読みます OpenSSLのinclude\opensslとlibをコピーします 下記のコマンドは、間違うと大変なことになるので エクスプローラーを使ってコピーした方がいいです。 |
|
xcopy /S C:\OpenSSL\include\openssl\ "C:\Program Files\Microsoft Visual Studio 9.0\VC\include\openssl\" xcopy /S C:\OpenSSL\lib\VC "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\" copy C:\OpenSSL\lib\VC\libeay32MD.lib "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\libeay32.lib" copy C:\OpenSSL\lib\VC\ssleay32MD.lib "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\ssleay32.lib" |
【さぁ生成です】
面倒なので私はバッチファイルで処理しています。
wget_win_build_VS2008.bat |
@rem http://www.gnu.org/software/wget/ |
【不正な属性でタグが終わっていた場合】
不正な属性(属性名=値無し>)でタグが終わっていた場合、ダウンローしてくれません。
下記のようにすると読み込んでくれるようになりますが、
どうなんでしょう?。。。
手順 | |
例 | <html><meta></meta><body> <p>wget -p "this page URL"</p> <p>wget can not save image2</p> image1 <img src="image1.png"><br> image2 <img src="image2.png" alt=><br> </body></html> |
回避 |
修正 GNU Wget 1.11 src\html-parse.c 947: goto backout_tag; if (attr_value_begin == attr_value_end) /* <foo bar=> */ /* ^ */ - goto backout_tag; + break; |
予期しないデータの破損などをするおそれがあります ・変更は、自己責任でしましょう。 ・説明書(ソースコードも)をよく読み理解しておきましょう |
Visual Studio 2005 Academic Edition | |||||
・ジャンル別 ≫ プログラミング ≫ その他 ・メーカー別 ≫ ま行 ≫ ま ≫ マイクロソフト ≫ その他 |