куча херни

This commit is contained in:
Andron666
2021-10-19 23:28:51 +05:00
parent 4a0fbc3452
commit d10728e6bf
90 changed files with 367 additions and 119 deletions
@@ -132,6 +132,38 @@ void AOnejsky4UGameModeBase::GetExcelData(FString Command)
book->release();*/
}
void AOnejsky4UGameModeBase::createProc(FString FullPathOfProgramToRun, TArray<FString> CommandlineArgs, bool Detach, bool Hidden, int32 Priority, FString OptionalWorkingDirectory)
{ //Please note ProcessId should really be uint32 but that is not supported by BP yet
FString Args = "";
if (CommandlineArgs.Num() > 1)
{
Args = CommandlineArgs[0];
for (int32 v = 1; v < CommandlineArgs.Num(); v++)
{
Args += " " + CommandlineArgs[v];
}
}
else if (CommandlineArgs.Num() > 0)
{
Args = CommandlineArgs[0];
}
UE_LOG(LogTemp, Warning, TEXT("%s"), *Args)
//uint32 NeedBPUINT32 = 0;
FPlatformProcess::CreateProc(
*FullPathOfProgramToRun,
*Args,
Detach,//* @param bLaunchDetached if true, the new process will have its own window
false,//* @param bLaunchHidded if true, the new process will be minimized in the task bar
Hidden,//* @param bLaunchReallyHidden if true, the new process will not have a window or be in the task bar
0,
Priority,
(OptionalWorkingDirectory != "") ? *OptionalWorkingDirectory : nullptr,//const TCHAR* OptionalWorkingDirectory,
nullptr
);
}
bool AOnejsky4UGameModeBase::logFileExists(FString FileName)
{
//FString FilePath = FPlatformProcess::UserDir() + FileName;;
@@ -144,3 +176,4 @@ FString AOnejsky4UGameModeBase::readFile(FString FileName) {
FFileHelper::LoadFileToString(str,*FileName);
return str;
}
+4 -1
View File
@@ -32,7 +32,10 @@ class ONEJSKY4U_API AOnejsky4UGameModeBase : public AGameModeBase
UFUNCTION(BlueprintCallable, Category = "System")
static void GetExcelData(FString Command);
UFUNCTION(BlueprintCallable, Category = "System")
static void createProc(FString FullPathOfProgramToRun, TArray<FString> CommandlineArgs, bool Detach, bool Hidden, int32 Priority, FString OptionalWorkingDirectory);
UFUNCTION(BlueprintCallable, Category = "File")
static bool logFileExists(FString FileName);
+186
View File
@@ -0,0 +1,186 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "mailer.h"
/*
#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
#include <windows.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
// Insist on at least Winsock v1.1
const VERSION_MAJOR = 1;
const VERSION_MINOR = 1;
#define CRLF "\r\n" // carriage-return/line feed pair
void ShowUsage()
{
//cout << "Usage: SENDMAIL mailserv to_addr from_addr messagefile" << endl
// << "Example: SENDMAIL smtp.myisp.com rcvr@elsewhere.com my_id@mydomain.com message.txt" << endl;
return;
}
// Basic error checking for send() and recv() functions
void Check(int iStatus, char *szFunction)
{
if ((iStatus != SOCKET_ERROR) && (iStatus))
return;
//cerr << "Error during call to " << szFunction << ": " << iStatus << " - " << GetLastError() << endl;
UE_LOG(LogTemp, Error, TEXT("Error during call to %s %d %s"), *FString(szFunction),iStatus, GetLastError());
return;
}
mailer::mailer(int argc, char argv[]) {
sendMail(argc, argv);
}
int mailer::sendMail(int argc, char argv[])
{
int iProtocolPort = 0;
char szSmtpServerName[64] = "";
char szToAddr[64] = "";
char szFromAddr[64] = "";
char szBuffer[4096] = "";
char szLine[255] = "";
char szMsgLine[255] = "";
SOCKET hServer;
WSADATA WSData;
LPHOSTENT lpHostEntry;
LPSERVENT lpServEntry;
SOCKADDR_IN SockAddr;
// Check for four command-line args
if (argc != 5)
ShowUsage();
// Load command-line args
lstrcpy(szSmtpServerName, argv[1]);
lstrcpy(szToAddr, argv[2]);
lstrcpy(szFromAddr, argv[3]);
// Create input stream for reading email message file
ifstream MsgFile(argv[4]);
// Attempt to intialize WinSock (1.1 or later)
if (WSAStartup(MAKEWORD(VERSION_MAJOR, VERSION_MINOR), &WSData))
{
//cout << "Cannot find Winsock v" << VERSION_MAJOR << "." << VERSION_MINOR << " or later!" << endl;
UE_LOG(LogTemp, Error, TEXT("Cannot find Winsock"));
return 1;
}
// Lookup email server's IP address.
lpHostEntry = gethostbyname(szSmtpServerName);
if (!lpHostEntry)
{
//cout << "Cannot find SMTP mail server " << szSmtpServerName << endl;
UE_LOG(LogTemp, Error, TEXT("Cannot find SMTP mail server %s"),FString(szSmtpServerName));
return 1;
}
// Create a TCP/IP socket, no specific protocol
hServer = socket(PF_INET, SOCK_STREAM, 0);
if (hServer == INVALID_SOCKET)
{
//cout << "Cannot open mail server socket" << endl;
UE_LOG(LogTemp, Error, TEXT("Cannot open mail server socket"));
return 1;
}
// Get the mail service port
lpServEntry = getservbyname("mail", 0);
// Use the SMTP default port if no other port is specified
if (!lpServEntry)
iProtocolPort = htons(IPPORT_SMTP);
else
iProtocolPort = lpServEntry->s_port;
// Setup a Socket Address structure
SockAddr.sin_family = AF_INET;
SockAddr.sin_port = iProtocolPort;
SockAddr.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
// Connect the Socket
if (connect(hServer, (PSOCKADDR)&SockAddr, sizeof(SockAddr)))
{
//cout << "Error connecting to Server socket" << endl;
UE_LOG(LogTemp, Error, TEXT("Error connecting to Server socket"));
return 1;
}
// Receive initial response from SMTP server
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() Reply");
// Send HELO server.com
sprintf(szMsgLine, "HELO %s%s", szSmtpServerName, CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() HELO");
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() HELO");
// Send MAIL FROM: <sender@mydomain.com>
sprintf(szMsgLine, "MAIL FROM:<%s>%s", szFromAddr, CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() MAIL FROM");
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() MAIL FROM");
// Send RCPT TO: <receiver@domain.com>
sprintf(szMsgLine, "RCPT TO:<%s>%s", szToAddr, CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() RCPT TO");
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() RCPT TO");
// Send DATA
sprintf(szMsgLine, "DATA%s", CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() DATA");
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() DATA");
// Send all lines of message body (using supplied text file)
MsgFile.getline(szLine, sizeof(szLine)); // Get first line
do // for each line of message text...
{
sprintf(szMsgLine, "%s%s", szLine, CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() message-line");
MsgFile.getline(szLine, sizeof(szLine)); // get next line.
} while (MsgFile.good());
// Send blank line and a period
sprintf(szMsgLine, "%s.%s", CRLF, CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() end-message");
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() end-message");
// Send QUIT
sprintf(szMsgLine, "QUIT%s", CRLF);
Check(send(hServer, szMsgLine, strlen(szMsgLine), 0), "send() QUIT");
Check(recv(hServer, szBuffer, sizeof(szBuffer), 0), "recv() QUIT");
// Report message has been sent
//cout << "Sent " << argv[4] << " as email message to " << szToAddr << endl;
UE_LOG(LogTemp, Warning, TEXT("Sent %s as email message to %s"), *FString(argv[4]), *FString(szToAddr));
// Close server socket and prepare to exit.
closesocket(hServer);
WSACleanup();
return 0;
}
*/
mailer::mailer(int argc, char argv[]) {
}
mailer::~mailer()
{
}
+17
View File
@@ -0,0 +1,17 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
/**
*
*/
class ONEJSKY4U_API mailer
{
public:
mailer(int argc, char argv[]);
~mailer();
protected:
//int sendMail(int argc, char argv[]);
};