반응형

분류 전체보기 394

[win32API] CreateProcess() 를 이용하여 프로세스 끝날때까지 기다리기

기타사항 : EVC, winCE5 테스트완료. 예제소스코드는 인터넷에서 구한자료. 예제코드 예제코드 아래의 소스코드로 프로세스가 끝날때까지 기다릴수있다. STARTUPINFO sui; PROCESS_INFORMATION pi; DWORD Ret; memset(&sui, 0x00, sizeof(STARTUPINFO)); sui.cb = sizeof(STARTUPINFO); Ret = CreateProcess(buffer, NULL, NULL, NULL, FALSE, 0, NULL, NULL,&sui, &pi); if (Ret) { hProcess = pi.hProcess; WaitForSingleObject(hProcess, 0xffffffff); CloseHandle(hProcess); } 위의 소스코드..

SW 개발 2009.01.15

[win32API] CreateProcess() 를 이용해 아규먼트 줘서 실행파일실행

기타사항 : EVC, winCE5 테스트완료. 참고 링크 예제소스... CreateProcess를 사용하면서 argument를 주는 방법 예를들어 test.exe를 그냥 실행하는 것이 아니라 command 창에서 test.exe start 처럼 실행 할 때 즉 argument를 줘서 실행하는 방법이다. 첫 변수의 값에 "c:\test.exe", 두 번째 변수는 "c:\test.exe start"라고 주면 된다. 그러면 만들어진 process에서는 api 함수로 만든 녀석은 main의 세 번째 이던가로 들어오고 MFC로 작성된 app는 AfxGetApp()->m_lpCmdLine 이 값을 사용하면 argument로 받은 값을 볼 수 있다. 참고 링크 http://support.microsoft.com/kb..

SW 개발 2009.01.15

[winCE/WM] winCE 어플에서 전체화면만들기

기타사항 : EVC, winCE5 테스트완료. aygshell 해더파일추가 aygshell 라이브러리 추가 전체 화면으로 바꾸기..(init dialog 세팅) destrory 부분에서 다시 전체화면 원상복구 마크다운변환 : 20190905 기타사항 : EVC, winCE5 테스트완료. aygshell 해더파일추가 #include aygshell 라이브러리 추가 #pragma comment(lib, "aygshell.lib") 전체 화면으로 바꾸기..(init dialog 세팅) (이 코드의 원리는...좀 무식하긴 하지만 아예 메뉴바니뭐니 다 없애 버린다.--> 결국은 전체화면;;) CWnd *tWnd = FindWindow(TEXT("HHTaskBar"), NULL); // TaskBar의 핸들을 알아..

SW 개발 2009.01.15

[winCE/WM] 전체화면색깔 바꾸기

기타사항 : EVC, winCE5 테스트완료. OnPaint() 핸들러추가. 예제코드 참고응용 전체화면만들기!! 예제코드 아래의 코드 추가. (이때 m_nColor 값을 변화시킨다음에 이벤트를 받으면 화면변함!) void CPixelTestDlg::OnPaint() { // TODO: Add your message handler code here COLORREF cr; switch(m_nColor) { case TEST_COLOR_RED: cr = RGB(255,0,0); break; case TEST_COLOR_GREEN: cr = RGB(0,255,0); break; case TEST_COLOR_BLUE: cr = RGB(0,0,255); break; case TEST_COLOR_WHITE: cr =..

SW 개발 2009.01.15

winCE > 네트워크 > NDIS > AP 리스캔 하기!

마크다운변환 : 20190905 기타사항 : EVC, winCE5 테스트완료. 틀린사항이나 오류사항은 지적해주시면 감사하겠습니다. AP 리스캔 명령어가 필요한이유? wzcsapi 로 해서 ap리스트를 받아와보면.. 해당 ap리스트들이 완전히 실시간데이터라고 생각되기엔 어려운것 같다. 가끔가면 아무리 스캔을 해도 안보이는 AP가 있었기 때문이다. 정확이유는 모르겠지만. 어떤 ap는 사라져 버리면 계속 기다려도 안나타 난다. 그때 nids쪽으로 Rescan OID 를 날린다음 다시 wzcsapi 를 통해 읽어보니 업데이트가 되었다. 단, 주기적으로 AP를 스캔하는 프로그램을 작성하였는데.. 너무 자주 AP를 스캔하니, 무선랜 동작이 제대로 이뤄짖 않았다. NDIS로의 리스캔 명령은 가끔쓰고.. wzcsapi..

SW 개발 2009.01.15

winCE > 네트워크 > NDIS > 현재 연결된 AP의 RSSI 얻오기

마크다운변환 : 20190905 기타사항 : winCE5 / EVC 테스트완료, 오류사항이나 틀린점은 댓글로 지적해주세여 wzcsapi 로도 RSSI값을 얻어 올수있지만, ndis 로 얻어오는 방법도있다. PUCHAR buffer = NULL; NDIS_802_11_RSSI rssi,rssiAbs; PNDISUIO_QUERY_OID rssiOid; unsigned int lenReq; DWORD dwReturnedBytes = 0; buffer = (PUCHAR) malloc( sizeof(NDISUIO_QUERY_OID) + sizeof(ULONG) ); memset( buffer, 0, sizeof(NDISUIO_QUERY_OID) + sizeof(ULONG) ); lenReq = sizeof(NDI..

SW 개발 2009.01.15

winCE > 디바이스 > ActiveSync Disable / Enable 시키기

마크다운변환 : 20190905 기타사항 : EVC, winCE5 테스트완료. 오류사항이나 틀린점은 댓글로 달아주세여 밑에도 나와있지만.. 해당 함수는 usb관련 기능에서 massStorage 기능과 activeSync 기능을 스위칭 할수있는것 같다. 일단 PDA특성상 massStorage 기능은 확인못했지만 activeSync기능은 disable / enable 을 테스트 완료했다. ... You can certainly use the IOCTL_UFN_CHANGE_CURRENT_CLIENT to dynamically swap between a mass-storage profile and a serial (Activesync) one, so I think therefore it should also b..

SW 개발 2009.01.15

[win32API] SetTimer() KillTimer() 사용, 간단예제

타이머세팅 api 타이머킬링 api 기타사항 : 컴파일환경 EVC 4.0 타이머세팅 api SetTimer(100, TIMER_INTERVAL, NULL); 위의 함수로 세팅한후... 해당 메시지핸들러는 OnTimer이다. 후에.. 100 이라는 곳은 각 타이머 이벤트의 id로서 여러가지 타이머 활용가능 타이머킬링 api KillTimer(100); // 타이머 끝 void CLedTestDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default static BOOL bTimerFlag = TRUE; if (nIDEvent==100) { SetTimer(100, TIMER_INTERVAL, NUL..

SW 개발 2009.01.07
반응형