2012-08-24 3 views
2

C++ 프로그램을 사용하여 바탕 화면에 응용 프로그램 창을 재배치하고 싶습니다. 어떻게해야합니까, 나는 두 가지 상황에 대한 해결책이 필요합니다.Gnome 또는 KDE에서 데스크톱의 응용 프로그램 창을 프로그래밍 방식으로 이동

  1. 이동하려는 응용 프로그램의 원본이있는 경우.

  2. 외부 프로그램을 작성하여 다른 응용 프로그램의 창을 이동하십시오.

+0

? 나는 표준 방법이 있을지 의심 스럽다. 관련 사양 (EWMH, ICCCM, NET)은 클라이언트가 창 관리자와 통신하는 방법을 제어하지만 다른 클라이언트에 영향을 줄 수는 없습니다. –

+0

예, 다른 응용 프로그램. – rajat

답변

1

외부 배쉬 스크립트 :이에 대한 자세한 내용은

xdotool search --onlyvisible --class dolphin windowmove 13 37 
#          ^    ^^
#         window class   X & Y coordinates 

, xdotool search, xdotool windowmoveman xdotool을 사용합니다.

C++ 예 :

#include <cstdlib> 
#include <string> 
#include <sstream> 

using namespace std; 

int main() 
{ 
    string cls="dolphin"; 
    int x=13, y=37; 

    stringstream s; 
    s<<"xdotool search --onlyvisible --class "<<cls<<" windowmove "<<x<<" "<<y; 

    system(s.str().c_str()); 

    return 0; 
} 

그리고 최소한의 예 : 당신은 다른 응용 프로그램의 창을 의미

#include <stdlib.h> 

int main() 
{ 
    system("xdotool search --onlyvisible --class dolphin windowmove 13 37"); 
    return 0; 
} 
+0

윈도우 클래스 란 무엇입니까? 이동하려는 응용 프로그램의 창 클래스를 찾는 방법은 무엇입니까? – rajat

+0

@rajat 프로세스 이름과 같아야한다고 생각합니다. 이 클래스들을 사용할 필요는 없다.'xdotool search' 정보를 보라. –

+0

오크 멋진, 작동하도록있어! 자, C++을 사용하여 그것을하는 방법? – rajat