Hello,
j'utilise Borland C++ Builder 6 et mon application ne s'exécute que via le compilateur (Commande exécuter de Builder). Si je le lance via douvle click de puis l'explorer windows, l'exécutable ce lance mais n'affiche rien or il devrait ouvir une boîte de dialog! mon application est une application créer via l'"expert consol" et commance comme ceci:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <vcl\Clipbrd.hpp>
#include <windows.h>
#include <inifiles.hpp>
//---------------------------------------------------------------------------
#define INI_FILE "config.ini"
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
//read config file for options
TIniFile *iniFile = new TIniFile(ExtractFilePath(Application->ExeName) + INI_FILE);
bool optSaveToFile = iniFile->ReadBool("output", "save to a file", true);
bool optPrint = iniFile->ReadBool("output", "print", true);
int optMinMarginHorizontal;
int optMinMarginVertical;
bool optCenterPicture;
bool optOpenBmpFileAfterSave;
if(optSaveToFile || optPrint)
{
optMinMarginHorizontal = iniFile->ReadInteger("picture", "min margin horizontal", 250);
optMinMarginVertical = iniFile->ReadInteger("picture", "min margin vertical", 250);
optCenterPicture = iniFile->ReadBool("picture", "center picture", true);
if(optSaveToFile)
{
optOpenBmpFileAfterSave = iniFile->ReadBool("output", "open bmp file after save", true);
}
}
delete iniFile;
//make printscreen of curent active window
keybd_event(VK_SNAPSHOT,1,0,0);
bool bBoucle = true;
do
{
WaitForSingleObject(NULL, 20);
if(IsClipboardFormatAvailable(CF_DIB))
bBoucle = false;
}
while(bBoucle == true);
TClipboard *pCB = Clipboard();
if(pCB->HasFormat(CF_BITMAP)) //test Clipbaord data format (schould be bitmap format)
{
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
try
{
pBitmap->LoadFromClipboardFormat(CF_BITMAP, pCB->GetAsHandle(CF_BITMAP), 0);
if(optPrint)
{ //open print dialog window for printer select
TPrintDialog *prtnDlg = new TPrintDialog(NULL);
if(prtnDlg->Execute())
{
...
merci pour votre temps passer pour moi
huw 