X



トップページOS@2ch掲示板
1002コメント261KB
WindowsNT互換指向 - ReactOS Part10
レス数が1000を超えています。これ以上書き込みはできません。
0001Be名無しさん垢版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
0955Be名無しさん垢版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
0956Be名無しさん垢版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キーを何回か押す、で直る
0957Be名無しさん垢版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氏の報告の時点では動いているんだよね……(´・ω・`)
0958Be名無しさん垢版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とは独立した日本語入力環境が確保出来る。
0959Be名無しさん垢版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
0960Be名無しさん垢版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のサンプルコード走った
結果、クライアント座標としてキャレット位置が手に入る。かな漢字変換の変換窓を作るのに使えると思われ
※ ブラウザのキャレット位置取得問題は魔境っぽいんでパス
0961Be名無しさん垢版2018/02/02(金) 01:07:39.98
日本語書き込みテスト。この書込みは、SentinelGCAFEP_py3_forROS.pyによってReactOSから行いました。イエイ
0962Be名無しさん垢版2018/02/02(金) 01:16:02.17
"SentinelGCAFEP_py3_forROS.py"←の部分はコピペです。直接入力は実装出来なかったよ。
0964Be名無しさん垢版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のようなツールが使えます。実際の条文に「権利者のビジネスに影響がない範囲であれば解析や複製ができる」がどのように記載されるのか注目したいところ。
0966Be名無しさん垢版2018/02/04(日) 12:25:09.34
なんかもっさりしてるけど前に進んでるのは良いことだな
0967Be名無しさん垢版2018/02/04(日) 12:46:05.46
解析は合法かもしれないがパクリは著作権的に違法だろう
むしろ解析できていかにパクらないようにするかが難しくなるだろう
0968Be名無しさん垢版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/
0969Be名無しさん垢版2018/02/04(日) 14:10:43.54
ひどい場合だとソースコード全く別になるように書いても、コンパイラーの
最適化ビルドして出てきたアセンブラーコードが同じになる可能性だってある
どうやって回避すればよいものか
0970Be名無しさん垢版2018/02/04(日) 14:26:30.08
うわぁ……なんて言うか……うわぁorz
収斂進化です(キリッ で言い訳になりま……せんねやっぱり


BSもっさり問題はsys.stdout.write("\b")とか試してみまっす
0971片山博文MZ ◆T6xkBnTXz7B0 垢版2018/02/04(日) 21:46:02.04
詳しく調べないといけないけど、Win2kではimm32でグローバルフックでキー入力を引っ掛けているみたいなんだ。
キー入力をラップするという考え方は間違っていない。
0972Be名無しさん垢版2018/02/05(月) 20:36:08.59
SMPには対応しとるん?
0973Be名無しさん垢版2018/02/05(月) 23:06:46.60
>>971
Pythonで作っているとキー入力をキャプチャ出来てもキーボードを黙らせられないのがネックでして……
フレームワークとかAPIとかそういうものの重要性が身に染みます。

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


高速、かつ不安定化しますた
https://youtu.be/VJsqbApEsh0
0974Be名無しさん垢版2018/02/05(月) 23:14:21.23
あと、sys.stdout.write("\b") はコマンドプロンプトにゴミが表示されただけだったよ
誰だよ、こんなゴミ情報流したの……俺だよorz
0975Be名無しさん垢版2018/02/06(火) 00:28:41.43
>>971
とり急ぎお礼をば。
その後pythonの他にglobalhookを検索キーに加えてググったら使えそうなモジュールが幾つか引っかかりました。
上手くいけばキーボード抑制を実装できそうです。助かりました。
0976Be名無しさん垢版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版は最前面にウインドウを張り付けてキーイベント全部奪取するって方向で再設計っす

以上、間に合わせ日本語入力システム作成班からの経過報告でした
0978Be名無しさん垢版2018/02/09(金) 01:20:52.41
確かにctypesの多用は回りくどいっす。でも残念ながら俺っちC++で書いたことないっす

とはいえ真面目な理由もあって、スクリプトなら怪しげな仕込みがあっても一発でわかります
特に現行のCLI版は動作原理がほぼキーロガーですから、改ざんがないか判りやすいのは重要と考えます
0981Be名無しさん垢版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向けに書き直せる必要が出てきましたので、ネットの文章とにらめっこしています
0982Be名無しさん垢版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でどうコード組めばいいかはまだイメージ出来ていませんが
0983Be名無しさん垢版2018/02/09(金) 22:12:11.09
連投ごめんなさい、訂正です
>>981
hm.HookMouse()
pythoncom.PumpMessages()
ではなく、
hm.MouseAll = uMad
hm.HookMouse()
の二つです、コメントアウトするのは
0984Be名無しさん垢版2018/02/09(金) 23:27:01.01
あー、勘違いしてたかも知れないっす
BlockInputの話と特権分離の話とシステムフックの話が頭の中で混ざってました
キーボードからのメッセージの流れをどっかで横にそらすなり捨てるなり出来ればどのキーでも黙らせられますね

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

入力を引っ掛けたり捨てたり出来るかどうかとそれに権限が必要かどうかは別の話でした
混乱させていたらごめんなさい。フック関連と権限関連は勉強し直します
0990Be名無しさん垢版2018/02/26(月) 01:32:05.41
GUI版でけた
ReactOS向け簡易日本語入力環境「MonolithNNK」ver1.0.0デモ
https://youtu.be/jH3EXR1b2Iw
ReactOS向け簡易日本語入力環境「MonolithNNK」インストール&アンインストールデモ
https://youtu.be/dxR4my2NgB0

ダウンロードURL
Monolith簡易日本語入力環境(MSVC++RT2010依存版)←Pythonをインストールしたくない人向け
https://osdn.net/users/natoriumuen/pf/SentinelFEP/dl/MonolithInputEnvironment/MonolithNNK1.0.0onMSVCRT.zip
Monolith簡易日本語入力環境(Python3.4.4依存版)←シェフのオススメ タスクトレイにアイコン出現
https://osdn.net/users/natoriumuen/pf/SentinelFEP/dl/MonolithInputEnvironment/MonolithNNK1.0.0onPython3.4.zip
SentinelSKKservGUI.py単体
https://osdn.net/users/natoriumuen/pf/SentinelFEP/dl/SentinelFEP/SentinelSKKservGUI1.0.0.py

>>988
ありがとう。正式リリース版も楽しんでもらえれば幸いです

>>989
よっしゃ拙作リリース間に合ったぁぁぁ!
ところでスレ建て無理そうなら安価お願いします(・ω・)ノシ
0991Be名無しさん垢版2018/03/01(木) 13:09:02.68
古いPCで日本語入力を試そうとしたものの、CD-Rからファイル転送が上手くいかず
ネットワークカードのドライバがバンドルされてないので繋がらず難航中。
次のバージョン近いらしいから待つかな
0993Be名無しさん垢版2018/03/01(木) 23:35:35.76
>>992
乙です!

>>991
こっちのハードだとUSBメモリが使えました。但し刺したまま再起動するとブート途中で固まりますが
フロッピーディスクとかどうでしょう……って容量が小さ過ぎますね
0994Be名無しさん垢版2018/03/02(金) 00:26:34.10
埋め、ついでにネタをば
ガイアが俺に囁いたのでピンイン(China)とハングル(Korea)の入力作ったったw盛り上げて行くぜぇwww
https://www.youtube.com/watch?v=yHk7fOhnaQU
https://www.youtube.com/watch?v=a2n_Dgu4CDU
Pythonのモジュールの充実ぶりは異常

>>459 のやり方はfirefox 48.0.2 でもおk
kitsuneで日本語入力可

https://www.reactos.org/wiki/Tests_for_0.4.7 にChromeの動かし方が載っている。
"--no-sandbox"を渡すのがミソ。.lnkを編集するのが楽
Chromeウェブストアで"google input tools"なり"google入力ツール"なりで検索するとChrome用日本語入力をインストール可能

実機インストール時システムハングアップからの強制終了後
セーフモード→セーフモードとコマンドプロンプト
コマンドプロンプトから chkdsk /c /f 等と打つことで精神の安寧を得る

この際選り好みはしないのでFat32より障害に強いFSをシステムに使わせてくださいおねがいします死んでしまいます

ふえーん、そんなに激しく(強制終了)されると(データが)トんじゃうよぅ、クソッタレがッ!
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1715日 20時間 31分 15秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況