<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Datei in Verzeichniss schreiben]]></title><description><![CDATA[<p>Bitte helft mal einem Anfänger.</p>
<p>Folgendes möchte ich. Wenn ich mein Programm starte, soll eine Binary Datei automatisch in den Installationionsordner meines programmes geschrieben werden.<br />
Dann soll gecheckt werden ob diese Binary schon vorhanden ist. wenn ja, soll sie nicht wieder ins installationsverzeichnis geschrieben werden.</p>
<p>dann soll die binary nach klick auf einen button geöffnet werden.</p>
<p>Bisher habe ich folgendes gefunden:<br />
Dabei wird wohl die binary nach dem klick auf einen button in das installationsverzeichniss geschrieben und ausgeführt.</p>
<p>Ich verstehe den Code aber nicht wirklich und bekomme diesen nicht umgestrickt</p>
<pre><code>void CPHTestDlg::OnButtonTest() 
{
	HGLOBAL hResourceLoaded;
	LPBYTE lpBuffer;

	HRSRC hResource = FindResource(NULL, MAKEINTRESOURCE(IDR_BINARY_TESTEXE), &quot;BINARY&quot;);

	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 += &quot;\\test.exe&quot;;

		hFile = CreateFile(strBuffer,
			GENERIC_WRITE,
			0,
			NULL,
			CREATE_ALWAYS,
			FILE_ATTRIBUTE_NORMAL, 
			NULL);

		if (INVALID_HANDLE_VALUE != hFile)
		{
			WriteFile(hFile, lpBuffer, dwFileSize, &amp;dwBytesWritten, NULL);

			CloseHandle(hFile);
		}

		ShellExecute(NULL, &quot;open&quot;, strBuffer, 0, 0, SW_SHOW);
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/177259/datei-in-verzeichniss-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 01:36:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177259.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Mar 2007 15:16:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei in Verzeichniss schreiben on Fri, 30 Mar 2007 08:51:03 GMT]]></title><description><![CDATA[<p>Bitte helft mal einem Anfänger.</p>
<p>Folgendes möchte ich. Wenn ich mein Programm starte, soll eine Binary Datei automatisch in den Installationionsordner meines programmes geschrieben werden.<br />
Dann soll gecheckt werden ob diese Binary schon vorhanden ist. wenn ja, soll sie nicht wieder ins installationsverzeichnis geschrieben werden.</p>
<p>dann soll die binary nach klick auf einen button geöffnet werden.</p>
<p>Bisher habe ich folgendes gefunden:<br />
Dabei wird wohl die binary nach dem klick auf einen button in das installationsverzeichniss geschrieben und ausgeführt.</p>
<p>Ich verstehe den Code aber nicht wirklich und bekomme diesen nicht umgestrickt</p>
<pre><code>void CPHTestDlg::OnButtonTest() 
{
	HGLOBAL hResourceLoaded;
	LPBYTE lpBuffer;

	HRSRC hResource = FindResource(NULL, MAKEINTRESOURCE(IDR_BINARY_TESTEXE), &quot;BINARY&quot;);

	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 += &quot;\\test.exe&quot;;

		hFile = CreateFile(strBuffer,
			GENERIC_WRITE,
			0,
			NULL,
			CREATE_ALWAYS,
			FILE_ATTRIBUTE_NORMAL, 
			NULL);

		if (INVALID_HANDLE_VALUE != hFile)
		{
			WriteFile(hFile, lpBuffer, dwFileSize, &amp;dwBytesWritten, NULL);

			CloseHandle(hFile);
		}

		ShellExecute(NULL, &quot;open&quot;, strBuffer, 0, 0, SW_SHOW);
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255460</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 30 Mar 2007 08:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Datei in Verzeichniss schreiben on Sat, 31 Mar 2007 18:31:53 GMT]]></title><description><![CDATA[<p>Kann mir keiner helfen ? oder habe ich mich unverständlich ausgedrückt ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256785</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 31 Mar 2007 18:31:53 GMT</pubDate></item></channel></rss>