Accueil > Forum > > > > recuperer le message derreur excel en automation
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|