Datei in Verzeichniss schreiben



  • Bitte helft mal einem Anfänger.

    Folgendes möchte ich. Wenn ich mein Programm starte, soll eine Binary Datei automatisch in den Installationionsordner meines programmes geschrieben werden.
    Dann soll gecheckt werden ob diese Binary schon vorhanden ist. wenn ja, soll sie nicht wieder ins installationsverzeichnis geschrieben werden.

    dann soll die binary nach klick auf einen button geöffnet werden.

    Bisher habe ich folgendes gefunden:
    Dabei wird wohl die binary nach dem klick auf einen button in das installationsverzeichniss geschrieben und ausgeführt.

    Ich verstehe den Code aber nicht wirklich und bekomme diesen nicht umgestrickt

    void CPHTestDlg::OnButtonTest() 
    {
    	HGLOBAL hResourceLoaded;
    	LPBYTE lpBuffer;
    
    	HRSRC hResource = FindResource(NULL, MAKEINTRESOURCE(IDR_BINARY_TESTEXE), "BINARY");
    
    	if (hResource != NULL)
    	{
    		hResourceLoaded = ::LoadResource(theApp.m_hInstance, hResource);
    		if (NULL != hResourceLoaded)        
    		{
    			lpBuffer = (LPBYTE) LockResource(hResourceLoaded);            
    			if (NULL != lpBuffer)            
    			{                
    				// do something with lpBuffer here            
    			}
    		}    
    
    		DWORD dwFileSize, dwBytesWritten;
    		HANDLE hFile;
    
    		dwFileSize = SizeofResource(theApp.m_hInstance, hResource);
    
    		CString strBuffer;
    		// Datei im Verzeichnis?!?
    		GetModuleFileName(NULL, strBuffer.GetBuffer(_MAX_PATH), _MAX_PATH);
    		strBuffer.ReleaseBuffer();
    		strBuffer.Delete(strBuffer.ReverseFind('\\'), strBuffer.GetLength()-strBuffer.ReverseFind('\\'));
    		strBuffer += "\\test.exe";
    
    		hFile = CreateFile(strBuffer,
    			GENERIC_WRITE,
    			0,
    			NULL,
    			CREATE_ALWAYS,
    			FILE_ATTRIBUTE_NORMAL, 
    			NULL);
    
    		if (INVALID_HANDLE_VALUE != hFile)
    		{
    			WriteFile(hFile, lpBuffer, dwFileSize, &dwBytesWritten, NULL);
    
    			CloseHandle(hFile);
    		}
    
    		ShellExecute(NULL, "open", strBuffer, 0, 0, SW_SHOW);
    	}
    
    }
    


  • Kann mir keiner helfen ? oder habe ich mich unverständlich ausgedrückt ?


Anmelden zum Antworten