begin process at 2012 05 30 06:39:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

recuperer le message derreur excel en automation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recuperer le message derreur excel en automation

mardi 6 novembre 2007 à 23:22:20 | recuperer le message derreur excel en automation

avengerfrance

Bonjour à tous ! Je souhaite recuperer le message que fait excel quand il ouvre un fichier HS (header xls ok mais contenu foireu... ou autre). J'ai fait un bout de code qui "marchotte" et qui tombe en panne de temps en temps... Mais je ne maitrise pas du tout les morceaux qui viennent d'exemples d'ici et de la. Bon bref si qqun peut m'aider, merci d'avance. #include "stdafx.h" #include "afxwin.h" #include #define USE_PROGID 1 #define USE_LIBID 0 #if USE_PROGID #import "progid:Excel.Sheet" auto_search auto_rename rename_search_namespace("Office10") #elif USE_LIBID #import "libid:{00020813-0000-0000-C000-000000000046}" auto_search auto_rename version(1.3) lcid(0) no_search_namespace #else #pragma message ("Make sure the path to excel.exe is correct") #import "c:\office\office10\excel.exe" auto_search auto_rename dual_interfaces #endif BOOL Fichier_OK; void dump_com_error(_com_error &e) { Fichier_OK = FALSE; _tprintf(_T("\tFICHIER HS !\n\n")); _tprintf(_T("\tCode = %08lx\n"), e.Error()); _tprintf(_T("\tCode meaning = %s\n"), e.ErrorMessage()); _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); _tprintf(_T("\tSource = %s\n"), (LPCTSTR) bstrSource); _tprintf(_T("\tDescription = %s\n"), (LPCTSTR) bstrDescription); } struct StartOle { StartOle() { CoInitialize(NULL); } ~StartOle() { CoUninitialize(); } } _inst_StartOle; UINT MyThreadProc(LPVOID pParam) { HWND hwnd; HWND hwnd1; HWND hwnd2; char pszBuffer[513]; HWND g_HwndWordDlg = 0; hwnd = FindWindow("XLMAIN", NULL); _tprintf(_T("\tHandle parent= %d\n"), hwnd); hwnd1 = GetWindow(hwnd,GW_CHILD); _tprintf(_T("\tHandle child = %d\n"), hwnd1); GetClassName(hwnd1,pszBuffer,512); _tprintf(_T("\tLe class name de cette fenetre CHILD est : %s\r\n"), (LPCTSTR) pszBuffer); hwnd2 = GetWindow(hwnd,GW_ENABLEDPOPUP); _tprintf(_T("\tHandle POPUP = %d\n"), hwnd2); GetClassName(hwnd2,pszBuffer,512); _tprintf(_T("\tLe class name de cette fenetre POPUP est : %s\r\n"), (LPCTSTR) pszBuffer); if ((hwnd2!=0) || (hwnd1==0)) { if (!strcmp(pszBuffer,"#32770")) { _tprintf(_T("\tLe fichier est HS (pas de header xls)\r\n")); } if (!strcmp(pszBuffer,"bosa_sdm_XL9")) { _tprintf(_T("\tLe fichier est protege par mot de passe\r\n")); } PostMessage(hwnd2, WM_KEYDOWN, VK_ESCAPE, 0); PostMessage(hwnd2, WM_KEYUP, VK_ESCAPE, 0); Fichier_OK = FALSE; } return 0; } void main() { using namespace Excel; _ApplicationPtr pXL; CWinThread* pRunningThread = NULL; HANDLE hfind; WIN32_FIND_DATA wfd; char szroot[MAX_PATH],temporaire[MAX_PATH]; pXL.CreateInstance(L"Excel.Application"); pXL->Visible[0] = VARIANT_TRUE; WorkbooksPtr pBooks = pXL->Workbooks; strcpy( szroot, "c:\\*.xls"); //Je teste tous les .xls à la racine de C: hfind = FindFirstFile(szroot, &wfd); if(hfind == INVALID_HANDLE_VALUE) { FindClose(hfind); exit; } do { strcpy( temporaire, "c:\\"); strcat( temporaire, wfd.cFileName ); _tprintf(_T("Open = %s\r\n"), temporaire); Fichier_OK = TRUE; //initialise la variable booleene pRunningThread = AfxBeginThread(MyThreadProc, NULL); try { pXL->Workbooks->Open(temporaire); ::WaitForSingleObject(pRunningThread->m_hThread, 6000); } catch(_com_error &e) { dump_com_error(e); } if (Fichier_OK==TRUE) {_tprintf(_T("FICHIER OK : %s\r\n\r\n"), temporaire);} else {_tprintf(_T("FICHIER HS : %s\r\n\r\n"), temporaire);} Sleep(100); pXL->Workbooks->Close(1); } while(FindNextFile(hfind, &wfd)); FindClose(hfind); pXL->Quit(); getch(); }


Cette discussion est classée dans : fichier, excel, ok, hwnd, tprintf


Répondre à ce message

Sujets en rapport avec ce message

Petite question ayant attrait à la gestion de fichier. [ par meteore ] Voila je suis en train de faire un petit logiciel pour le classement de mes cds.J'ai donc créer une fonction permettant d'ajouter un cd dans une boite API Win32, problème de variable [ par bouba ] Salut a tous, j'ai un blem de variable dans mon programme. Voici mon code source.LPSTR Path="";LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM Ecrire dans fichier excel par interface C plus plus [ par cvi ] Comment puis-je écrire dans un fichier excel à partir d'une interface concue en c plus plus ?Pouvez-cous me donner un exemple de code ?Merci d'avance. Renommer un fichier [ par CyberP ] Comment renommer un fichier ?J'ai utilisé ceci mais ca ne marche pas :SHFILEOPSTRUCT operation;operation.hwnd = hWnd;operation.wFunc = FO_RENAME;opera Ouvrir un fichier excel deja enregistrer ss VC++ [ par kalf2000 ] salut a tous,voila je voudrai faire un truc très simple, je veux que lorsque je click sur un bouton, un fichier excel (.xls) qui contien deja des info accés à un fichier Excel [ par gagaet22 ] Bonjour à tous!!!En basic, pas de souci pour l accés à Excel. Par contre en c++ je n ai AUCUNES IDEES de comment m y prendre. J ai regardé dans MSDN e ouvrir fichier texte avec borland c++6 [ par ththththth ] Bonjour a tous. Ayant été contraint d'abandonner mon cher VB6 pour passer a Borland, je suis un peu pommé (meme si ca se resemble plus ou moins).Je ch GetDlgItem? [ par jimtruand ] salut!le but de mon prog MFC est de pouvoir saisir du texte dans une edit box et de recopier le texte dans un fichier.docquand je clique sur le bouton EXcel i need you [ par ifren ] bonjourje voudrai creer une application sous vc++ et qui (en clickant par exemple sur un boutton) me crée un fichier .xls (Excel), en faisant remplir ouvrir un fichier Excel avec 'C plus plus ' [ par cvi ] Mon problème est d'ouvrir un fichier excel d'après une interface créer à l'aide de visual C"plus plus" 6.0.Le but est d'ouvrir un fichier avec un bout


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,650 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales