WindowsNT互換指向 - ReactOS Part10

レス数が950を超えています。1000を超えると書き込みができなくなります。
1Be名無しさん2013/06/21(金) 00:06:06.92
WindowsNT系OSのアプリやドライバを動作させる事を目指して開発されている
「ReactOS」に関する情報交換スレです。
・次スレは、980を踏んだ人がたてましょう。
・過度の煽り行為や荒し厳禁!!
・最低限のルールを守って正しく進行しましょう。

本家
http://www.reactos.org/

公式wiki
http://www.reactos.org/wiki/

既知のバグ(英語)
http://www.reactos.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED

情報まとめ
http://reactos.2chv.net/wiki/

専用あぷろだ(1Mbyte制限)
http://reactos.2chv.net/uploader/upload.html

938Be名無しさん2017/12/21(木) 00:01:11.45
Flash Playerは2020年で終了だから
もう放置でいいと思う

少ない人数で開発しているんだし

939Be名無しさん2017/12/21(木) 18:44:56.91
公式wikiのアプリテスト報みてる?
https://reactos.org/wiki/Testing_Central
https://reactos.org/wiki/Games_ROS_Testing
https://reactos.org/wiki/Tests_for_0.4.7
3つめはflashにも言及 Operaで吉みたいな

940Be名無しさん2017/12/21(木) 23:58:08.01
もうIMEはWindows互換で実装は保留にして
とりあえずArwinssみたく、Linuxから流用すればいいのに

941片山博文MZ ◆T6xkBnTXz7B0 2017/12/24(日) 16:31:06.89
クリスマスムードで、あまり進捗は進んでいない。

942Be名無しさん2017/12/24(日) 20:09:12.57
クリスマスが過ぎると今度は年末年始で
その次はロシア正教のクリスマスで
その次は神現祭で
その次は復活祭で
その次は・・・

943Be名無しさん2017/12/26(火) 20:04:24.89
まとめwikiトップの新着情報の更新(12月12日)どなたか存ぜぬが感謝
しかし0.4.7のリリース日だけ古いままになってるので修正希望
ついでに以下希望
「1.ReactOSを紹介する」に>>1 の本家と公式wikiのリンク貼る
「5.ReactOSの開発参加」にgithubのリンク貼る

944Be名無しさん2017/12/30(土) 21:21:12.84
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

KW3TTKUKID

945片山博文MZ ◆T6xkBnTXz7B0 2018/01/01(月) 02:14:26.44
Hi all,
From: Colin

I just finished converting our "project-tools" SVN repo to Git and
splitting it up into individual repositories in the process.
These repos have already been uploaded to GitHub
(https://github.com/reactos), so you can have a look and comment easily.
Welcome these 18 new repositories:

* ahk_tests
* buildbot_config
* git-tools
(以下略)

946片山博文MZ ◆T6xkBnTXz7B0 2018/01/02(火) 18:02:47.90
Colin Finch says on freenode IRC #reactos-dev:
17:32 (Colin_Finck) katahiromz: and by the way, hooking into APIs to trace
program execution is fully legal. This is how I developed most of my printing
components. I recall that you asked the other day

947Be名無しさん2018/01/02(火) 18:06:41.45
APIをフックするツール「APIモニター」。API呼び出し分析用。
API Monitor
http://www.rohitab.com/apimonitor

ウィンドウ間の通信で使われるWindowsメッセージを分析するツール「Winspector Spy」。
Winspector
http://d.hatena.ne.jp/yu-hr/20100406/1270570941

948片山博文MZ ◆T6xkBnTXz7B0 2018/01/04(木) 22:47:57.12
起動時にピロピロが回転するようになった。

949Be名無しさん2018/01/10(水) 01:08:21.79
SpectreやMeltDownのCPU脆弱性でWindowsの解析が進んだりするんだろうか

950Be名無しさん2018/01/11(木) 21:24:30.65
世界教師マイトLーヤ「大暴落は日本からスタート」
http://rio2016.5ch.net/test/read.cgi/2chse/1512813686/l50
【マイトLーヤ】 米国債を売れ 【1200兆円】
https://medaka.5ch.net/test/read.cgi/eco/1515587891/l50

951Be名無しさん2018/01/13(土) 08:08:19.24
法的な関係上基本ブラックボックス手法以外での解析はまずいんじゃなかったっけ、
脆弱性とか使って見えないはずのところを覗いての解析はしてないと思う。

952Be名無しさん2018/01/16(火) 20:03:01.66
Wineと比較してどれだけ有利なの?

953Be名無しさん2018/01/16(火) 21:56:44.99
wineのインストールが不要な程度

954Be名無しさん2018/01/17(水) 18:18:27.85
wineでexcelが走ればいいよ

955Be名無しさん2018/02/02(金) 00:02:32.26
IMMやTSFが形になるまでのWorkAroundとして何か作れないか頑張った
で、ReactOS向けの日本語入力FEPの試作品が出来た
緩いことで有名なMITライセンスを適用したから好きに改造して欲しい

MonolithVJKシリーズ。Python用モジュール「keyboard」の動作確認用に試作
MonolithVirtualJapaneseKeyboard_forROS.py
https://drive.google.com/file/d/1bbCecPfzgPbbXzg8u9Ctequ8nZOnnJzL/view?usp=sharing
MonolithVirtualJapaneseKeyboard_forROS.bat
https://drive.google.com/file/d/1-yVsI5c8XLOoKrs3VSi9ltmZlz_B4qq6/view?usp=sharing

SentinelFEPシリーズ。バックエンドは「Google CGI API for Japanese Input」
!!!CAUTION!!!
Pythonが落ちるので「https://」が使えなかった。
http://」でGoogleとやり取りするので変換内容が平文でネットを流れる。やべぇ
SentinelGCAFEP_py3_forROS.py
Sentinelかな漢字変換フロントエンドプロセッサ Google CGI API for Japanese Input 版
https://drive.google.com/file/d/15Twn8h1n3Gck2JzarwT5_HIaKWPj19Zd/view?usp=sharing
SentinelGCAFEP_py3_forROS.bat
SentinelGCAFEP_py3_forROS.pyをデスクトップに配置した場合のサンプルバッチファイル
https://drive.google.com/file/d/1osNzPpf2Kov5BY1Hx7CdC5zpfW5i9Bct/view?usp=sharing
SentinelGCAFEP_IDLE.bat
SentinelGCAFEP_py3_forROS.pyをデスクトップに配置した場合のIDLEで開くためのサンプルバッチファイル
https://drive.google.com/file/d/1t1pO7e8YvxWjehnDZmTU8tQNwJPwLAVg/view?usp=sharing

956Be名無しさん2018/02/02(金) 00:03:20.62
続き

SentinelFEPシリーズ。バックエンドは「SKK Server」
SentinelSKKservFEP_py3_forROS.py
Sentinelかな漢字変換フロントエンドプロセッサSKKserv版
https://drive.google.com/file/d/1jXSDmch7n_MIwN5yKCeSkYHahPy15-27/view?usp=sharing
SentinelSKKservFEP_py3_forROS.bat
SentinelSKKservFEP_py3_forROS.pyをデスクトップに配置した場合のサンプルバッチファイル
https://drive.google.com/file/d/1vDMhQmpUOkpQPSN99nWIT1tlWuyKYDxU/view?usp=sharing
SentinelSKKservFEP_IDLE.bat
SentinelSKKservFEP_py3_forROS.pyをデスクトップに配置した場合のIDLEで開くためのサンプルバッチファイル
https://drive.google.com/file/d/1z82ugbSCdE_eIiaQ43OYC1X6iikBImHW/view?usp=sharing
pcrvskkserv.bat
pcrvskkserv向け。アーカイブをデスクトップに展開しSKK-JISYO.Sを用いた場合のサンプルバッチファイル
https://drive.google.com/file/d/1nKbKWQYbMX_Rr74tDvnRjxt0G_-xpWZW/view?usp=sharing

結論:API実装しようぜ、って片山氏の方向性が正しい
俺氏の仕事がそれまでの繋ぎのヒントになれば幸い

バグ
何かの拍子に高速でCapsLockがオンオフする場合がある
その場合は Shiftキーを何回か押す→Shift+CapsLockキーを何回か押す、で直る

957Be名無しさん2018/02/02(金) 00:06:48.76
もう一つネタを投稿
GNUEmacsにDDSKKを入れてReactOSで動かせたから報告する
>>602 >>633 と若干被るかも。すまそ

GNUEmacs+DDSKK on ReactOS
GNUEmacs
https://www.gnu.org/software/emacs/
Daredevil SKK
http://openlab.ring.gr.jp/skk/ddskk-ja.html

Windowsでのやり方
「ロリポの勉強ノート」「Windowsで簡単にEmacsとddskkを使う」
ttp://vps.lolipop.jp/Windows%E3%81%A7%E7%B0%A1%E5%8D%98%E3%81%ABEmacs%E3%81%A8ddskk%E3%82%92%E4%BD%BF%E3%81%86
「package.elで導入するSKK」
ttps://qiita.com/asciian/items/c5c7115e0ac3f8273664
※ Diredモードには"C-x d"でも入れる。

DDSKK自身のドキュメント
http://openlab.ring.gr.jp/skk/maintrunk/skk-16.1.pdf
http://openlab.ring.gr.jp/skk/maintrunk/skk-16.2.pdf

試したのは二通り
A. GNUEmacs22.3+DDSKK16.1
B. GNUEmacs24.5+DDSKK16.2

GNUEmacs25以上は俺氏の安定環境(ReactOS 0.4.7 on VirtualBox5.2.6)では起動しなかった。
>>602氏の報告の時点では動いているんだよね……(´・ω・`)

958Be名無しさん2018/02/02(金) 00:07:23.81
続き

以下手順
1. GNUEmacsをReactOSで使いたいディレクトリ位置でWindows側で展開する。
2. WindowsでのDDSKKの導入手順に従いDDSKKを導入する。
3. DDSKKが入ったGNUEmacsのディレクトリをシェアードフォルダ経由でReactOS側に持っていく。
4. Windows側でDDSKKをインストールしたのと同じディレクトリ位置にGNUEmacsのフォルダを置く。
5. runemacs.exeへのリンクをデスクトップなりに置く。

例)
Windows側
C:\Program Files\emacs-22.3-bin-i386
ReactOS側
C:\Program Files\emacs-22.3-bin-i386

両者の絶対パスを揃えるのがミソ。これでOSとは独立した日本語入力環境が確保出来る。

959Be名無しさん2018/02/02(金) 00:10:32.37
おまけ

Python で SKK server 用フロントエンド書くって人向けの情報まとめ
「メモ: Common LispでSKKサーバのクライアントを書く」
ttps://masatoi.github.io/2017/11/19/skk-client
「SKK server-client protocol for dbskkd-cdb (unofficial)」
https://github.com/jj1bdx/dbskkd-cdb/blob/master/skk-server-protocol.md
「SKKServプロトコル」
https://ja.osdn.net/projects/pysocialskkserv/wiki/SKKServ

pywin32
pythonでwin32apiが叩けるモジュール
https://github.com/mhammond/pywin32/
ttp://timgolden.me.uk/pywin32-docs/contents.html
ttps://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

960Be名無しさん2018/02/02(金) 00:11:21.78
続き

pywin32インストール時のアレコレ
https://stackoverflow.com/questions/20113456/installing-win32gui-python-module
自分の環境だと↓こうだった
「C:\Python27>python.exe c:\python27\scripts\pywin32_postinstall.py -install」

pywin32_postinstall.pyのオプション
Options:
-install : Configure the Python environment correctly for pywin32.
-remove : Try and remove everything that was installed or copied.
-wait pid : Wait for the specified process to terminate before starting.
-silent : Don't display the "Abort/Retry/Ignore" dialog for files in use.
-quiet : Don't display progress messages.

Python: Get caret position
Windowsのキャレット位置取得の話
https://stackoverflow.com/questions/19724360/python-get-caret-position

実験環境(ReactOS0.4.8-dev+Python2.7.14 on VirtualBox5.2.6 on Win10_64)でstackoverflowのサンプルコード走った
結果、クライアント座標としてキャレット位置が手に入る。かな漢字変換の変換窓を作るのに使えると思われ
※ ブラウザのキャレット位置取得問題は魔境っぽいんでパス

961Be名無しさん2018/02/02(金) 01:07:39.98
日本語書き込みテスト。この書込みは、SentinelGCAFEP_py3_forROS.pyによってReactOSから行いました。イエイ

962Be名無しさん2018/02/02(金) 01:16:02.17
"SentinelGCAFEP_py3_forROS.py"←の部分はコピペです。直接入力は実装出来なかったよ。

963片山博文MZ ◆T6xkBnTXz7B0 2018/02/02(金) 15:35:19.04

964Be名無しさん2018/02/02(金) 21:48:58.77
ReactOS 0.4.7+試作日本語入力システム
ova形式の仮想環境まるごと。VirtualBoxでの使用を想定
https://drive.google.com/file/d/1-CZiUB1aWm2IqO1-1uXsTZ_8SKjZ_b9J/view?usp=sharing


ReactOS 自家製日本語入力システムデモ1
PythonスクリプトのFEP + Google CGI API for Japanese Input
https://youtu.be/FWLBbDgTkd4
ReactOS 自家製日本語入力システムデモ2
PythonスクリプトのFEP + SKK Server(今回使用したのはpcrvskkserv)
https://youtu.be/lZZPft_XF6g
ReactOS 自家製日本語入力システムデモ3
Pythonスクリプトの……何だこれ?
https://youtu.be/e3R6JR_heLE


>>963
朗報ですね。大手を振って>>967のようなツールが使えます。実際の条文に「権利者のビジネスに影響がない範囲であれば解析や複製ができる」がどのように記載されるのか注目したいところ。

965Be名無しさん2018/02/02(金) 21:52:09.31
未来にレス付けちゃった
>>967>>947の間違い

966Be名無しさん2018/02/04(日) 12:25:09.34
なんかもっさりしてるけど前に進んでるのは良いことだな

967Be名無しさん2018/02/04(日) 12:46:05.46
解析は合法かもしれないがパクリは著作権的に違法だろう
むしろ解析できていかにパクらないようにするかが難しくなるだろう

968Be名無しさん2018/02/04(日) 13:56:54.76
>>966拙作の話ならありがとう。褒められると伸びます。ReactOSの話なら最新開発版(nightly build)はけっこうキビキビ動くよ
SentinelFEPはモジュールkeyboardの制約からバックスペース動作をもっさりさせざるを得ないんだ。もうちょっとマシに出来るよう頑張るね
駆動アルゴリズムは以下参照。俺氏の手には余るけど、コンパイル言語やアセンブリ言語辺りで別実装組むとサクサク動くと思われ

1・ユーザーの入力を記録
2・入力文字数分BackSpaceを出力
3・記録されたローマ字を平仮名に変換
4・平仮名文字列を変換エンジンに渡す
5・変換エンジンからの結果を出力
6・1へ戻る

>>967サブマリン特許とか、特許関連はクリーンルーム方式にとっても地雷原っぽい。恐い
https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%83%AB%E3%83%BC%E3%83%A0%E8%A8%AD%E8%A8%88
ttps://www.catch.jp/oss-license/2011/11/19/gpl2bsd/

969Be名無しさん2018/02/04(日) 14:10:43.54
ひどい場合だとソースコード全く別になるように書いても、コンパイラーの
最適化ビルドして出てきたアセンブラーコードが同じになる可能性だってある
どうやって回避すればよいものか

970Be名無しさん2018/02/04(日) 14:26:30.08
うわぁ……なんて言うか……うわぁorz
収斂進化です(キリッ で言い訳になりま……せんねやっぱり


BSもっさり問題はsys.stdout.write("\b")とか試してみまっす

971片山博文MZ ◆T6xkBnTXz7B0 2018/02/04(日) 21:46:02.04
詳しく調べないといけないけど、Win2kではimm32でグローバルフックでキー入力を引っ掛けているみたいなんだ。
キー入力をラップするという考え方は間違っていない。

972Be名無しさん2018/02/05(月) 20:36:08.59
SMPには対応しとるん?

973Be名無しさん2018/02/05(月) 23:06:46.60
>>971
Pythonで作っているとキー入力をキャプチャ出来てもキーボードを黙らせられないのがネックでして……
フレームワークとかAPIとかそういうものの重要性が身に染みます。

>>972
最近のNightly BuildをVirtualBox側でSMP有りでインストールした時はデバイスマネージャーにCPUが2つあったよ
ただ効いているかどうかは判らなかった


高速、かつ不安定化しますた
https://youtu.be/VJsqbApEsh0

974Be名無しさん2018/02/05(月) 23:14:21.23
あと、sys.stdout.write("\b") はコマンドプロンプトにゴミが表示されただけだったよ
誰だよ、こんなゴミ情報流したの……俺だよorz

975Be名無しさん2018/02/06(火) 00:28:41.43
>>971
とり急ぎお礼をば。
その後pythonの他にglobalhookを検索キーに加えてググったら使えそうなモジュールが幾つか引っかかりました。
上手くいけばキーボード抑制を実装できそうです。助かりました。

976Be名無しさん2018/02/08(木) 23:54:28.18
あ゛ー、VC++Compilerの2010インストール出来ない……pyHook_py3kをpython3.4向けにコンパイル出来ない……python27のpyHookはReactOS上での挙動がおかしい……
OS依存少な目のコードからWin32API成分多めなコードへ方針転換したものの、ctypes.windll.user32からBlockInputでモディファイアキー黙らせようとすると管理者権が必要……
でもってReactOSの方針は出来るだけ管理者権限で動かすな! https://www.reactos.org/wiki/FAQ#Does_ReactOS_have_the_same_security_problems_as_Microsoft_Windows.E2.84.A2.3F
笑えるほど上手くいかねえ……うけけけけ
ってことで、CLI版はモディファイアキーのリリースイベントを待って次のキー入力を行う、GUI版は最前面にウインドウを張り付けてキーイベント全部奪取するって方向で再設計っす

以上、間に合わせ日本語入力システム作成班からの経過報告でした

977Be名無しさん2018/02/09(金) 00:28:48.18
全部c++で作る訳にはいかないの?

978Be名無しさん2018/02/09(金) 01:20:52.41
確かにctypesの多用は回りくどいっす。でも残念ながら俺っちC++で書いたことないっす

とはいえ真面目な理由もあって、スクリプトなら怪しげな仕込みがあっても一発でわかります
特に現行のCLI版は動作原理がほぼキーロガーですから、改ざんがないか判りやすいのは重要と考えます

979片山博文MZ ◆T6xkBnTXz7B0 2018/02/09(金) 15:10:32.81
>>976
挙動の違いを報告してくれ。

980片山博文MZ ◆T6xkBnTXz7B0 2018/02/09(金) 17:07:02.02

981Be名無しさん2018/02/09(金) 22:00:58.13
>>979
情報が半端でした。ごめんなさい
https://stackoverflow.com/questions/7529991/disable-or-lock-mouse-and-keybord-in-python
↑このページのサンプルスクリプトを
#hm.HookMouse()
#pythoncom.PumpMessages()
この2行をコメントアウトして実行

・pyhook1.5.1 Python2.7.14 Win10_64 Ver1709 での動作
正常動作。キーボード入力は完全遮断。マウスは正常動作

・pyhook1.5.1 Pyhon2.7.14 ReactOS 0.4.7 での動作
IDLEからの起動ではキーボード入力が中途半端に遅くなる程度。コマンドプロンプトからの起動でスクリプトを実行中のウインドウへのキー入力は完全遮断するも、他のウィンドウでの入力は問題なく行えてしまう。マウスは正常動作

Win10, ROS 共に、サンプルスクリプト実行時 IDLE(Python付属の開発環境)からの起動では終了後もpythonw.exeが残存。特にROSでは多重起動状態になり、キー入力マウス入力共に操作を受け付けたり受け付けなかったりと不安定になる

元々のhookingに近い動作をするモジュールはkeyboardで、pyHookはhookingに加え一般ユーザー権限でもblockingが使えるシロモノのようです。紛らわしい
https://sourceforge.net/projects/pyhook/
https://github.com/boppreh/keyboard


>>980
スレ建てよろです(・ω・)ノシ
情報ありがとうございます。リンク先のコードはしっかり読んで今後の開発に生かしたいと思います
>>978でC++は使わないと言ったものの、pywin32やctypes.windllを使おうとするとある程度C++のコードが読める&Python向けに書き直せる必要が出てきましたので、ネットの文章とにらめっこしています

982Be名無しさん2018/02/09(金) 22:03:57.86
追伸
>>960でちょっと触れたブラウザのキャレット位置取得について、一部のブラウザについてはoleacc.dll経由でシステムのキャレット位置を取得出来れば可能かもしれません
https://stackoverflow.com/questions/18156884/how-to-find-out-if-the-caret-exists-in-opera
https://dobon.net/vb/bbs/log3-56/32471.html
Pythonでどうコード組めばいいかはまだイメージ出来ていませんが

983Be名無しさん2018/02/09(金) 22:12:11.09
連投ごめんなさい、訂正です
>>981
hm.HookMouse()
pythoncom.PumpMessages()
ではなく、
hm.MouseAll = uMad
hm.HookMouse()
の二つです、コメントアウトするのは

984Be名無しさん2018/02/09(金) 23:27:01.01
あー、勘違いしてたかも知れないっす
BlockInputの話と特権分離の話とシステムフックの話が頭の中で混ざってました
キーボードからのメッセージの流れをどっかで横にそらすなり捨てるなり出来ればどのキーでも黙らせられますね

拙作の日本語入力FEPではモジュールkeyboardがctypes.windll経由で仮想キーコードを打ち込んでBSやDelを出力、それによって文字消去を実現してますが
この仮想キーコードの出力と物理キーボードの入力が重なると文字の意味が変わってしまうので困ってました
例えば仮想キーコードがDeleteで、物理キーボードでShiftを押しているとメモ帳なんかではBackSpace動作に化けたりとか
何とかならないかと色々読み漁っているうちに混ざったみたいです

入力を引っ掛けたり捨てたり出来るかどうかとそれに権限が必要かどうかは別の話でした
混乱させていたらごめんなさい。フック関連と権限関連は勉強し直します

985片山博文MZ ◆T6xkBnTXz7B0 2018/02/09(金) 23:29:13.81

986Be名無しさん2018/02/10(土) 00:10:00.01
>>985
助かります。デバッグ作業が楽になります

987Be名無しさん2018/02/18(日) 01:08:08.72
間に合わせ日本語入力の経過報告。新規設計。tkinterでGUI付けたった
https://youtu.be/cuQhH4wfQxo

988Be名無しさん2018/02/24(土) 09:09:34.71
>>987
乙です!

新着レスの表示
レス数が950を超えています。1000を超えると書き込みができなくなります。
レスを投稿する