Stefan Ku"ng <tortoisesvn_at_gmail.com>" wrote:
> Where did you get that information?
> If that's really true, then that would be a bug in Vista.
On Vista, it never occurs with current TSVN version(1.4.8).
Here is my small sample code.
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance;
SHFILEINFO sfi;
CoInitialize(NULL);
SHGetFileInfo(_T(".0"), FILE_ATTRIBUTE_DIRECTORY,
&sfi, sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
Sleep(1000); // some work
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId)
{
case IDM_ABOUT:
//DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
STARTUPINFO s;
PROCESS_INFORMATION p;
TCHAR szCommand[MAX_PATH];
::ZeroMemory( &s, sizeof(s) );
s.cb = sizeof(s);
GetModuleFileName( NULL, szCommand, MAX_PATH );
CreateProcess( NULL, szCommand, NULL, NULL,
FALSE, 0, NULL, NULL, &s, &p );
::WaitForInputIdle( p.hProcess, INFINITE );
::CloseHandle( p.hThread );
::CloseHandle( p.hProcess );
HWND hWndFind;
DWORD dwPid;
hWndFind = FindWindowEx( GetDesktopWindow(), NULL,
szWindowClass, NULL);
while( hWndFind ){
GetWindowThreadProcessId( hWndFind, &dwPid );
if( dwPid == p.dwProcessId )
break;
hWndFind = FindWindowEx( GetDesktopWindow(), hWndFind,
szWindowClass, NULL);
}
MessageBox( hWnd, hWndFind? _T("OK"): _T("EROR"),
_T("FindWindow"), MB_OK );
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Ryoji Ohta
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_tortoisesvn.tigris.org
For additional commands, e-mail: users-help_at_tortoisesvn.tigris.org
Received on 2008-04-16 11:40:37 CEST