Узнать разрядность windows delphi

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .

Это перевод How to detect programmatically whether you are running on 64-bit Windows. Автор: Реймонд Чен.

Чтобы программно определить, запущены ли вы на 64-разрядной Windows, вы можете использовать функцию IsWow64Process, которая показывает, не запущен ли ваш 32-разрядный процесс в режиме эмуляции.

Но как вы программно определите, не запущен ли ваш 64-битный процесс на 64-битной Windows? Легко.

function Is64BitProcessRunningOn64BitWindows: Boolean;
begin
  Result := True;
end;

Тот факт, что ваша 64-разрядная программа работает, и означает, что вы запущены на 64-разрядной Windows! Если бы вы были на 32-разрядной машине, ваш код не смог бы запуститься.

Это всё равно, что спрашивать: «включен ли компьютер?». Если бы он был выключен, ваша программа не смогла бы задать вопрос.

Конечно же, если вам нужен единый исходный текст для компиляции и в 32-разрядную программу и в 64-разрядную, то вам нужно сделать немного больше работы:

function Is64BitWindows: Boolean;
var
  IsWow64Process: function(hProcess: THandle; out Wow64Process: Bool): Bool; stdcall;
  Wow64Process: Bool;
begin
  {$IF Defined(CPU64)}
  Result := True; // 64-битная программа запускается только на Win64
  {$ELSEIF Defined(CPU16)}
  Result := False; // Win64 не поддерживает 16-разрядные приложения
  {$ELSE}
  // 32-битные программы могут работать и на 32-разрядной и на 64-разрядной Windows
  // так что этот вопрос требует дальнейшего исследования
  IsWow64Process := GetProcAddress(GetModuleHandle(Kernel32), 'IsWow64Process');

  Wow64Process := False;
  if Assigned(IsWow64Process) then
    Wow64Process := IsWow64Process(GetCurrentProcess, Wow64Process) and Wow64Process;

  Result := Wow64Process;
  {$IFEND}
end;

Я добавил ветку для 16-битных программ на случай, если вы достаточно сумасшедший, чтобы писать их сегодня.

Примечание переводчика: поскольку в Delphi пока нет 64-разрядного компилятора, то не известно, как будут называться соответствующие директивы. Поэтому я взял директивы от FreePascal.

The Win32 API IsWow64Process determines if a running process (Process Handler) is on WOW64, which is only set to TRUE, if the process is 32-bit and the OS is 64-bit.

On 64-bit Windows, 32-bit processes are running in the WOW64 (Windows 32-bit on Windows 64-bit) environment. Therefore, the IsWow64Process checks this situation.

The IsWow64Process API is defined in the windows DLL kernel32.dll, which can be loaded via LoadLibrary. However, you can load it once and cache the result for any successive calls. The following implements the IsWow64Process function in Delphi by calling the Win32 API IsWow64Process.

{$J+}
function IsWow64Process: Boolean;
type
  TIsWow64Process = function(hProcess: THandle; var Wow64Process: Boolean): Boolean; stdcall;
var
  DLL: THandle;
  pIsWow64Process: TIsWow64Process;
const
  Called: Boolean = False;
  IsWow64: Boolean = False;
begin
  if (Not Called) then // only check once
  begin
    DLL := LoadLibrary('kernel32.dll');
    if (DLL <> 0) then
    begin
      pIsWow64Process := GetProcAddress(DLLHandle, 'IsWow64Process');
      if (Assigned(pIsWow64Process)) then
      begin
        pIsWow64Process(GetCurrentProcess, IsWow64);
      end;
      Called := True; // avoid unnecessary loadlibrary
      FreeLibrary(DLLHandle);
    end;
  end;
  Result := IsWow64;
end;
{$J-}

To achieve this using Delphi, we use compiler directive {$J+} that allows the writable typed constants, which is similar to the static variables in C/C++. The Called and IsWow64 with {$J+} are writable typed constants, the scope of which are not terminated when function exits.

x64

Delphi / Object Pascal

  • Delphi is 30 Years Old!
  • Reviews of FixInsight — Delphi Static Code Analyser
  • Lighting-fast Delphi 2007 Compiling Speed
  • The Inline Keyword in Delphi
  • Does Parallel.For in Delphi Actually Improve the Performance?
  • Delphi TParallel Cleanup Needed
  • Delphi Compiles Code to Linux 64-bit Server
  • Integer Performance Comparisons of Delphi Win32, Win64 and Linux64 for Single/Multithreading Counting Prime Number
  • How to Check If Running in 64-bit Windows Environment using Delphi?
  • How to Check Debugger Present in Delphi?
  • Delphi Static Code Analyser — FixInsight
  • Optimal SizeOf Code Generated in Delphi 2007

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading…

402 words
Last Post: The Simple Counter Implementation in PHP
Next Post: How to Get Plusnet Protect Powered by McAfee for Free?

The Permanent URL is: How to Check If Running in 64-bit Windows Environment using Delphi? (AMP Version)


Форум программистов Vingrad

Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

 Получить версию Windows и ее разрядность, Как получить ее разрядность 

   

Опции темы

ZBugz
  Дата 21.9.2011, 20:17 (ссылка)
| (нет голосов)
 Загрузка …

Опытный

Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6

Всем привет.
Не могу понять как в Delphi XE2 поучить версию Windows, а самое главное ее разрядность  
Это виснет в цикле…

Код

function GetVersionEx(lpOs: pointer): BOOL; stdcall;
external 'kernel32' name 'GetVersionExA';
{$ENDIF}

procedure GetWindowsVersion(var Major: integer;
var Minor: integer);
var
{$IFDEF WIN32}
lpOS, lpOS2: POsVersionInfo;
{$ELSE}
l: longint;
{$ENDIF}
begin
{$IFDEF WIN32}
GetMem(lpOS, SizeOf(TOsVersionInfo));
lpOs^.dwOSVersionInfoSize := SizeOf(TOsVersionInfo);
while getVersionEx(lpOS) = false do begin
GetMem(lpos2, lpos^.dwOSVersionInfoSize + 1);
lpOs2^.dwOSVersionInfoSize := lpOs^.dwOSVersionInfoSize + 1;
FreeMem(lpOs, lpOs^.dwOSVersionInfoSize);
lpOS := lpOs2;
end;
Major := lpOs^.dwMajorVersion;
Minor := lpOs^.dwMinorVersion;
FreeMem(lpOs, lpOs^.dwOSVersionInfoSize);
{$ELSE}
l := GetVersion;
Major := LoByte(LoWord(l));
Minor := HiByte(LoWord(l));
{$ENDIF}
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Major: integer;
Minor: integer;
begin
GetWindowsVersion(Major, Minor);
Memo1.Lines.Add(IntToStr(Major));
Memo1.Lines.Add(IntToStr(Minor));
end;

Это сообщение отредактировал(а) ZBugz — 21.9.2011, 20:17

 
bems
Дата 22.9.2011, 06:13 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88

Код
type
  PIsWow64Process = function (hProcess: THandle; var Wow64Process: BOOL): BOOL; stdcall;

function IsWin64: Boolean;
{$IFDEF MSWINDOWS}
  function IsWow64: BOOL;
  var
    IsWow64Process: PIsWow64Process;
  begin
    @IsWow64Process := GetProcAddress(GetModuleHandle(kernel32), 'IsWow64Process');
    Result := Assigned(@IsWow64Process);
    if Result and not IsWow64Process(GetCurrentProcess, Result)
       then RaiseLastOsError;
  end;

begin
  Result := (SizeOf(Pointer) = 8) or IsWow64;
end;
{$ELSE}
begin
  {$MESSAGE Error 'Not a Windows'}
end;
{$ENDIF !MSWINDOWS}

ХЕ2 еще не пробовал, но должно работать

Это сообщение отредактировал(а) bems — 22.9.2011, 10:27

———————

Обижено школьников: 8

 
Snowy
Дата 22.9.2011, 10:14 (ссылка)
| (нет голосов)
 Загрузка …

Эксперт

Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484

ZBugz, код рабочий. Нужно только заменить GetVersionExA на GetVersionExW — юникод же!

bems, код работает без проблем, как в 32, так и в 64

 
ZBugz
Дата 22.9.2011, 15:55 (ссылка)
| (нет голосов)
 Загрузка …

Опытный

Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6

О, спасибо. Оба работают. От BEMS понравилось что компактно 

Спасибо всем 

 
Правила форума «Delphi: Общие вопросы»

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »

Создание манифеста для программы на Delphi 6 о том что программа поддерживает Windows 10

Начну с того что данный способ определения версий windows для операционных систем выше Windows 8.0 будет корректно работать только при подключении манифеста, а именно например строчкой supportedOS внутри файла манифеста Вы должны явным образом указать какие операционные системы поддерживает Ваша программа. Иначе версия для ОС старше Windows 8.0 будет определяться как Windows 8.0.

Для создания файла манифеста создайте файл с названием и расширением Project1.exe.manifest и разместите в нём следующий текст в UTF-8 кодировке(я написал в названии файла Project1.exe.manifest поскольку моя программа называлась именно так):

Далее создайте файл с названием и расширением manifest.rc и поместите в него следующий текст:

1 24 «Project1.exe.manifest»

После этого в командной строке перейдите в папке где находятся файлы Project1.exe.manifest и manifest.rc(для перехода в папку используется команда cd адрес) и выполните следующий код:

Если команда выполнилась успешно в папке появится файл manifest.res если выполнение произошло с ошибкой, то почитайте какие файлы нужны для выполнения brcc32.exe в этой статье.

Полученный с помощью выполнения указанной выше команды файл manifest.res поместите в папку проекта на Delphi, непосредственно в коде проекта манифест подключается стройкой <$R manifest.res>в implementation в листинге программы, который я приведу в статье ниже данная строчка будет присутствовать.

Определение версии Windows в Delphi 6

Определить версию операционной системы Windows в Delphi 6 можно используя Win32Platform, Win32MajorVersion, Win32MinorVersion и Win32BuildNumber. Для примера создадим в Delphi новый проект и на форме разместим Memo1 и Button1 далее заменим весь код проекта на код из листинга:

Так же версия операционной системы может быть каким то образом определена исходя из менений в Интернет с использованием экземпляра объекта OSVersionInfo, как именно я пока не разбирался.

Функция для Delphi определения является ли Windows 64 битным

Так же иногда может потребоваться узнать является ли Windows на котором запускается программа 64-х разрядным. Для определения можно воспользоваться функцией из листинга ниже, которая возвращает True если программа запущена на 64-х битном Windows. Для использования данной функции подключение выше описанного манифеста не требуется.

Вы так же можете прочитать следующие статьи:

Источник

Определение разрядности windows в delphi

Определение разрядности (битности) программы.

Вобщем возник такой вопрос (возможно глупый, не исключаю ), как определить разрядность той или иной программы?
Тоесть 64 или 32, как это делает task manager в windows 7 (64-x).

И еще вопрос, сейчас скинул другу программу собранную под delphi 7 в 64 разрядной windows 7.
И у него не запустилось (приложение не является win32 совместимым) на windows vista.
Как такое может быть?Или с какой ОС компилируешь такая битность и будет?

Сначала думал, что task manager просто смотрит каталог откуда запущен экзешник, и если
каталог Program Files (x86) то 32 бита, но свеже скопилированную программу лежащую совершенно в другом месте он свободно определил как 64 битную.

Причем программа была скомпилирована на дельфи 7.

Что-то совсем запутался, подскажите, знающие, заранее спасибо.

приложение собранное для 64 битной систмы не может быть запущено в 32 разрядной системе.
Битность приложения зависит от компилятора(в d7-dXE компилятор x32), которым было собрано приложения(я так думаю).

Не думаю что твоя проблема зависит от того в какой системе собран exe.

Ну вот, программа собрана на дельфи 7 на 64 битной семерке, и определяется как 64 битная.

А почему так, не могу понять..Ведь программа должна быть 32 битной, а она 64..мистика

Видимо таки 32 битная программа после компиляции, значит глюк диспетчера задач.

Источник

Как определить разрядность приложения

В настоящее время в связи с распространением 64-разрядных процессоров и операционных систем, перед разработчиками программного обеспечения часто встаёт вопрос о программном определении его разрядности.

Это может быть вызвано как декоративными причинами («автоматически» показывать разрядность пользователю, например, «Моя Программа 1.0 64-разрядная версия») так и необходимостью задействовать в различных архитектурах различные алгоритмы с целью максимально эффективного использования их особенностей и при этом сохранить единую кодовую базу.

Простейшие способы

В Delphi для того чтобы определить разрядность приложения достаточно получить размер не типизированного указателя с помощью стандартного приёма.

В результате будет возвращён размер не типизированного указателя в байтах. Для перевода в биты достаточно умножить полученный результат на 8. В случае 32-разрядного приложения результат будет равен 4 (после умножения 32). В случае же 64-разядного приложения результат будет равен 8 (после умножения 64).

Для C++ существует аналогичный приём.

Похожий способ есть и в языке C#. Для того чтобы определить разрядность необходимо узнать размер типа IntPtr. Однако этот тип не имеет предопределённого размера и поэтому прямое использование функции sizeof вызовет синтаксическую ошибку.

Вследствие этого необходимо использовать метод SizeOf класса Marshal из пространства имён System.Runtime.InteropServices (это пространство имён должно быть предварительно задействовано с помощью директивы using). В результате реализация для C# выглядит следующим образом:

Конечно, это немного более громоздко, чем в случае Delphi или C++.

Всё эти методы предельно просты и доступны даже для начинающих. Однако все они имеют один общий недостаток. При их использовании в программе компилируются одновременно оба варианта кода (и для 32 и для 64-разрядного приложения). В случае небольших проектов или несущественных отличий в алгоритмах между версиями это может оказаться не критично. В противном случае значительный размер программы будет составлять неиспользуемый код. Это приведёт неоправданному увеличению размеров исполняемого файла программы или файла библиотеки в случае DLL. По этой причине все вышеперечисленные методы для реализации специального кода для конкретной архитектуры по большому счёту не пригодны.

Условная компиляция

К счастью, для этого существует альтернатива в виде директив условной компиляции.

Для наглядности приведём простейший пример:

Источник

Определение разрядности windows в delphi

Как зная хендл окна, определить оно принадлежит 32-х битному приложения или 64-х битному? Рыл в сторону IsWow64Process, но я так понял это только для определения разрядности всей ОС.


Игорь Шевченко © ( 2010-02-21 13:58 ) [1]

Неправильно понял. Это для определения разрядности процесса в 64-битной ОС

Игорь, а можно примерчика как использовать эту функцию?


Игорь Шевченко © ( 2010-02-21 15:34 ) [3]

leonidus (21.02.10 14:27) [2]

Wow64Process [out]
A pointer to a value that is set to TRUE if the process is running under WOW64. If the process is running under 32-bit Windows, the value is set to FALSE. If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE.


Игорь Шевченко © ( 2010-02-21 15:37 ) [4]

На Delphi где-то так:

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
procedure ShowWow64 (ProcessHandle: THandle);
end;

type
TIsWow64Process = function (H: THandle; Value: PBOOL): BOOL; stdcall;
var
_IsWow64Process: TIsWow64Process;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWow64(GetCurrentProcess);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
Pid: Cardinal;
ProcessHandle: THandle;
begin
Pid := StrToIntDef(Edit1.Text, GetCurrentProcessId);
ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, false, Pid);
if ProcessHandle <> 0 then
try
ShowWow64(ProcessHandle);
finally
CloseHandle(ProcessHandle);
end
else
ShowMessageFmt(«Can»»t open process %.8x», [Pid]);
end;

procedure TForm1.ShowWow64(ProcessHandle: THandle);
const
ProcessInfos: array[Boolean] of string = (
«not running under Wow64», «running under Wow64»
);
var
RunWow64: BOOL;
begin
@_IsWow64Process := GetProcAddress(GetModuleHandle(«kernel32»), «IsWow64Process»);
if Assigned(_IsWow64Process) then
if _IsWow64Process(ProcessHandle, @RunWow64) then
ShowMessageFmt(«process is %s», [ProcessInfos[RunWow64]])
else
RaiseLastOsError
else
ShowMessage(«IsWow64Process is not implemented»);
end;

Игорь, большое спасибо!

Я правильно понял, что подразумевается, что в Edit1 будет хендл нужного мне приложения и в зависимости от того 64-х битное оно или нет, я буду получать разные сообщения?

Да, у меня 32-х разрядное приложение, оно может работать и под 64-х битной виндой и мониторить другие приложения. Мне нужно по хендлу окна понять передомное программа 64-х битная или 32-х битная.


Игорь Шевченко © ( 2010-02-21 22:03 ) [8]


> Я правильно понял, что подразумевается, что в Edit1 будет
> хендл нужного мне приложения

будет идентификатор процесса.

Приведенный код проверен под 64-битной Windows 7

>будет идентификатор процесса.
прошу прощения не понял.

т.е. по Wnd мне нужно определить разрядность приложения.


> по Wnd мне нужно определить разрядность приложения

Интересно, а что будет определяться для Google Chrome, никто не проверял? У него ведь каждая вкладка в окне порождена отдельным процессом.


Игорь Шевченко © ( 2010-02-21 23:05 ) [12]

DVM © (21.02.10 22:49) [11]


> У него ведь каждая вкладка в окне порождена отдельным процессом

У IE8 тоже. Определяется по разрядности EXEшника


Eraser © ( 2010-02-21 23:53 ) [13]

> [11] DVM © (21.02.10 22:49)

у хрома рендерит по-моему хостовый процесс, а вот у IE интереснее, там реально внутреннее окно с содержимым страницы прендлежит другому процессу.

Если в ShowWow64 передавать не GetCurrentProcessId, а хендл полученный в результате работы кода:

GetCursorPos(pt_start);
Wnd:= WindowFromPoint(pt_start);
idProcess := GetWindowThreadProcessId(Wnd,nil);

то все время ловлю RaiseLastOsError. В чем тут проблема?

> leonidus (22.02.2010 11:44:14) [14]

Дельфи делает только 32 разрядные программы.

Анатолий, при чет тут Delphi? Я же писал, что моя программа мониторит другие приложения, это их разрядность нужно определять.


Игорь Шевченко © ( 2010-02-22 14:42 ) [17]

В отсутствии понимания разницы между ProcessId и ProcessHandle.
В нежелании напрячь собственный мозг.
В неуважении к отвечающим.

Игорь, спасибо за код, но адский пафос этого форума просто убивает. Топик можно закрывать, всем спасибо.

Источник

Определение разрядности windows в delphi

Можно как нибудь определить x32\x64 операционки, не по ее билду, а другими способом?
Вот тут есть пример (компонент), но он очень большой и а5 же основан на билде (http://dvmuratov.narod.ru/uWinVersion.pas), по разрядности процессора тоже не покатит, потому как некоторые на х64 проц ставят х32 винду.

И чтобы гарантировано работало с хп по сервак 2008 р2.


Anatoly Podgoretsky © ( 2011-01-29 13:16 ) [1]

> Gu (29.01.2011 12:26:00) [0]

Если ставять 32 бита Виндос, то разрядность ОС 32 бита и даже если запускают
на 64 битах, то все равно 32 бита.

>> Если ставять 32 бита Виндос, то разрядность ОС 32 бита и даже если запускают на 64 битах, то все равно 32 бита

кто бы спорил. определить разрядность как, при помощи дельфи я спрашиваю а не про установку винды

чтобы была например функция, с результом bool, типа IsWinVERx64


Anatoly Podgoretsky © ( 2011-01-29 13:35 ) [4]

> Gu (29.01.2011 12:26:00) [0]

И что значит некоторые, ведь 32 битных процессоров давно не существует, а
подавляющее большинство ОС это 32 бита Виндоус.

> Gu (29.01.2011 13:25:02) [2]


Anatoly Podgoretsky © ( 2011-01-29 13:46 ) [6]

> Gu (29.01.2011 13:31:03) [3]

Речь про Дельфи, так ее пока кроме 32 бит не существует.

нашел http://www.transl-gunsmoker.ru/2010/02/64-windows.html
только там
IsWow64Process := GetProcAddress(Kernel32, «IsWow64Process»);
надо заменить на
IsWow64Process := GetProcAddress(GetModuleHandle(«kernel32»), «IsWow64Process»);
нашел еще пример через реестр, но он мне не понравился

2 Anatoly Podgoretsky
если вам непонятны вопросы не надо на них отвечать


Anatoly Podgoretsky © ( 2011-01-29 14:53 ) [8]

> Gu (29.01.2011 14:45:07) [7]

А тебе не стоит наезжать, а то отвечать будет некому.

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Easy video editor windows
  • Please wait for windows modules installer
  • Windows 10 встроенный видеоплеер
  • Почему windows требует активации
  • Как убрать проверку жесткого диска при загрузке windows