473,724 Members | 2,279 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Problem with access to shared memory(W2K) / ORIGINALLY (win32) speedfan api control

Background information:
---------------------------------
in order to monitor mainboard sensory data
as fan speeds, temperatures, applications
like SpeedFan http://www.almico.com/speedfan.php
or MBM http://mbm.livewiredev.com/
can be used.
Both of the mentioned apps expose data got
from the hardware in a shared memory area.

The goal to achieve:
---------------------------
is to supervise the motherboard sensory
data from within a Python script

The approach:
-------------------
access to the shared memory area
exposed by motherboard hardware
querying apps from Python script.

The problem:
-----------------
the below listed script code returns
always same values, what
leads to the conclusion, that something
is going wrong.

Can anyone help?

Thanks in advance

Claudio

The code
-------------
I use is provided also here:
http://www.codecomments.com/Python/message430495.html
http://mail.python.org/pipermail/pyt...ch/271853.html
(the mmap part of it doesn't work at all)

from ctypes import *

class Buffer(Structur e):
# just to see if any useful data can be acquired
_fields_ = [
("Data0", c_longlong)
,("Data1", c_longlong)
,("Data2", c_longlong)
,("Data3", c_longlong)
,("Data4", c_longlong)
,("Data5", c_longlong)
,("Data6", c_longlong)
,("Data7", c_longlong)
,("Data8", c_longlong)
,("Data9", c_longlong)
,("DataA", c_longlong)
,("DataB", c_longlong)
,("DataC", c_longlong)
,("DataD", c_longlong)
,("DataE", c_longlong)
,("DataF", c_longlong)
]

szName = c_char_p("SFSha redMemory_ALM") # SpeedFan
szName = c_char_p("$M$B$ M$5$S$D$") # MBM
# szName = c_char_p("blabl a") # not existing shared memory

FILE_MAP_ALL_AC CESS = 0xF001F
FALSE = 0

hMapObject = windll.kernel32 .OpenFileMappin gA(
FILE_MAP_ALL_AC CESS
,FALSE
,szName
)
if (hMapObject == 0):
print "Could not open file mapping object"
raise WinError()

pBuf = windll.kernel32 .MapViewOfFile(
hMapObject
,FILE_MAP_ALL_A CCESS
,0
,0
,0
)

if (pBuf == 0):
print "Could not map view of file"
raise WinError()
else:
print repr(pBuf)
print repr(hMapObject )

pBuf_str = cast(pBuf, c_char_p)
print repr(pBuf_str.v alue)
print repr(pBuf_str)

pBuf_buf = cast(pBuf, Buffer)
print
print
print repr(pBuf_buf)
print
print repr(pBuf_buf.D ata0)
print repr(pBuf_buf.D ata1)
print repr(pBuf_buf.D ata2)
print repr(pBuf_buf.D ata3)
print repr(pBuf_buf.D ata4)
print repr(pBuf_buf.D ata5)
print repr(pBuf_buf.D ata6)
print repr(pBuf_buf.D ata7)
print repr(pBuf_buf.D ata8)
print repr(pBuf_buf.D ata9)
print repr(pBuf_buf.D ataA)
print repr(pBuf_buf.D ataB)
print repr(pBuf_buf.D ataC)
print repr(pBuf_buf.D ataD)
print repr(pBuf_buf.D ataE)
print repr(pBuf_buf.D ataF)
#:if/else (pBuf == 0)

windll.kernel32 .UnmapViewOfFil e(pBuf)
windll.kernel32 .CloseHandle(hM apObject)

The output
--------------
is always the same:

13107200
80
''
c_char_p('')
<__main__.Buffe r object at 0x007E3570>

13107200L
0L
0L
0L
0L
0L
0L
0L
0L
0L
0L
0L
0L
0L
0L
0L

Jul 18 '05 #1
5 4436
"Claudio Grondi" <cl************ @freenet.de> writes:
Background information:
---------------------------------
in order to monitor mainboard sensory data
as fan speeds, temperatures, applications
like SpeedFan http://www.almico.com/speedfan.php
or MBM http://mbm.livewiredev.com/
can be used.
Both of the mentioned apps expose data got
from the hardware in a shared memory area.

The goal to achieve:
---------------------------
is to supervise the motherboard sensory
data from within a Python script

The approach:
-------------------
access to the shared memory area
exposed by motherboard hardware
querying apps from Python script.
For the mistake you made see below, hope that helps.

For the general way to solve this problem you should know that you can
access a shared memory area with a certain name also with Python's mmap
module, although that is probably not documented very good. There was a
recipe posted a few days ago which showed different ways to acces shared
memory, with or without ctypes.
The problem:
-----------------
the below listed script code returns
always same values, what
leads to the conclusion, that something
is going wrong.

Can anyone help?

Thanks in advance

Claudio

The code
-------------
I use is provided also here:
http://www.codecomments.com/Python/message430495.html
http://mail.python.org/pipermail/pyt...ch/271853.html
(the mmap part of it doesn't work at all)

from ctypes import *

class Buffer(Structur e):
# just to see if any useful data can be acquired
_fields_ = [
("Data0", c_longlong)
,("Data1", c_longlong)
,("Data2", c_longlong)
,("Data3", c_longlong)
,("Data4", c_longlong)
,("Data5", c_longlong)
,("Data6", c_longlong)
,("Data7", c_longlong)
,("Data8", c_longlong)
,("Data9", c_longlong)
,("DataA", c_longlong)
,("DataB", c_longlong)
,("DataC", c_longlong)
,("DataD", c_longlong)
,("DataE", c_longlong)
,("DataF", c_longlong)
]

szName = c_char_p("SFSha redMemory_ALM") # SpeedFan
szName = c_char_p("$M$B$ M$5$S$D$") # MBM
# szName = c_char_p("blabl a") # not existing shared memory

FILE_MAP_ALL_AC CESS = 0xF001F
FALSE = 0

hMapObject = windll.kernel32 .OpenFileMappin gA(
FILE_MAP_ALL_AC CESS
,FALSE
,szName
)
if (hMapObject == 0):
print "Could not open file mapping object"
raise WinError()

pBuf = windll.kernel32 .MapViewOfFile(
hMapObject
,FILE_MAP_ALL_A CCESS
,0
,0
,0
)

if (pBuf == 0):
print "Could not map view of file"
raise WinError()
else:
print repr(pBuf)
print repr(hMapObject )

pBuf_str = cast(pBuf, c_char_p)
print repr(pBuf_str.v alue)
print repr(pBuf_str)

pBuf_buf = cast(pBuf, Buffer)

Here's the problem. pBuf is a pointer to a Buffer structure, not the
buffer structure itself.
Something like
pBuf_buf = Buffer.from_add ress(pBuf)
may work.

Thomas
Jul 18 '05 #2
> For the mistake you made see below, hope that helps.
It doesn't.
pBuf_buf = cast(pBuf, Buffer) Here's the problem. pBuf is a pointer to a Buffer structure, not the
buffer structure itself.
Something like
pBuf_buf = Buffer.from_add ress(pBuf)
may work.

If I currently understand it right, cast() should
do exactly this, i.e. should write the content
pointed to by pBuf to a Python variable
pBuf_buf which is an object of the Buffer
class, where I can access the single
components like any other Python
variables - am I right or wrong?

How can I access content at any
real memory address in Python
like you suggest with the
fictive(?) .from_address(m emPointer)
method?
Wouldn't it be anyway protected?
Is not cast() a kind of solution to this
problem?

Because the exepected buffer
contains zero bytes I can't use
cast(pBuf, c_char_p) to get the entire
content as it is done in the recipe
provided by Srijit Kumar Bhadra.
At least the .Data0 value is set by cast()
in my trials, but it seems, that this has
nothing to do with the shared memory
area content.
For the general way to solve this problem you should know that you can
access a shared memory area with a certain name also with Python's mmap
module, although that is probably not documented very good. There was a
recipe posted a few days ago which showed different ways to acces shared
memory, with or without ctypes.

The code I use is provided also here:
http://www.codecomments.com/Python/message430495.html
http://mail.python.org/pipermail/pyt...ch/271853.html
(the mmap part of it doesn't work at all)


So I am already using the recipe, right?
But it doesn't work as expected.
mmap doesn't work at all failing in
shmem = mmap.mmap(0, 0, "$M$B$M$5$S$D$" , mmap.ACCESS_REA D)
with WindowsError: [Errno 87] wrong parameter

I am on Windows 2000 SP 4, Pyhon version 2.3.5
using ctypes version 0.9.5 .

Any further hints?

Claudio
Jul 18 '05 #3
"Claudio Grondi" <cl************ @freenet.de> writes:
For the mistake you made see below, hope that helps.

It doesn't.
> pBuf_buf = cast(pBuf, Buffer)

Here's the problem. pBuf is a pointer to a Buffer structure, not the
buffer structure itself.
Something like
pBuf_buf = Buffer.from_add ress(pBuf)
may work.

If I currently understand it right, cast() should
do exactly this, i.e. should write the content
pointed to by pBuf to a Python variable
pBuf_buf which is an object of the Buffer
class, where I can access the single
components like any other Python
variables - am I right or wrong?


You are right - my bad.
pBuf is a pointer to your structure, so:

ptr = cast(pBuf, POINTER(Buffer) )
print ptr # should print <ctypes.LP_Buff er object at ...>
struct = ptr[0]

and now 'struct' should contain the data that you need.
For the general way to solve this problem you should know that you can
access a shared memory area with a certain name also with Python's mmap
module, although that is probably not documented very good. There was a
recipe posted a few days ago which showed different ways to acces shared
memory, with or without ctypes.

> The code I use is provided also here:
> http://www.codecomments.com/Python/message430495.html
> http://mail.python.org/pipermail/pyt...ch/271853.html
> (the mmap part of it doesn't work at all)


So I am already using the recipe, right?
But it doesn't work as expected.
mmap doesn't work at all failing in
shmem = mmap.mmap(0, 0, "$M$B$M$5$S$D$" , mmap.ACCESS_REA D)
with WindowsError: [Errno 87] wrong parameter


I get this error when I try to open a non-existing shared memory block.
From the mmap docs:

If length is 0, the maximum length of the map is the current size of
the file, except that if the file is empty Windows raises an exception
(you cannot create an empty mapping on Windows).

If I run it with non-zero length it does not raise an exception

shmem = mmap.mmap(0, 0, "$M$B$M$5$S$D$" , mmap.ACCESS_REA D)

although it *creates* the shared memory block, IIUC. Are you sure your
speedfan app is running when you get the WindowsError?

Thomas
Jul 18 '05 #4
Thomas Heller,
it seems, that your email address
th*****@python. net doesn't work
or at least don't accept attachments,
so maybe you can provide me with
another one?
ptr = cast(pBuf, POINTER(Buffer) )
print ptr # should print <ctypes.LP_Buff er object at ...>
struct = ptr[0]
results in breakdown of Python
(Windows exception, can't read from memory
at 0x0...07)
due to existance of ptr = cast(pBuf, POINTER(Buffer) ) but the print print ptr # should print <ctypes.LP_Buff er object at ...> does its output to the console...

Strange...

Claudio

"Thomas Heller" <th*****@python .net> schrieb im Newsbeitrag
news:y8******** **@python.net.. . "Claudio Grondi" <cl************ @freenet.de> writes:
For the mistake you made see below, hope that helps.

It doesn't.
> pBuf_buf = cast(pBuf, Buffer)
Here's the problem. pBuf is a pointer to a Buffer structure, not the
buffer structure itself.
Something like
pBuf_buf = Buffer.from_add ress(pBuf)
may work.

If I currently understand it right, cast() should
do exactly this, i.e. should write the content
pointed to by pBuf to a Python variable
pBuf_buf which is an object of the Buffer
class, where I can access the single
components like any other Python
variables - am I right or wrong?


You are right - my bad.
pBuf is a pointer to your structure, so:

ptr = cast(pBuf, POINTER(Buffer) )
print ptr # should print <ctypes.LP_Buff er object at ...>
struct = ptr[0]

and now 'struct' should contain the data that you need.
For the general way to solve this problem you should know that you can
access a shared memory area with a certain name also with Python's mmap
module, although that is probably not documented very good. There was a recipe posted a few days ago which showed different ways to acces shared memory, with or without ctypes.

> The code I use is provided also here:
> http://www.codecomments.com/Python/message430495.html
> http://mail.python.org/pipermail/pyt...ch/271853.html
> (the mmap part of it doesn't work at all)


So I am already using the recipe, right?
But it doesn't work as expected.
mmap doesn't work at all failing in
shmem = mmap.mmap(0, 0, "$M$B$M$5$S$D$" , mmap.ACCESS_REA D)
with WindowsError: [Errno 87] wrong parameter


I get this error when I try to open a non-existing shared memory block.
From the mmap docs:

If length is 0, the maximum length of the map is the current size of
the file, except that if the file is empty Windows raises an exception
(you cannot create an empty mapping on Windows).

If I run it with non-zero length it does not raise an exception

shmem = mmap.mmap(0, 0, "$M$B$M$5$S$D$" , mmap.ACCESS_REA D)

although it *creates* the shared memory block, IIUC. Are you sure your
speedfan app is running when you get the WindowsError?

Thomas

Jul 18 '05 #5
Supervising motherboard sensory data as
fan speeds or CPU and board temperatures
in Python can be done with help of the MBM 5
utility available at http://mbm.livewiredev.com/.

This utility exposes data got from the hardware
sensors in a shared memory area for querying
by another applications.

The pyMBM.py script provided below prints
excerpts of the content of the by MBM 5
in shared memory area provided data
and can be used as a starting point
for writing own scripts which need to
query motherboard sensory data or
as inspiration for creating an
appropriate pyMBM Python module.

Claudio Grondi

print
print ' pyMBM.py ver. 0.10 2005-04-08 '
print '*** *************** *************** *************** *** ***'
print '*** THIS code accesses shared memory area exposed by ***'
print '*** MBM 5 (MotherBoard Monitor) ***'
print '*** install and run MBM 5 before using this script ***'
print '*** MBM 5 home: http://mbm.livewiredev.com ***'
print '*** Port of the MBM API to Python by Claudio Grondi ***'
print '*** http://www.python.org/moin/ClaudioGrondi ***'
print '*** *************** *************** *************** *** ***'

# centralized settings for portability and upgradability
SENSOR_INDEX_LE NGTH = 10
SENSOR_INFO_LEN GTH = 100

SENSOR_NAME_LEN = 12
TIME_STRING_LEN GTH = 41
MBM_PATHNAME_LE NGTH = 256

SMBUSNAME_STRIN G_LENGTH = 41

PADDING1_SIZE_B YTES = 3
PADDING2_SIZE_B YTES = 4
PADDING3_SIZE_B YTES = 8

#define BT_ISA "type_isa"
#define BT_SMBUS "type_smbus "
#define BT_VIA686ABUS "type_via686abu s"
#define BT_DIRECTIO "type_direc tio"
#define BT_UNKNOWN "type_unkno wn"
# typedef enum { btISA = 0, btSMBus, btVIA686ABus, btDirectIO } bus_t;
bus_t = [
"ISA " # 0
,"SMBus " # 1
,"Via686aBus " # 2
,"DirectIO " # 3
]

#define SMBT_INTEL "type_intel "
#define SMBT_AMD "type_amd"
#define SMBT_ALI "type_ali"
#define SMBT_NFORCE "type_nforc e"
#define SMBT_SIS "type_sis"
#define SMBT_UNK BT_UNKNOWN
# typedef enum { smtSMBIntel = 0, smtSMBAMD, smtSMBALi, smtSMBNForce,
smtSMBSIS } smb_t;
smb_t = [
"Intel " # 0
,"AMD " # 1
,"Ali " # 2
,"nForce" # 3
,"sis " # 4
]

#define ST_UNKNOWN BT_UNKNOWN
#define ST_TEMPERATURE "type_temperatu re"
#define ST_VOLTAGE "type_volta ge"
#define ST_FAN "type_fan"
#define ST_MHZ "type_mhz"
#define ST_PERCENTAGE "type_percentag e"
# typedef enum { stUnknown = 0, stTemperature, stVoltage, stFan, stMhz,
stPercentage } sensor_t;
sensor_t = [
"unknown " # 0
,"temperatur e" # 1
,"voltage " # 2
,"fan " # 3
,"mhz " # 4
,"percentage " # 5
]

from ctypes import *

class index(Structure ):
_fields_ = [
("_type" , c_int ) # type of sensor
,("_count" , c_int ) # number of sensor for that type
]
class sensor(Structur e):
_fields_ = [
("_type" , c_ubyte ) # type of sensor
,("_name" , c_ubyte * SENSOR_NAME_LEN ) # name of sensor
,("_padding1" , c_ubyte * PADDING1_SIZE_B YTES ) # padding of 3 byte
,("_current" , c_double ) # current value
,("_low" , c_double ) # lowest readout
,("_high" , c_double ) # highest readout
,("_readout" , c_long ) # total number of readout
,("_padding2" , c_ubyte * PADDING2_SIZE_B YTES ) # padding of 4 byte
,("_total" , c_double ) # actual a long double - total amout of
all readouts
,("_padding3" , c_ubyte * PADDING3_SIZE_B YTES ) # padding of 6 byte
,("_alarm1" , c_double ) # temp & fan: low alarm; voltage: % off;
,("_alarm2" , c_double ) # temp: high alarm
]
class info(Structure) :
_fields_ = [
("_smbBase" , c_short ) # SMBus base address
,("_smbType" , c_ubyte ) # bus_t variant of SMBus/Isa bus used to
access chip
# typedef enum
{btISA=0,btSMBu s,btVIA686ABus, btDirectIO} bus_t;
,("_smbCode" , c_ubyte ) # smb_t variant of SMBus sub type, Intel,
AMD or ALi
# typedef enum
{smtSMBIntel=0, smtSMBAMD,smtSM BALi,smtSMBNFor ce,smtSMBSIS} smb_t;
,("_smbAddr" , c_ubyte ) # Address of sensor chip on SMBus
,("_smbName" , c_ubyte * SMBUSNAME_STRIN G_LENGTH ) # Nice name for
SMBus
,("_isaBase" , c_short ) # ISA base address of sensor chip on ISA
,("_chipType" , c_int ) # Chip nr, connects with Chipinfo.ini
,("_voltageSubT ype", c_ubyte ) # Subvoltage option selected
]
class data_t(Structur e):
_fields_ = [
("_version", c_double ) # version number (example:
51090)
,("_index" , index * SENSOR_INDEX_LE NGTH ) # Sensor index
,("_sensor" , sensor * SENSOR_INFO_LEN GTH ) # sensor info
,("_info" , info ) # misc. info
,("_start" , c_ubyte * TIME_STRING_LEN GTH ) # start time,
TIME_STRING_LEN GTH = 41
,("_current", c_ubyte * TIME_STRING_LEN GTH ) # current time
,("_path" , c_ubyte * MBM_PATHNAME_LE NGTH ) # MBM path
]

FILE_MAP_READ = 2
strNameOfShared MemoryAreaToAcc ess = "$M$B$M$5$S $D$"

handle = windll.kernel32 .OpenFileMappin gA(FILE_MAP_REA D, 0,
strNameOfShared MemoryAreaToAcc ess)
if not handle:
raise WinError()
addr = windll.kernel32 .MapViewOfFile(
handle
,FILE_MAP_READ
,0
,0
,0
)
if not addr:
raise WinError()
obj_data_t = data_t.from_add ress(addr)

# obj_data_t holds the entire shared memory area content which can be
accessed
# now from within Python code like it is done below:

if(__name__ == '__main__'):
print
print '_version ', obj_data_t._ver sion
print

# print '_index ', obj_data_t._ind ex
itemCounter = 0
for item in obj_data_t._ind ex:
itemCounter += 1
print '_index[%2i]._type ='%itemCounter, sensor_t[item._type],
'_index._count =',repr(item._c ount)
print

# print '_sensor ', obj_data_t._sen sor
itemCounter = 0
for item in obj_data_t._sen sor:
itemCounter += 1
print '_sensor[%3i]._type ='%itemCounter, sensor_t[item._type],
strSensorName = ''
for subitem in item._name:
strSensorName += chr(subitem)
print ' ._name =', strSensorName,
print ' ._current = %7.2f'%item._cu rrent, ' ._low = %7.2f'%item._lo w,
' ._high = %7.2f'%item._hi gh
print
# print '_info ', obj_data_t._inf o
print '_info._smbType =', bus_t[obj_data_t._inf o._smbType]
print '_info._smbCode =', smb_t[obj_data_t._inf o._smbCode]

print
print '_start ',
strStart = ''
for char in obj_data_t._sta rt:
strStart += chr(char)
print strStart
print '_current ',
strCurrent = ''
for char in obj_data_t._cur rent:
strCurrent += chr(char)
print strCurrent,
print
print '_path ',
strPath = ''
for char in obj_data_t._pat h:
strPath += chr(char)
print strPath,

windll.kernel32 .UnmapViewOfFil e(addr)
windll.kernel32 .CloseHandle(ha ndle)

print
raw_input(' (exit with ENTER) #> OK? ')
#:if
Jul 18 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1622
by: BDob | last post by:
Standard documents "Access control is not considered in determining overriding." To further explain what's puzzling me, I put up an example below: class Base { public: virtual void Method1(int a); void Method2(int b);
3
1405
by: john sun | last post by:
Hi, I don't understand one thing when authoring cp ctor. The below is simplified class and cp constructor. When initializing the data member, we use object ref TEST to access its private member m_x. Why in this case it's allowed even m_x is private member of object TEST? Thanks very much!
5
2428
by: Fabio Rossi | last post by:
Hi! I'm learning C++ from the book "Thinking in C++". Now I'm reading about nested classes and access control. I have written this code #include <iostream> class Outer { private: int outer_data;
0
1212
by: Soeren S. Joergensen | last post by:
Hi, When using pinvoke to get an access control list (ACL) and from that ACL getting every entry (ACE) I need to get the SID for wich this ACE concerns: ACE (for allowed access) structure looks like: public struct ACCESS_ALLOWED_ACE {
1
1850
by: TK | last post by:
What's the best way to implement roll-base access control with forms authentication? I have a IIS6+ASP.NET server which hosts some ASP.NET web applications as separated path that's like "/app1/default.aspx", "/app2/default.aspx", .... and a single logon page as "/logon/logon.aspx" for forms authentication. I've already implemented "single sign-on" structure for those web applications and it's working fine. No one who didn't logged on...
0
2071
by: William F. Zachmann | last post by:
A web site that will run on Windows Server 2003 and IIS 6.0 needs to provide three levels of access, one for the public and two others for two levels of subscribers. This is a port of a prior site that runs on an old version of the Netscape Web server (which manages user authentication and access). The three levels of access are currently served up by three different versions of an ISAPI DLL, written in C++, also managed by the Netscape...
4
2056
by: JimC | last post by:
On my main form in a C# program, I create an instance of another form that contains a ListView control, in the usual way, that is: public class frmMain : System.Windows.Forms.Form { // InfoForm myInfoForm = new InfoForm( ); myInfoForm.Show ( );
6
3004
by: Notgiven | last post by:
I am considering a large project and they currently use LDAP on MS platform. It would be moved to a LAMP platform. OpenLDAP is an option though I have not used it before. I do feel fairly confortable with my ability to use SESSIONS for authentication and access control. Would it better to learn and use LDAP or can you REALLY have just as secure authentication and access control using Sessions? Thanks for your thoughts and experience.
0
1331
by: islandfong | last post by:
Hi, I am using ASP.NET 2.0 to implement a user access control system. The idea is that I would allow users (admin) to create new role, new user, assign user to role and the role is given different privilege to access diffferent web pages. For example, the admin can have view/update/create role, however a normal user can only view the role infomation. If I want to implement the view/update/create function in the same web form, how can I...
8
2162
by: xz | last post by:
Why C++ (as well as Java) adopts class-based access control instead of instance-based access control? I had never paid attention to whether an access-control is class-based or instance-based but only intuitively thought that the latter was the one being used. Since it does not seem to make sense to let an instance "a1" of Class "A" to have access to the private data of instance "a2" of the same Class A, does it?
0
8868
marktang
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...
1
9160
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,...
0
8062
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6685
isladogs
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...
0
5996
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4504
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...
0
4764
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3209
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
3
2149
bsmnconsultancy
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...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.