개발/USB

    USB로 exe 자동실행 소스

    /////// safeDlg.h 에 선언 ///////// int drive, curdrive; static char path[_MAX_PATH]; /////// safeDlg.cpp 에 선언 ////// int i=1; char k='\0'; char* park1 = ":\\security.exe"; char q[100]; 맽 밑에다가 그냥 추가시켜주면 된다. BOOL CsafeDlg::OnDeviceChange( UINT nEventType, DWORD dwData ) { DEV_BROADCAST_HDR *pDevBroadcastHdr = (DEV_BROADCAST_HDR*)dwData; DEV_BROADCAST_PORT *pDevBroadcastPort = NULL; CString sStorage ..

    getdrive ( 최근의 드라이버 불러오는 함수)

    // crt_getdrive.c // compile with: /c // Illustrates drive functions including: // _getdrive _chdrive _getdcwd // #include #include #include #include int main( void ) { int ch, drive, curdrive; static char path[_MAX_PATH]; // Save current drive. curdrive = _getdrive(); printf( "Available drives are:\n" ); // If we can switch to the drive, it exists. for( drive = 1; drive Available drives are: A:..

    WinExec ( 프로세서에서 외부 프로세스 실행하기 )

    WinExec 특정 어플리케이션을 실행한다. Note 16비트 윈도우즈에만 제공된다. 어플리케이션은 CreateProcess 함수를 사용하는 것이 좋다. UINT WINAPI WinExec( LPCSTR lpCmdLine, UINT uCmdShow ); Parameters lpCmdLine [in] 실행될 어플리케이션에 대한 명령어 라인이다(파일 이름과 추가적인 파라미터). lpCmdLine 파라미터에 있는 실행 가능한 파일의 이름이 경로를 가지고 있지 않으면, 시스템은 다음의 절차 대로 실행가능한 파일을 찾는다. 1. 어플리케이션이 실행된 경로 2. 현재 디렉토리 3. 윈도우즈 시스템 디렉토리. GetSystemDirectory 함수는 이 디렉토리의 경로를 나타낸다. 4. 윈도우즈 디렉토리. GetWi..

    WM_DEVICECHANGE (착탈) 메시지

    1.WM_DEVICECHANGE 이벤트를 사용하려면?? SD혹은 USB장치 등이 단말기로부터 분리되면 , 시스템은 윈도우에 WM_DEVICECHANGE 메시지를 전달합니다. API 프로그래밍 에서는 PreTranslateMessage 에서 사용하면 되지만 MFC에서는 PreTranslateMessage에서 잡히지 않습니다. DefWinProc에서 잡아주시거나 혹은 ON_WM_DEVICECHANGE() 매크로를 이용하여 잡아야 합니다. 현재 비주얼 스튜디오에서는 위의 매크로를 지원 해주기 때문에 바로 사용 할수 있으나 , EVC (Visual Studio같은 컴파일러 프로그램) 에서는 메시지가 정의되어 있지 않으므로 상수값을 지정해 주거나 따로 정의하여 쓰셔야 합니다. 2. 메시지 핸들러 설치하는 방법 1..

    [WM_DEVICECHANGE 이벤트 종류]

    이벤트 설명 DBT_CONFIGCHANGECANCELED 현재의 구성에 대한 변경요구가 취소됐다. DBT_CONFIGCHANGED 도크 또는 도크해제의 결과 현재의 구성이 변경됐다. DBT_CUSTOMEVENT 커스텀 이벤트가 발생하다. DBT_DEVICEARRIVAL 디바이스가 삽입돼 이용 가능하게 됐다. DBT_DEVICEQUERYREMOVE 디바이스 제거 허가가 요청되다. 어플리케이션은 이 요구를 거부하고 제거를 취소시키는 것이 가능하다. DBT_DEVICEQUERYREMOVEFAILED 디바이스의 제거요구가 취소됐다. DBT_DEVICEREMOVEPENDING 디바이스가 제거되도록 하고 있다. 거부는 할수 없다. DBT_DEVICEREMOVECOMPLETE 디바이스가 제거됐다. DBT_DEVICE..