RSS Twitter Facebook

2009/01/26 (2009年01月 のアーカイブ)

KnobMan 1.33 リリース

KnobMan をアップデート。 バージョン 1.33 をリリースしました。

KnobMan 1.33
今回のリリースでは、プラグインとして .exe 以外のスクリプト言語を使用可能にしています。 と言ってもWindowsのメッセージとかを送出できる言語でないと使いようがないですが。 サンプルとして Python で書いたモノクローム化プラグインを同根しています。 実はPythonってあまり詳しいわけではないのですが、海外の方からPythonで書きたいとかリクエストもらったりしていて、やっぱり向こうでは主流な感じなんでしょうか。 DLLを扱うモジュール(ctypes)とかも揃っていて小回りききそうですね。

ちなみにこんな感じで


import sys
import ctypes

user32=ctypes.windll.user32
WM_SETTEXT=12

def KMSendText(hwnd,text):
  user32.SendMessageA(hwnd,WM_SETTEXT,0,text)

def KMGetText(hwnd):
  length = user32.GetWindowTextLengthA(hwnd)
  if length:
    buffer = ctypes.create_string_buffer("",length + 1)
    if user32.GetWindowTextA(hwnd, buffer, length +1):
      return buffer.value

def KMSetValue(hwnd,layer,param,value):
  s="KnobManCtl:SetValue "
  if layer==0:
    s=s+"Prefs."
  else:
    s=s+"Layer"+str(layer)+"."
  s=s+param+"="+str(value)
  KMSendText(hwnd,s)

def KMGetValue(hwnd,layer,param):
  s="KnobManCtl:GetValue "
  if layer==0:
    s=s+"Prefs."
  else:
    s=s+"Layer"+str(layer)+"."
  s=s+param
  KMSendText(hwnd,s)
  return KMGetText(hwnd)

def KMExport(hwnd,file):
  KMSendText(hwnd,"KnobManCtl:ExportImage "+file)

def KMExit(hwnd):
  KMSendText(hwnd,"KnobManCtl:Exit")


###################################################
def Main():
  hwnd=int(sys.argv[1])
  user32.MessageBoxA(0,"Change to Monochrome","Monochrome",0)
  layers=int(KMGetValue(hwnd,0,"Layers"))
  for layer in range(1,layers+1):
    KMSetValue(hwnd,layer,"Saturation1",-100)
    KMSetValue(hwnd,layer,"Saturation2",-100)
  KMExit(hwnd)
  user32.MessageBoxA(0,"Completed.","Monochrome",0)

Main()

Posted by g200kg : 2009/01/26 23:30:40