|
Search CodeProject for Unzip.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
[Message Deleted]
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Sohail Kadiwala wrote: You could use Self-Extracting Zip Files ( For example see WinZip Self-Extractor[^])
So, you did not read the thread, did you?
Original Post: ... the format has been changed to zip ... I want to be able to install the installer inside the zip file which is in .exe
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
[Message Deleted]
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Sohail Kadiwala wrote: I did. I just mentioned that an alternate way would be to make it a self extracting installer. Winzip Self-Extractor was just an example.
Let me say it again: The OP is already receiving a zip file from somewhere, and his problem is to run the executable which is within that zip file. How can Winzip self-extractor help?
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
Winzip self-extractor was just an example. If you see the link I posted earlier, it gives usage details. He could have used his existing mechanism to launch the self-extractor instead of EXE
Rajesh R Subramanian wrote: s already receiving a zip file from somewhere
I believed the updates are controlled by him.
Sohail
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Sohail Kadiwala wrote: I believe the updates are controlled by him.
He is providing an update mechanism (which just executes a file using ShellExecute). The updates are coming to him from *a site*. Please read his original message. I won't be talking on this any further, as it serves no good to anybody.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
I said "I believed" (past tense). I was not defending my answer but simply explaining what I believed and thought while answering.
I have deleted my previous posts. I agree, it serves no good to anybody and I'll stop here.
Sohail
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Hi, i have written a small code to load a bitmap and display it on the window. The bitmap doesnt get displayed and i get only a blank window.I dont understand where the problem is.Please look at my code and do let me know if i am going wrong somewhere.Plse do help me out.Thnx in advance.
my code:
/*************************************************/
#include "windows.h"
#include "resource.h"
#include "iostream"
#include "tchar.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
typedef std::basic_string<TCHAR> ustring;
HBITMAP hBmp;
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
LPSTR lpszArgument,int nFunsterStil)
{
HINSTANCE hInst = NULL;
ustring uClassName=_T("SIMPLEWND");
WNDCLASSEX wMyClass={0};
wMyClass.cbSize = sizeof(WNDCLASSEX);
wMyClass.lpfnWndProc = WndProc;
wMyClass.hInstance = hInst;
wMyClass.hIcon = (HICON)(LoadImage(0,IDI_APPLICATION, IMAGE_ICON,0,0,LR_SHARED));
wMyClass.hCursor = (HCURSOR)(LoadImage(0,IDC_ARROW,IMAGE_CURSOR,0,0,LR_SHARED));
wMyClass.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
wMyClass.lpszClassName = uClassName.c_str();
if (!RegisterClassEx(&wMyClass))
{
MessageBox(NULL, "Failed to register wnd class", "Information", MB_OK);
return -1;
}
int desktopwidth=GetSystemMetrics(SM_CXSCREEN);
int desktopheight=GetSystemMetrics(SM_CYSCREEN);
HWND hwnd=CreateWindowEx(0,uClassName.c_str(),_T("Simple Window"),WS_OVERLAPPEDWINDOW,
desktopwidth/4,desktopheight/6,desktopwidth/2,desktopheight/2, 0, 0,
hInst, 0);
if (!hwnd)
{
MessageBox(NULL, "Failed to create wnd", "Information", MB_OK);
return -1;
}
ShowWindow(hwnd, 1);
UpdateWindow(hwnd);
hBmp =LoadBitmap(wMyClass.hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
if( hBmp == NULL)
{
MessageBox(NULL, "Failed to load bmp", "Information", MB_OK);
UnregisterClass(uClassName.c_str(), hInst);
return -1;
}
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg,0,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnregisterClass(uClassName.c_str(), hInst);
}
int PaintFunc( HWND hwnd )
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd,&ps);
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmp =(HBITMAP) GetProp(hwnd,"hbmp");
if(hbmp) {
BITMAP bm;
GetObject(hbmp,sizeof(bm),(LPSTR)&bm);
hbmp = (HBITMAP)SelectObject(hdcMem,hbmp);
BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hdcMem,0,0,SRCCOPY);
hbmp = (HBITMAP)SelectObject(hdcMem,hbmp);
}
DeleteDC(hdcMem);
EndPaint(hwnd,&ps);
return 0;
}
LRESULT CALLBACK WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
PaintFunc(hWnd);
return 0;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
}
/*************************************************/
|
|
|
|
|
Try to replace LoadBitmap with LoadImage and use it with LR_CREATEDIBSECTION flag.
|
|
|
|
|
Using load image with LR_CREATEDIBSECTION is making no difference, the image is not getting displayed and i get the same blank window.
|
|
|
|
|
raesa wrote: HBITMAP hbmp =(HBITMAP) GetProp(hwnd,"hbmp");
In your code I coudn't find a call to SetProp(). But you are calling HBITMAP hbmp =(HBITMAP) GetProp(hwnd,"hbmp");
So I guess in the main function after the LoadBitmap(), you must call the SetProp() also.
|
|
|
|
|
Thnx for pointing out the mistake.It worked.Thnk u very much.
|
|
|
|
|
Hi All
Can any one give me tutorial or example link of How to Copy USB Data to System.When any one try to copy Data from usb Device to System(PC) then show a message.
Plz help me
|
|
|
|
|
You can't copy data from USB to system. USB is very different than the serial port, you can't simply access it and read what's on the bus. Instead you have to communicate to a specific device that is sitting on the bus though its driver. To open the driver, call CreateFile with the device symbolic name as argument to the function (which depends on the device to which you want to communicate). Once you got the handle to the driver, you can start excahnging information with the device through WriteFile/ReadFile. You can also exchange device specific codes through DeviceIOControl but these codes are also dependant on the device. So, it really depends on the type of device you would like to communicate with. Which device is it ?
If it is a kind of development board, you should have received some documentation with it that describes how to communicate with it.
|
|
|
|
|
you have any documentation or link then plz give me
|
|
|
|
|
No, I don't because you didn't answer my question. And furthermore, this totally depends on the device with which you want to communicate.
|
|
|
|
|
Ok Device type is pendrive,ipode..
|
|
|
|
|
For the pendrive, you can access it the same way you access a local file, the driver takes care of that. I don't know for the ipod but I guess it is a similar principle. Anyway, you will never really see that these devices are accessed through USB.
|
|
|
|
|
ok Now can you give me tutorial link
|
|
|
|
|
Well, it is just accessing a file. See here[^] for example.
|
|
|
|
|
Do you want to Copy files from the USB memory device to system??
If yes
You can access it as any other normal system drive and use
CopyFile(..) to copy the files from the memory.
Regards,
Sandip.
|
|
|
|
|
NewVC++ wrote: Can any one give me tutorial or example link of How to Copy USB Data to System
As mentioned in my answer to your question yesterday, use the regular File API like CreateFile, ReadFile etc
NewVC++ wrote: When any one try to copy Data from usb Device to System(PC) then show a message.
SHChangeNotifyRegister[^] might be helpful.
You may also consider writing a filter driver
Sohail
Please mark helpful answers
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Hi All
I have a problem to Show USB Drive Name and File name.Problen is that when i insert a USB device then Drive Name and file name is show but also show Some dummy line like this
"ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌA". I debug the code.When i change the this line
char chDriveLabel='A'; to char chDriveLabel='B'; then it is working fine.But when i change this line then i have found some problem like when i insert the
first usb device then nothing show and when i insert
more than i device
then it is showing.So Plz help me code is here
BOOL CUSBDlg::FileList()
{
DWORD dwDrives=GetLogicalDrives();
if(0==dwDrives)
{
return FALSE;
}
DWORD dwCount=0;
char chDriveLabel='A';
char szRootpath[5]={0,0,0,0,0};
while(dwDrives !=0)
{
if ((dwDrives & 1) != 0)
{
sprintf(szRootpath,"%c:\\",chDriveLabel);
if(DRIVE_REMOVABLE==GetDriveType(szRootpath))
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
m_ListCountries.AddString(szRootpath);
m_tree.InsertItem(szRootpath);
szRootpath[3]='*';
hFind=FindFirstFile(szRootpath,&FindFileData);
if (INVALID_HANDLE_VALUE == hFind)
{
}
do
{
if (strcmp(FindFileData.cFileName,_T(".")) && strcmp(FindFileData.cFileName,_T("..")))
{
m_ListCountries.AddString(FindFileData.cFileName);
m_tree.InsertItem(FindFileData.cFileName);
}
AfxMessageBox("helloP");
AfxMessageBox(FindFileData.cFileName);
}while (FindNextFile(hFind, &FindFileData) != 0);
FindClose(hFind);
}
}
dwDrives = dwDrives >> 1;
chDriveLabel++;
}
return true;
}
|
|
|
|
|
That's a repost.
BTW, as suggested yesterday, why don't you handle the FindFirstFile function failure?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|