|
You last visited: Today at 15:40
Advertisement
Named Pipe zwischen Autoit und C++
Discussion on Named Pipe zwischen Autoit und C++ within the General Coding forum part of the Coders Den category.
01/09/2012, 20:31
|
#1
|
elite*gold: 0
Join Date: Jan 2012
Posts: 29
Received Thanks: 16
|
Named Pipe zwischen Autoit und C++
Hallo.
Ich hatte noch nie etwas mit named pipes zu tun, und wollte fragen, ob es möglich ist, in einer in c++ geschriebenen dll bestimmte texte abzufangen, über named pipes an eine autoit gui zu übergeben, und dort die texte zu bearbeiten etc?
Ich möchte nämlich einen packeteditor machen, der ähnlich wie WPE pro ist.
|
|
|
01/09/2012, 20:37
|
#2
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Wenn AutoIt named pipes unterstützt ist das problemlos möglich. Aber wofür brauchst du bei einem PacketEditor autoit? o.O
|
|
|
01/09/2012, 20:47
|
#3
|
elite*gold: 0
Join Date: Jan 2012
Posts: 29
Received Thanks: 16
|
Quote:
Originally Posted by MoepMeep
Wenn AutoIt named pipes unterstützt ist das problemlos möglich. Aber wofür brauchst du bei einem PacketEditor autoit? o.O
|
Naja autoit ist für mich einfacher.
Gui, funktionen etc ist für mich in autoit einfacher zu machen.
In c++ würde ich die packets z.B. erst in einer txt abspeichern, und dann ausgeben lassen.
Außerdem habe ich mir sagen lassen, dass eine dialogbox für sowas "schäbig" ist, weil ich dann mit den daten nicht richtig arbeiten kann xD
Ja autoit enthält namedpipes, wollte nur wissen, ob es für meinen zweck möglich ist.
Wie gesagt hab mit namedpipes noch nie gearbeitet.
Werde mich jetzt mal durch die welt googeln nach tutorials.
|
|
|
01/09/2012, 21:28
|
#4
|
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
|
*** das ist möglich, ich hab sowas auch mal in der Art gemacht nur nicht in AutoIt. Viel Erfolg
|
|
|
01/09/2012, 22:16
|
#5
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
|
In c++ würde ich die packets z.B. erst in einer txt abspeichern, und dann ausgeben lassen.
|
Wieso dann nicht auch in AutoIt so?
|
|
|
01/09/2012, 22:39
|
#6
|
elite*gold: 0
Join Date: Jan 2012
Posts: 29
Received Thanks: 16
|
Quote:
Originally Posted by MrSm!th
Wieso dann nicht auch in AutoIt so? 
|
Naja in autoit "klappt" es bei mir zumindest das ganze packet etc. mit richtigem abstand etc. in eine variable zu packen.
Die Packets haben nämlich das format:
Code:
Offset BYTE FORMAT TEXTFORMAT
xxxxx | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
In C++ funktioniert das bei mir irgendwie nur wenn ich es in eine txt datei packe.
|
|
|
01/10/2012, 00:26
|
#7
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Die Dateiendung ist doch völlig egal.
|
|
|
01/10/2012, 01:55
|
#8
|
elite*gold: 0
Join Date: Jan 2012
Posts: 29
Received Thanks: 16
|
Quote:
Originally Posted by MrSm!th
Die Dateiendung ist doch völlig egal.
|
Ô.o
XD
Ich meinte damit eigendlich, dass es nur klappt, wenn ich es in eine datei schreibe, und dann von dieser datei ausliest.
Die Dateiendung ist scheißegal das ist mir schon klar XD
Aber es klappt z.B. nicht wenn ich es so mache.
char TestBuffer[200000];
Und da dann mein packet mit "\n\r" reinhaue.
Naja mit NamedPipes ist mir schon lieber, aber hab irwie ein Problem.
Client in Autoit:
Code:
#Include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
AutoItSetOption("MustDeclareVars", 1)
#Region ### START Koda GUI section ### Form=
GUICreate("Server", 490, 186, 192, 124)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Local Const $vzbEZ_PIPE_NAME = "\\.\pipe\TestPipe"
Local $hndlPipe
Local $aPipeData[4]
$hndlPipe = _NamedPipes_CreateNamedPipe($vzbEZ_PIPE_NAME)
If $hndlPipe <> -1 Then
Do
If _NamedPipes_ConnectNamedPipe($hndlPipe) Then
$aPipeData = _NamedPipes_PeekNamedPipe($hndlPipe)
MsgBox(0,"",@LF & "Pipe Server:: Data: """ & $aPipeData[0] & """" & ", " & $aPipeData[1] & ", " & $aPipeData[2] & ", " & $aPipeData[3] & @LF)
If Not _NamedPipes_DisconnectNamedPipe($hndlPipe) Then
ConsoleWrite(@LF & "Pipe Server:: DisconnectNamedPipe() Failed." & @LF)
Endif
Else
MsgBox(0,"",@LF & "Pipe Server:: connectNamedPipe() failed. " & @LF)
Exit
Endif
Until $aPipeData[0] == "DIE"
Else
MsgBox(0,"",@LF & "Pipe Server:: _CreateNamedPipe() failed. " & @LF)
Endif
Server in C++ (dll):
Code:
#include "windows.h"
#include "stdio.h"
HANDLE hPipe;
void PipeTest()
{
BOOL bWrite = false;
DWORD BYTESWRITTEN = 0;
HANDLE hPIPE = CreateFile( "\\.\pipe\TestPipe", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
char buffer[256];
strcpy( buffer, "Test... No Srsly... test" );
if ( hPIPE != INVALID_HANDLE_VALUE )
{
static OVERLAPPED overlapped = { };
bWrite = WriteFile( hPIPE, buffer, sizeof(buffer), &BYTESWRITTEN, NULL );
if ( bWrite == FALSE )
{
MessageBox(NULL, "WriteFile Error!", "Error!", MB_OK);
}
}
else
{
MessageBox(NULL, "CreateFile Error!", "Error!", MB_OK);
}
CloseHandle(hPIPE);
}
BOOL WINAPI DllMain(HINSTANCE mod, DWORD DWORD_GRUND, LPVOID res)
{
switch(DWORD_GRUND)
{
case 1:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)PipeTest , 0, 0, 0);
break;
case 2:
break;
}
return TRUE;
}
Edit:  Wie immer ist die antwort so einfach. 
"\\.\pipe\TestPipe" muss natürlich "\\\\.\\pipe\\TestPipe" sein ^^
Klappt alles wunderbar
|
|
|
 |
Similar Threads
|
C++ Pipe
12/31/2011 - C/C++ - 5 Replies
Hallo liebe Community
Kann mir jemand erklären wie ich in c++ eine pipe baue die mit meinem c# programm kommunizieren kann? hab im internet kein gutes tutorial dazu gefunden wenn jemand eins hat pls verlinken.
schon mal Danke im vorraus ^^
|
[Fragen/Probleme]Gestern Ping zwischen 20-30 und jetzt zwischen 100-2000!?
08/16/2011 - CrossFire - 9 Replies
Hallo liebe Com,
Ich habe keine ahnung ob ich hier richtig bin das ist mein erster thread aber ich habe eine frage.
Wie in der Überschrift schon steht habe ich verrückte ping werte und gestern hatte ich wie oben steht einen ping wert von zwischen 20-30ms und heute zwischen 100-2000.
Was ich jetzt nicht verstehe wieso habe ich das? das muss ja einen grund haben wieso der ping plötzlich so hoch steigt! und so kann ich natürlich kein crossfire spielen :(
hier mal ein paar daten zum router...
|
[AutoIT] Automatisierung zwischen zwei Fenstern
07/25/2011 - AutoIt - 10 Replies
Hallo zusammen, bin mir nicht sicher ob ich hier richtig für mein Thema bin.
mein Vorhaben:
Ich brauche einen Skript der von einem Firefox Fenster der auf Adobe Flash Player programmiert ist Daten auf ein anderes Programm überträgt.
Auf dem Firefox Fenster ist ein Schachbrett mit Figuren, jede Figur die bewegt wird, soll er auf einen Schachprogramm übertragen, danach soll er warten was das Schachprogramm ausgerechnet hat, und diesen Zug wiederum auf dem Firefox Fenster übertragen -> er...
|
Pipe Wrench
08/18/2010 - WarRock - 7 Replies
Hallo liebe Community,
ich wollte einmal fragen was genau das Pipe Wrench bringt.
Soweit ich weiß repariert es Fahrzeige statt mit den üblichen 12 % mit 24 % und zudem kann man damit Bomben entschärfen aber nun zum wichtigsten Teil meiner Frage: Um wieviel Schneller kann man damit die Bomben entschärfen? Kann das mal bitte jemand stoppen, falls es keiner weiß ich überlege mir nämlich dieses Teil zu kaufen da ich eh zur zeit viel Engineer zocke !
Achja und die SuFu hab ich benutzt aber...
|
All times are GMT +1. The time now is 15:40.
|
|