2015년 5월 12일 화요일

C# Mouse handle(C# 으로 마우스 핸들링 하기)

DllImport 를 이용하여 user32.dll에 존재 하는 API 를 사용하면 된다.

private const uint LBUTTONDOWN = 0x00000002;
private const uint LBUTTONUP = 0x00000004;
[DllImport("user32.dll")] // DllImport .
static extern void mouse_event( uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo );
[DllImport("user32.dll")] // DllImport 
static extern int SetCursorPos(int x,int y);

1. 마우스 움직이기
Point pt = PointToScreen( Location ); // 마우스 좌표를 가져올 수 도 있음. Point로 좌표를 사용해도 됨.
SetCursorPos( pt.X, pt.Y );  // 마우스가 Pt 좌표에 위치하게끔 하는 함수.

2. 마우스 클릭.
mouse_event( LBUTTONDOWN, 0, 0, 0, 0 ); // 다운
mouse_event( LBUTTONUP, 0, 0, 0, 0 );     // 업 

3. 드래그
mouse_event( LBUTTONDOWN, 0, 0, 0, 0 );   // 시작
mouse_event( LBUTTONUP, 0, 0, 0, 0 );       //  끝

개인적으로 마우스와 키보드 핸들은 AutoIt를 사용하는 것이 조금 더 편하다. 물론 C#에서도 AutoIt COM library 를 reference에 추가 하여 사용하는 것도 가능하다. 현재 대부분의 게임의 메크로에 AutoIt이 사용될 만큼 좋은 기능은 많이 갖추고 있다. 유저 포럼도 상당수 존재 하여 원하는 함수사용에 크게 어려움이 없다.

C# Run another process(application) C#으로 Process interface를 이용한 다른 어플리케이션 실행하기.

다른 프로세스(어플리케이션)을 실행하기 위하여 간단하게 using System.Diagnostics 를 추가 하고, Process 클래스를 사용하면된다.

using System;
using System.Diagnostics;
public class Run_exe
{
  public void Main() 
  {
    Process compiler = new Process();
    compiler.StartInfo.FileName = "c:\\autoexec.bat";
    compiler.StartInfo.UseShellExecute = true;
    compiler.Start();
  }
cs

2015년 5월 11일 월요일

Multi-Body Dynamics for ANSYS (MBD for ANSYS)

Multi-Body Dynamics for ANSYS (MBD for ANSYS) 은 ANSYS Workbench 환경하에 Multi-Body Dynamics 해석할 수 있는 Extension 이다. Contact Model 에 대한 성능이 뛰어나고, LoadTransfer 라는 기능을 통하여 Static 의 하중에 사용하는 것이 가능하다.
아래 동영상은 MBD for ANSYS 해석한 후 MBD Viewer 를 통하여 애니메이션과 Plot 보는 방법을 보여 준다.

 
 
 
 
http://mbd4a.functionbay.com/