CALENDAR
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< December 2017 >>
閲覧数の多い順
<< Debian SargeにVMware Player をインストール | main | kaffeineが白黒になる。 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - | 編集 |
Linux(KDE)でWSH風

WindowsでWSHを使ってしていた事をLinux(KDE)ではどうするのかなと思って、色々と調べてみました。

コマンドやスクリプトからKDEを操作する方法や、スクリプトから使うダイアログなどを書きます。

コマンドラインからKDEを操作

テンポラリファイルを作成したい
$ mktemp /tmp/tmp.wse39V
コマンドライン から ファイルを引数にしてKonqueror を起動したい
$ kfmclient openURL /tmp/tmp.wse39V
参考:
Driving Konqueror From Scripts: kfmclient
Konquerorをスクリプトで操作: kfmclient
関連記事:
日記 | KDEをコマンドから操作する

スクリプトからKDEのダイアログを使う

メッセージボックスやダイアログを使いたい

KDialogはシェルスクリプトから素敵なダイアログを表示するのに利用できます。

使用法: kdialog [Qt-オプション] [KDE-オプション] [オプション] [arg]

使用例
$ kdialog --msgbox "Hello KDE"

参考:Shell Scripting with KDE dialogs

文字列の代わりに<qt></qt>で囲むとhtmlの構文が使える。

使用例
$ kdialog --msgbox "<qt><table border="1"> <tr><td>aaa</td><td>bbb</td></tr> <tr><td>ccc</td><td>ddd</td> </table></qt>"

Qt 3.3 : QStyleSheet Class QTタグ リファレンス

Konqueror拡張メニュー

"送る"メニュー と同じ機能を使いたい。

KDEでは、"動作" らしいです(ーー;)

~/home/.kde/share/apps/konqueror/servicemenus に(*.desktop)ファイルを作成する。

参考:KDEでWindowsの"送る"メニューに相当する機能を使いたい

Desktop Entry Standard

特殊なディレクトリの名前を知りたい。

Linuxの環境変数を調べるには、

$ printenv

KDEの使用する環境変数

KDE for System Administrators / File System Hierarchy KDEで使用する特殊なディレクトリ一覧

HTA みたいにスクリプトでGUIアプリ

MozillaのXUL。

Kommander Editor : Bash、Perl、PHP、Pythonなど、使い慣れた言語でKParts、DCOPを利用できる。

Kommander Editor 試しに使用してみたけど、ボタンのキャプションに日本語を入力したらウィンドウが応答しなくなった。 日本語をコピーして張り付けたり、.kmdrを直接編集すると日本語を入力できた。

qtconfigで Interface の XIM Input Style を「On The Spot」から「Over The Spot」に変えると普通に入力できるようになった。

それ以外のRADツール KDevelop,Anjuta,Wide Studio,Eclipse,Kylix,JBuilder,Oracle JDeveloper,Eric3 Python IDE,Gambas

データアクセスコンポーネント

KDE用データベースフロントエンド、KNoda。 KNodaは、MySQL、PostgreSQL、SQLite、ODBCデータソースをサポートする。 Microsoft Accessの代替として注目されている。

hk_classesは、データベースアプリケーション開発用のGUI独立型のC++クラスだ。

Perl は、インターフェイスモジュールであるDBIとドラ イバモジュールであるDBD を用いてリレーショナルデータベースにつなげられる。

The KDBC Project Thus KDBC is in fact a kind of ODBC-JDBC-Bridge for C++.

神話に喝! WindowsからLinuxへの移行をめぐって japan.linux.com

$ apt-cache search odbc mdbtools - JET / MS Access database (MDB) tools iodbc - GTK config frontend for the iODBC Driver Manager unixodbc - ODBC tools libraries

新機能のSQLプロバイダ QTSQL KexiDB

DCOPでオブジェクトに接続する

DCOP(Desktop COmmunication Protocol)、KIO(IO ライブラリ)、KParts(コンポーネント オブジェクト モデル)

Windows のCOMにあたるものは、KParts という。KPartsにはデスクトップ通信プロトコル DCOPで通信をする。 DCOPを使えば、コマンドラインやスクリプトからKPartsの操作ができる。 コマンドラインやスクリプトから操作できるオブジェクトを確認するツールとして、KDE DCOPブラウザのKDCOP がある。 $ kdcop で起動できる。

KDCOPを使えばオブジェクトの値を参照したり操作することもできる。

DCOP の使用例

ログアウトの画面を出す。
$ dcop kdesktop KDesktopIface logout
画面をロックさせる。
$ dcop kdesktop KScreensaverIface lock
KonquerorのPIDを調べて、Konquerorでウェブページを開く。
$ dcop konq* konqueror-15729 $ dcop konqueror-15729 KonquerorIface openBrowserWindow http://www.ibm.com/developerWorks
追記:Konquerorでウェブページを開くには下記の方が簡単にできる
kfmclient openURL 'url'
日記 | KDEをコマンドから操作する
DCOP経由でKSnapShotを起動する。
$ dcop `dcopstart ksnapshot` interface
DCOP経由でKWriteを起動する。PIDを変数に格納している。
$ kwritepid=`dcopstart kwrite /home/foo/Desktop/skz.txt` $ echo $kwritepid kwrite-4207

参考

素朴な疑問:Linuxから、Active Directoryを管理したり、逆にWindowsのADSIからOpen LDAPサーバを管理できるのかな。後、WMI互換とかはあるのかな?LinuxとWIndowsのシステムを一括管理とか。

ADSIからLDAPの管理は色々と難しいけどできるみたいだった。Perl,Python,PHPには、ADSIへの接続モジュールがあるみたい。 Perlには、Perl-LDAP というLDAPクライアントがあるみたい。

WMIの代わりはよくわからないけど、MS-RPC、DCOMの代わりに KDEでは、IPC/RPC(DCOP) または、XML-RPCを使用するみたいです。XML-RPCは、MacやWindowsも対応しているみたいです。

色々と調べた結果、ネットワーク越しのシステム管理としてWBEM(Web-Based Enterprise Management)という標準規格があり、WMIは、WBEM互換機能のマイクロソフト実装だということが分かった。WBEMのオープンソース実装としては、OpenWBEMがあるみたい。

ちょっとしたスクリプトのGUIなら、デスクトップ設定ファイル(servicemenus)と、KDialogを使うだけでもいけそうやな。

関連記事

日記 | KDEをコマンドから操作する

| KDE | 23:59 | comments(0) | trackbacks(1) | 編集 |
スポンサーサイト
| - | 23:59 | - | - | 編集 |
コメント
コメントする









この記事のトラックバックURL
http://cafelate.jugem.cc/trackback/45
トラックバック
Perl
PerlPerl(パール)はラリー・ウォールによって作られたインタプリタ方式のプログラミング言語およびその言語処理系ソフトウェアである。Perl言語は、記述の美しさよりも実用性をモットーにしており、C言語|Cや sed (コンピュータ)|sed、AWK、シェルスクリプトなど他の
| プログラム 用語辞典 | 2005/12/03 2:46 AM |